12#ifndef MFEM_BLOCK_FESPACE_OPERATOR
13#define MFEM_BLOCK_FESPACE_OPERATOR
42 static int GetHeight(
const std::vector<const FiniteElementSpace*>
45 static Array<int> GetBlockOffsets(
const std::vector<const FiniteElementSpace*>
49 std::vector<const FiniteElementSpace*> &fespaces);
52 std::vector<const FiniteElementSpace*> &fespaces);
Operator for block systems arising from different arbitrarily many finite element spaces.
BlockFESpaceOperator(const std::vector< const FiniteElementSpace * > &fespaces)
Constructor for BlockFESpaceOperator.
const Operator * GetProlongation() const override
Prolongation operator from linear algebra (linear system) vectors, to input vectors for the operator....
void Mult(const Vector &x, Vector &y) const override
Operator application: y=A(x).
const Operator * GetRestriction() const override
Restriction operator from input vectors for the operator to linear algebra (linear system) vectors....
void SetBlock(int iRow, int iCol, Operator *op, real_t c=1.0)
Wraps BlockOperator::SetBlock. Eventually would like this class to inherit from BlockOperator instead...
A class to handle Block systems in a matrix-free implementation.
void SetBlock(int iRow, int iCol, Operator *op, real_t c=1.0)
Add a block op in the block-entry (iblock, jblock).
virtual void Mult(const Vector &x, Vector &y) const
Operator application.