12 #ifndef MFEM_BILINEARFORM_EXT
13 #define MFEM_BILINEARFORM_EXT
15 #include "../config/config.hpp"
17 #include "../general/device.hpp"
23 class MixedBilinearForm;
24 class DiscreteLinearOperator;
54 MFEM_ABORT(
"AssembleDiagonal not implemented for this assembly level!");
62 int copy_interior = 0) = 0;
87 int copy_interior = 0);
122 mutable Vector dg_x, dg_y;
136 int copy_interior = 0);
167 int copy_interior = 0);
213 const double c=1.0)
const = 0;
217 virtual void Update() = 0;
static MemoryClass GetMemoryClass()
(DEPRECATED) Equivalent to GetDeviceMemoryClass().
Pointer to an Operator of a specified type.
const Operator * GetOutputRestrictionTranspose() const
Transpose of GetOutputRestriction, directly available in this form to facilitate matrix-free RAP-type...
PADiscreteLinearOperatorExtension(DiscreteLinearOperator *linop)
static MemoryClass GetDeviceMemoryClass()
Get the current Device MemoryClass. This is the MemoryClass used by most MFEM device kernels to acces...
void FormRectangularSystemOperator(const Array< int > &, const Array< int > &, OperatorHandle &A)
Setup OperatorHandle A to contain constrained linear operator.
void Assemble()
Partial assembly of all internal integrators.
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
void AddMultTranspose(const Vector &x, Vector &y, const double c=1.0) const
y += c*A^T*x
Base class for operators that extracts Face degrees of freedom.
MemoryClass
Memory classes identify sets of memory types.
void AddMult(const Vector &x, Vector &y, const double c) const
y += c*A*x
Partial assembly extension for DiscreteLinearOperator.