43 if (!maybe_delta || !maybe_delta->
IsDelta())
95 for (i = 0; i <
fes -> GetNE(); i++)
97 fes -> GetElementVDofs (i, vdofs);
98 eltrans =
fes -> GetElementTransformation (i);
99 for (
int k=0; k <
dlfi.Size(); k++)
101 dlfi[k]->AssembleRHSElementVect(*
fes->
GetFE(i), *eltrans, elemvect);
116 for (
int k = 0; k <
blfi.Size(); k++)
124 MFEM_ASSERT(bdr_marker.
Size() == bdr_attr_marker.
Size(),
125 "invalid boundary marker for boundary integrator #"
126 << k <<
", counting from zero");
127 for (
int i = 0; i < bdr_attr_marker.
Size(); i++)
129 bdr_attr_marker[i] |= bdr_marker[i];
133 for (i = 0; i <
fes -> GetNBE(); i++)
136 if (bdr_attr_marker[bdr_attr-1] == 0) {
continue; }
137 fes -> GetBdrElementVDofs (i, vdofs);
138 eltrans =
fes -> GetBdrElementTransformation (i);
139 for (
int k=0; k <
blfi.Size(); k++)
144 blfi[k]->AssembleRHSElementVect(*
fes->
GetBE(i), *eltrans, elemvect);
159 for (
int k = 0; k <
flfi.Size(); k++)
167 MFEM_ASSERT(bdr_marker.
Size() == bdr_attr_marker.
Size(),
168 "invalid boundary marker for boundary face integrator #"
169 << k <<
", counting from zero");
170 for (
int i = 0; i < bdr_attr_marker.
Size(); i++)
172 bdr_attr_marker[i] |= bdr_marker[i];
176 for (i = 0; i < mesh->
GetNBE(); i++)
179 if (bdr_attr_marker[bdr_attr-1] == 0) {
continue; }
184 fes -> GetElementVDofs (tr -> Elem1No, vdofs);
185 for (
int k = 0; k <
flfi.Size(); k++)
190 flfi[k] -> AssembleRHSElementVect (*
fes->
GetFE(tr -> Elem1No),
215 for (
int i = 0; i < centers.Width(); i++)
219 MFEM_VERIFY(center.
Size() == sdim,
220 "Point dim " << center.
Size() <<
221 " does not match space dim " << sdim);
233 if (elem_id < 0) {
continue; }
265 for (k=0; k <
dlfi.Size(); k++) {
delete dlfi[k]; }
266 for (k=0; k <
blfi.Size(); k++) {
delete blfi[k]; }
267 for (k=0; k <
flfi.Size(); k++) {
delete flfi[k]; }
int Size() const
Logical size of the array.
int GetVSize() const
Return the number of vector dofs, i.e. GetNDofs() x GetVDim().
int GetBdrAttribute(int i) const
Return the attribute of boundary element i.
void NewDataAndSize(double *d, int s)
Set the Vector data and size, deleting the old data, if owned.
int GetNBE() const
Returns number of boundary elements.
void GetElementVDofs(int i, Array< int > &vdofs) const
Returns indexes of degrees of freedom in array dofs for i'th element.
Data type dense matrix using column-major storage.
int Size() const
Returns the size of the vector.
Vector & operator=(const double *v)
Copy Size() entries from v.
bool UseDevice() const
Return the device flag of the Memory object used by the Vector.
Mesh * GetMesh() const
Returns the mesh.
T Max() const
Find the maximal element in the array, using the comparison operator < for class T.
FaceElementTransformations * GetBdrFaceTransformations(int BdrElemNo)
bool IsDelta() const
Returns true if the derived class instance uses a delta coefficient.
void AddElementVector(const Array< int > &dofs, const Vector &elemvect)
Add (element) subvector to the vector.
int SpaceDimension() const
ElementTransformation * GetElementTransformation(int i) const
Returns ElementTransformation for the i-th element.
Array< int > bdr_attributes
A list of all unique boundary attributes used by the Mesh.
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
void GetColumnReference(int c, Vector &col)
Abstract class for integrators that support delta coefficients.
Class for integration point with weight.
const FiniteElement * GetFE(int i) const
Returns pointer to the FiniteElement associated with i'th element.
virtual int FindPoints(DenseMatrix &point_mat, Array< int > &elem_ids, Array< IntegrationPoint > &ips, bool warn=true, InverseElementTransformation *inv_trans=NULL)
Find the ids of the elements that contain the given points, and their corresponding reference coordin...
const FiniteElement * GetBE(int i) const
Returns pointer to the FiniteElement for the i'th boundary element.