10 #ifdef MOOSE_MFEM_ENABLED    34                                           const std::vector<std::string> & 
blocks,
    35                                           std::shared_ptr<mfem::Coefficient> coef)
    43                                           const std::vector<std::string> & 
blocks,
    44                                           const std::string & existing_or_literal)
    47   if (std::dynamic_pointer_cast<mfem::PWCoefficient>(coef))
    48     mooseError(
"Properties must not be defined out of other properties or piecewise coefficients.");
    52 mfem::VectorCoefficient &
    54                                   std::shared_ptr<mfem::VectorCoefficient> coef)
    60 mfem::VectorCoefficient &
    66 mfem::VectorCoefficient &
    68                                           const std::vector<std::string> & 
blocks,
    69                                           std::shared_ptr<mfem::VectorCoefficient> coef)
    75 mfem::VectorCoefficient &
    77                                           const std::vector<std::string> & 
blocks,
    78                                           const std::string & existing_or_literal)
    80   std::shared_ptr<mfem::VectorCoefficient> coef =
    82   if (std::dynamic_pointer_cast<mfem::PWVectorCoefficient>(coef))
    83     mooseError(
"Properties must not be defined out of other properties or piecewise coefficients.");
    87 mfem::MatrixCoefficient &
    89                                   std::shared_ptr<mfem::MatrixCoefficient> coef)
    95 mfem::MatrixCoefficient &
   101 mfem::MatrixCoefficient &
   103                                           const std::vector<std::string> & 
blocks,
   104                                           std::shared_ptr<mfem::MatrixCoefficient> coef)
   110 mfem::MatrixCoefficient &
   112                                           const std::vector<std::string> & 
blocks,
   113                                           const std::string & existing_coef)
   116   if (std::dynamic_pointer_cast<mfem::PWMatrixCoefficient>(coef))
   117     mooseError(
"Properties must not be defined out of other properties or piecewise coefficients.");
   121 std::shared_ptr<mfem::Coefficient>
   128   mfem::real_t real_value;
   129   if (ss >> real_value && ss.eof())
   131     this->declareScalar<mfem::ConstantCoefficient>(
name, real_value);
   134   mooseError(
"Scalar coefficient with name '" + 
name + 
"' has not been declared.");
   137 std::shared_ptr<mfem::VectorCoefficient>
   143   std::vector<mfem::real_t> vec_values;
   146     this->declareVector<mfem::VectorConstantCoefficient>(
   147         name, mfem::Vector(vec_values.data(), vec_values.size()));
   150   mooseError(
"Vector coefficient with name '" + 
name + 
"' has not been declared.");
   153 std::shared_ptr<mfem::MatrixCoefficient>
   166 mfem::VectorCoefficient &
   172 mfem::MatrixCoefficient &
   180                                             const std::string & block)
 const   187                                             const std::string & block)
 const   194                                             const std::string & block)
 const std::string name(const ElemQuality q)
bool propertyDefinedOnBlock(const std::string &name, const std::string &block) const
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. 
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
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...
bool tokenizeAndConvert(const std::string &str, std::vector< T > &tokenized_vector, const std::string &delimiter=" \\\)
tokenizeAndConvert splits a string using delimiter and then converts to type T. 
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, 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. 
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)
void addCoefficient(const std::string &name, std::shared_ptr< T > coeff)
Add a named global coefficient. 
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...
std::string trim(const std::string &str, const std::string &white_space=" \\\)
Standard scripting language trim function. 
bool vectorPropertyIsDefined(const std::string &name, const std::string &block) const
void setTime(const mfem::real_t time)
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...
std::shared_ptr< T > getCoefficientPtr(const std::string &name)
void addPiecewiseBlocks(const std::string &name, std::shared_ptr< T > coeff, const std::vector< std::string > &blocks)
Add piecewise material property. 
bool hasCoefficient(const std::string &name) const