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),
224 for (
int i = 0; i < centers.Width(); i++)
228 MFEM_VERIFY(center.
Size() == sdim,
229 "Point dim " << center.
Size() <<
230 " does not match space dim " << sdim);
242 if (elem_id < 0) {
continue; }
274 for (k=0; k <
dlfi.Size(); k++) {
delete dlfi[k]; }
275 for (k=0; k <
blfi.Size(); k++) {
delete blfi[k]; }
276 for (k=0; k <
flfi.Size(); k++) {
delete flfi[k]; }
int Size() const
Return the 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.
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.
void UseDevice(bool use_dev) const
Enable execution of Vector operations using the mfem::Device.
Data type dense matrix using column-major storage.
int Size() const
Returns the size of the vector.
Memory< double > & GetMemory()
Return a reference to the Memory object used by 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 elements of the elemvect Vector to the entries listed in dofs. Negative dof values cause the -dof...
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.
void NewMemoryAndSize(const Memory< double > &mem, int s, bool own_mem)
Reset the Vector to use the given external Memory mem and size s.
const FiniteElement * GetFE(int i) const
Returns pointer to the FiniteElement in the FiniteElementCollection associated with i'th element in t...
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...
void MakeRef(Vector &base, int offset, int size)
Reset the Vector to be a reference to a sub-vector of base.
const FiniteElement * GetBE(int i) const
Returns pointer to the FiniteElement in the FiniteElementCollection associated with i'th boundary fac...
double f(const Vector &p)