10 #ifdef MOOSE_MFEM_ENABLED 41 const std::string & existing_or_literal);
43 template <
class P,
class... Args>
59 const std::vector<std::string> &
blocks,
60 const std::string & existing_or_literal);
67 template <
class P,
class... Args>
69 const std::vector<std::string> &
blocks,
78 mfem::VectorCoefficient &
declareVector(
const std::string & name,
79 const std::string & existing_or_literal);
81 template <
class P,
class... Args>
98 const std::vector<std::string> &
blocks,
99 const std::string & existing_or_literal);
106 template <
class P,
class... Args>
108 const std::vector<std::string> &
blocks,
118 mfem::MatrixCoefficient &
declareMatrix(
const std::string & name,
119 const std::string & existing_coef);
121 template <
class P,
class... Args>
138 const std::vector<std::string> &
blocks,
139 const std::string & existing_coef);
146 template <
class P,
class... Args>
148 const std::vector<std::string> &
blocks,
173 void setTime(
const mfem::real_t time);
186 std::shared_ptr<mfem::Coefficient> coef);
188 const std::vector<std::string> &
blocks,
189 std::shared_ptr<mfem::Coefficient> coef);
190 mfem::VectorCoefficient &
declareVector(
const std::string & name,
191 std::shared_ptr<mfem::VectorCoefficient> coef);
193 const std::vector<std::string> &
blocks,
194 std::shared_ptr<mfem::VectorCoefficient> coef);
195 mfem::MatrixCoefficient &
declareMatrix(
const std::string & name,
196 std::shared_ptr<mfem::MatrixCoefficient> coef);
198 const std::vector<std::string> &
blocks,
199 std::shared_ptr<mfem::MatrixCoefficient> coef);
mfem::VectorCoefficient & declareVectorProperty(const std::string &name, const std::vector< std::string > &blocks, Args &&... args)
Use a new vector coefficient, constructed from the argument pack, for a property on some blocks of th...
std::string name(const ElemQuality q)
P & declareScalar(const std::string &name, Args &&... args)
Create a new scalar coefficient, constructed from the argument pack.
mfem::Coefficient & declareScalarProperty(const std::string &name, const std::vector< std::string > &blocks, const std::string &existing_or_literal)
Use an existing scalar coefficient for a property on some blocks of the mesh.
mfem::VectorCoefficient & getVectorCoefficient(const std::string &name)
Return a vector coefficient with the given name or, if that doesn't exists, try interpreting the name...
mfem::VectorCoefficient & declareVectorProperty(const std::string &name, const std::vector< std::string > &blocks, const std::string &existing_or_literal)
Use an existing vector coefficient for a property on some blocks of the mesh.
bool scalarPropertyIsDefined(const std::string &name, const std::string &block) const
mfem::MatrixCoefficient & declareMatrixProperty(const std::string &name, const std::vector< std::string > &blocks, Args &&... args)
Use a new matrix coefficient, constructed from the argument pack, for a property on some blocks of th...
Front-end class for creating and storing MFEM coefficients.
mfem::MatrixCoefficient & declareMatrixProperty(const std::string &name, const std::vector< std::string > &blocks, const std::string &existing_coef)
Use an existing matrix coefficient for a property on some blocks of the mesh.
std::shared_ptr< mfem::VectorCoefficient > getVectorCoefficientPtr(const std::string &name)
std::shared_ptr< mfem::MatrixCoefficient > getMatrixCoefficientPtr(const std::string &name)
mfem::MatrixCoefficient & declareMatrix(const std::string &name, const std::string &existing_coef)
Declare an alias to an existing matrix coefficient.
mfem::MatrixCoefficient & getMatrixCoefficient(const std::string &name)
Return scalar coefficient with the given name.
P & declareMatrix(const std::string &name, Args &&... args)
Create a new matrix coefficient, constructed from the argument pack.
mfem::Coefficient & declareScalar(const std::string &name, const std::string &existing_or_literal)
Declare an alias to an existing scalar coefficient or, if it does not exist, try interpreting the nam...
std::shared_ptr< mfem::Coefficient > getScalarCoefficientPtr(const std::string &name)
P & declareVector(const std::string &name, Args &&... args)
Create a new vector coefficient, constructed from the argument pack.
mfem::Coefficient & declareScalarProperty(const std::string &name, const std::vector< std::string > &blocks, Args &&... args)
Use a new scalar coefficient, constructed from the argument pack, for a property on some blocks of th...
mfem::VectorCoefficient & declareVector(const std::string &name, const std::string &existing_or_literal)
Declare an alias to an existing vector coefficientor or, if it does not exist, try interpreting the n...
bool vectorPropertyIsDefined(const std::string &name, const std::string &block) const
void setTime(const mfem::real_t time)
bool matrixPropertyIsDefined(const std::string &name, const std::string &block) const
mfem::Coefficient & getScalarCoefficient(const std::string &name)
Return a scalar coefficient with the given name or, if that doesn't exists, try interpreting the name...
void markSolutionChanged()
Notify quadrature function coefficients that solution variables have changed, marking the stored valu...
CoefficientManager()=default
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).
std::shared_ptr< P > make(Args &&... args)
Make arbitrary coefficients which will be tracked by this object.