15 const MaterialPropertyName & prop_name)
const
17 mooseError(
"getVectorPropertySize() is not implemented for the material declaring property '",
22std::pair<std::size_t, std::size_t>
24 const MaterialPropertyName & prop_name)
const
26 mooseError(
"getMatrixPropertySize() is not implemented for the material declaring property '",
34 const std::set<SubdomainID> &
blocks,
35 const std::string & param_name,
36 const std::size_t
count,
39 const auto & prop_name =
object.getParam<MaterialPropertyName>(param_name);
40 for (
const auto id :
blocks)
46 if (!mat->getSuppliedItems().count(prop_name))
48 const auto *
const vsmi =
57 object.paramError(param_name,
62 ") of material property '",
64 "' declared by material '",
66 "' is inconsistent with the number of components of the array "
73 const auto size = vsmi->getVectorPropertySize(prop_name);
75 object.paramError(param_name,
78 ") of material property '",
80 "' declared by material '",
82 "' is inconsistent with the number of components of the array "
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
MaterialBase objects are special in that they have additional objects created automatically (see FEPr...
const std::map< SubdomainID, std::vector< std::shared_ptr< T > > > & getActiveBlockObjects(THREAD_ID tid=0) const
bool hasActiveBlockObjects(THREAD_ID tid=0) const
Every object that can be built by the factory should be derived from this class.
Interface class to return the size of material properties that do not have a fixed size.
virtual std::size_t getVectorPropertySize(const MaterialPropertyName &prop_name) const
Return the size of the variable size vector material property that the material defines.
virtual std::pair< std::size_t, std::size_t > getMatrixPropertySize(const MaterialPropertyName &prop_name) const
Return the number of rows and columns of the variable size matrix material property that the material...
void checkArrayMaterialPropertySize(const MooseObject &object, const MaterialWarehouse &warehouse, const std::set< SubdomainID > &blocks, const std::string ¶m_name, std::size_t count, bool is_matrix)
Check during setup that an array material property used as a coefficient has one entry per component ...