12#ifndef MFEM_DPGWEAKFORM
13#define MFEM_DPGWEAKFORM
136 for (
int i = 0; i <
nblocks; i++)
158 MFEM_VERIFY(
mat,
"mat is NULL and can't be dereferenced");
165 MFEM_VERIFY(
mat_e,
"mat_e is NULL and can't be dereferenced");
203 Vector &B,
int copy_interior = 0);
209 template <
typename OpType>
212 int copy_interior = 0)
216 OpType *A_ptr = Ah.
Is<OpType>();
217 MFEM_VERIFY(A_ptr,
"invalid OpType used");
229 template <
typename OpType>
234 OpType *A_ptr = Ah.
Is<OpType>();
235 MFEM_VERIFY(A_ptr,
"invalid OpType used");
276 if (
Bmat.Size() == 0)
300 for (
int i = 0; i < trace_fes_all.
Size(); i++)
302 if (trace_fes_all[i])
304 trace_fes.
Append(trace_fes_all[i]);
Dynamic 2D array using row-major layout.
void SetSize(int nsize)
Change the logical size of the array, keep existing entries.
int Size() const
Return the logical size of the array.
int Append(const T &el)
Append element 'el' to array, resize if necessary.
Class that performs static condensation of interior dofs for multiple FE spaces. This class is used i...
void GetTraceFESpaces(Array< FiniteElementSpace * > &trace_fes) const
A class to handle Vectors in a block fashion.
Arbitrary order "H^{1/2}-conforming" trace finite elements defined on the interface between mesh elem...
int GetNE() const
Returns number of elements.
Arbitrary order H(curl)-trace finite elements defined on the interface between mesh elements (faces,...
Pointer to an Operator of a specified type.
OpType * Is() const
Return the Operator pointer dynamically cast to a specified OpType.
DiagonalPolicy
Defines operator diagonal policy upon elimination of rows and/or columns.
@ DIAG_ONE
Set the diagonal value to one.
Arbitrary order "H^{-1/2}-conforming" face finite elements defined on the interface between mesh elem...
const int * ess_tdof_list