17 #define usingInterfaceMaterialMembers \ 18 usingMaterialBaseMembers; \ 19 usingNeighborCoupleableMembers; \ 20 using InterfaceMaterial::_q_point; \ 21 using InterfaceMaterial::_qrule; \ 22 using InterfaceMaterial::_JxW; \ 23 using InterfaceMaterial::_current_elem; \ 24 using InterfaceMaterial::_neighbor_elem; \ 25 using InterfaceMaterial::_current_side; \ 26 using InterfaceMaterial::_neighbor_side 50 template <
typename T,
bool is_ad>
55 const unsigned int state = 0)
57 return getGenericMaterialProperty<T, false>(
name, state);
62 return getGenericMaterialProperty<T, true>(
name, 0);
67 return getGenericMaterialProperty<T, false>(
name, 1);
72 return getGenericMaterialProperty<T, false>(
name, 2);
82 template <
typename T,
bool is_ad>
87 const unsigned int state = 0)
90 return getGenericMaterialPropertyByName<T, false>(prop_name, state);
96 return getGenericMaterialPropertyByName<T, true>(prop_name, 0);
102 return getGenericMaterialPropertyByName<T, false>(prop_name, 1);
104 template <
typename T>
108 return getGenericMaterialPropertyByName<T, false>(prop_name, 2);
119 template <
typename T,
bool is_ad>
122 template <
typename T>
124 const unsigned int state = 0)
126 return getGenericNeighborMaterialProperty<T, false>(
name, state);
128 template <
typename T>
131 return getGenericNeighborMaterialProperty<T, true>(
name, 0);
133 template <
typename T>
136 return getGenericNeighborMaterialProperty<T, false>(
name, 1);
138 template <
typename T>
141 return getGenericNeighborMaterialProperty<T, false>(
name, 2);
151 template <
typename T,
bool is_ad>
154 template <
typename T>
156 const unsigned int state = 0)
158 return getGenericNeighborMaterialPropertyByName<T, false>(prop_name, state);
160 template <
typename T>
163 return getGenericNeighborMaterialPropertyByName<T, true>(prop_name, 0);
197 template <
typename T,
bool is_ad>
205 if (
const auto * default_property = defaultGenericMaterialProperty<T, is_ad>(prop_name))
206 return *default_property;
208 return getGenericMaterialPropertyByName<T, is_ad>(prop_name, state);
211 template <
typename T,
bool is_ad>
214 const unsigned int state)
225 TwoMaterialPropertyInterface::getGenericMaterialPropertyByName<T, is_ad>(prop_name, state);
232 template <
typename T,
bool is_ad>
235 const unsigned int state)
241 if (
const auto * default_property = defaultGenericMaterialProperty<T, is_ad>(prop_name))
242 return *default_property;
244 return getGenericNeighborMaterialPropertyByName<T, is_ad>(prop_name, state);
247 template <
typename T,
bool is_ad>
250 const unsigned int state)
261 TwoMaterialPropertyInterface::getGenericNeighborMaterialPropertyByName<T, is_ad>(
name, state);
virtual const std::unordered_set< unsigned int > & getMatPropDependencies() const
Retrieve the set of material properties that this object depends on.
void computeProperties() override
Performs the quadrature point loop, calling computeQpProperties.
Interface materials compute MaterialProperties.
virtual const QBase & qRule() const override
virtual bool isBoundaryMaterial() const override
Returns true of the MaterialData type is not associated with volume data.
static InputParameters validParams()
const MaterialProperty< T > & getMaterialPropertyOld(const std::string &name)
const MaterialProperty< T > & getNeighborMaterialPropertyOlder(const std::string &name)
const ADMaterialProperty< T > & getADMaterialProperty(const std::string &name)
virtual MaterialData & materialData() override
const ADMaterialProperty< T > & getADMaterialPropertyByName(const std::string &prop_name)
const MaterialProperty< T > & getMaterialPropertyOlderByName(const std::string &prop_name)
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName(const std::string &name, const unsigned int state=0)
Retrieve the property named "name".
const MaterialProperty< T > & getNeighborMaterialPropertyByName(const std::string &prop_name, const unsigned int state=0)
const ADMaterialProperty< T > & getNeighborADMaterialPropertyByName(const std::string &prop_name)
MaterialPropertyName getMaterialPropertyName(const std::string &name) const
virtual const std::string & name() const
Get the name of the class.
const GenericMaterialProperty< T, is_ad > & getGenericNeighborMaterialProperty(const std::string &name, const unsigned int state=0)
Retrieve the neighbor property through a given input parameter key with a fallback to getting it by n...
MaterialData & _material_data
The material data class that stores properties.
const Elem *const & _neighbor_elem
Current neighbor element.
const MooseArray< Real > & _JxW
InterfaceMaterial(const InputParameters ¶meters)
std::set< std::string > _requested_props
Set of properties accessed via get method.
const MaterialProperty< T > & getMaterialPropertyByName(const std::string &prop_name, const unsigned int state=0)
void checkExecutionStage()
Check and throw an error if the execution has progressed past the construction stage.
const Elem *const & _current_elem
Current element.
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
const MooseArray< Point > & _q_point
virtual const std::unordered_set< unsigned int > & getMatPropDependencies() const override
Retrieve the set of material properties that this object depends on.
virtual bool isInterfaceMaterial() override
virtual const MaterialData & materialData() const override
const QBase *const & _qrule
const MaterialProperty< T > & getMaterialPropertyOlder(const std::string &name)
const MaterialProperty< T > & getNeighborMaterialProperty(const std::string &name, const unsigned int state=0)
const MaterialProperty< T > & getMaterialProperty(const std::string &name, const unsigned int state=0)
const unsigned int & _neighbor_side
current side of the neighbor element
const GenericMaterialProperty< T, is_ad > & getGenericMaterialProperty(const std::string &name, const unsigned int state=0)
Retrieve the property through a given input parameter key with a fallback to getting it by name...
const unsigned int & _current_side
current side of the current element
This interface is designed for DGKernel, InternalSideUserObject, InterfaceUserObject, where material properties on a side of both its primary side (face) and its secondary side (neighbor) all required.
const InputParameters & parameters() const
Get the parameters of the object.
Proxy for accessing MaterialPropertyStorage.
void registerPropName(const std::string &prop_name, bool is_get, const unsigned int state)
Small helper function to call store{Subdomain,Boundary}MatPropName.
const MaterialProperty< T > & getZeroMaterialProperty(Ts... args)
for backwards compatibility
const GenericMaterialProperty< T, is_ad > & getGenericNeighborMaterialPropertyByName(const std::string &name, const unsigned int state=0)
Retrieve the neighbor property named "name".
MaterialBases compute MaterialProperties.
const MaterialProperty< T > & getNeighborMaterialPropertyOld(const std::string &name)
Enhances Coupleable interface to also couple the values from neighbor elements.
const MaterialProperty< T > & getMaterialPropertyOldByName(const std::string &prop_name)
const ADMaterialProperty< T > & getNeighborADMaterialProperty(const std::string &name)