15 #include "../general/forall.hpp"
41 trialFes(a->FESpace()), testFes(a->FESpace())
56 const int integratorCount = integrators.
Size();
57 for (
int i = 0; i < integratorCount; ++i)
59 integrators[i]->AssemblePA(*
a->
FESpace());
84 if (trialP) { rap =
new RAPOperator(*testP, *
this, *trialP); }
85 const bool own_A = (rap!=
this);
104 const int iSz = integrators.
Size();
109 for (
int i = 0; i < iSz; ++i)
119 for (
int i = 0; i < iSz; ++i)
121 integrators[i]->AddMultPA(x, y);
129 const int iSz = integrators.
Size();
134 for (
int i = 0; i < iSz; ++i)
144 for (
int i = 0; i < iSz; ++i)
146 integrators[i]->AddMultTransposePA(x, y);
int Size() const
Logical size of the array.
int GetVSize() const
Return the number of vector dofs, i.e. GetNDofs() x GetVDim().
void SetSize(int s)
Resize the vector to size s.
Pointer to an Operator of a specified type.
void UseDevice(bool use_dev) const
Enable execution of Vector operations using the mfem::Device.
virtual void Mult(const Vector &x, Vector &y) const =0
Operator application: y=A(x).
virtual void MultTranspose(const Vector &x, Vector &y) const
Action of the transpose operator: y=A^t(x). The default behavior in class Operator is to generate an ...
const Operator * GetElementRestriction(ElementDofOrdering e_ordering) const
Return an Operator that converts L-vectors to E-vectors.
int Height() const
Get the height (size of output) of the Operator. Synonym with NumRows().
static MemoryType GetMemoryType()
Get the current Device MemoryType. This is the MemoryType used by most MFEM classes when allocating m...
virtual const Operator * GetProlongationMatrix() const
The returned Operator is owned by the FiniteElementSpace.
The operator x -> R*A*P*x constructed through the actions of R^T, A and P.
Class FiniteElementSpace - responsible for providing FEM view of the mesh, mainly managing the set of...
void FormLinearSystem(const Array< int > &ess_tdof_list, Vector &x, Vector &b, Operator *&A, Vector &X, Vector &B, int copy_interior=0)
Form a constrained linear system using a matrix-free approach.
int height
Dimension of the output / number of rows in the matrix.
Lexicographic ordering for tensor-product FiniteElements.
Square Operator for imposing essential boundary conditions using only the action, Mult()...
int width
Dimension of the input / number of columns in the matrix.
void Reset(OpType *A, bool own_A=true)
Reset the OperatorHandle to the given OpType pointer, A.