67 if (this->set ==
nullptr) {
68 this->set = this->domain->
giveSet(this->setIndex);
91 contrib.
times(this->factor);
113 contrib.
times(this->factor);
117 eNorms->assembleSquared(contrib, dofIDs);
125 IntArray nodes, internalDofMans, loc, masterDofIDs;
137 for (
int i: internalDofMans) {
155 rowDofIDs->followedBy(masterDofIDs);
158 for (
int i: internalDofMans) {
163 rowDofIDs->followedBy(masterDofIDs);
void giveLocationArray(const IntArray &dofIDArry, IntArray &locationArray, const UnknownNumberingScheme &s) const
void giveMasterDofIDArray(const IntArray &dofIDArry, IntArray &masterDofIDs) const
Element * giveElement(int n)
virtual DofManager * giveInternalDofManager(int i) const
DofManager * giveDofManager(int i) const
virtual void giveCellDofMans(IntArray &nodes, IntArray &internalDofMans, Element *elem) const
Returns list of element nodes (and list of internal dof managers) (including on edges and surfaces) d...
void assemble(const FloatArray &fe, const IntArray &loc)
void followedBy(const IntArray &b, int allocChunk=0)
void initialize()
Initialize the integral domain.
Integral(Domain *d, Set *set, const Term *t)
Constructor, creates an integral of given term over entities in given set.
void assemble_lhs(SparseMtrx &dest, const UnknownNumberingScheme &s, TimeStep *tStep) const
void initializeFrom(InputRecord &ir, EngngModel *emodel)
void assemble_rhs(FloatArray &dest, const UnknownNumberingScheme &s, TimeStep *tstep, FloatArray *eNorms=NULL) const
void getElementTermCodeNumbers(IntArray &locr, IntArray &locc, Element *e, const Term &t, const UnknownNumberingScheme &s, IntArray *rowDofIDs=NULL) const
Base class for elements based on mp (multi-physics) concept.
void integrateTerm_c(FloatArray &answer, const Term &term, IntegrationRule *iRule, TimeStep *tstep)
void integrateTerm_dw(FloatMatrix &answer, const Term &term, IntegrationRule *iRule, TimeStep *tstep)
const IntArray & giveElementList()
virtual int assemble(const IntArray &loc, const FloatMatrix &mat)=0
Class representing a weak form expression to be evaluated (integrated). It defines two key methods:
virtual IntegrationRule * giveElementIntegrationRule(Element *e) const
const Variable * testField
virtual void initializeCell(Element &cell) const =0
const IntArray & getDofManDofIDs() const
Returns DodIF mask in node; need generalization (which dofMan).
const FEInterpolation * interpolation