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);
198template <
typename T,
bool is_ad>
206 if (
const auto * default_property = defaultGenericMaterialProperty<T, is_ad>(prop_name))
207 return *default_property;
209 return getGenericMaterialPropertyByName<T, is_ad>(prop_name, state);
212template <
typename T,
bool is_ad>
215 const unsigned int state)
226 TwoMaterialPropertyInterface::getGenericMaterialPropertyByName<T, is_ad>(prop_name, state);
233template <
typename T,
bool is_ad>
236 const unsigned int state)
242 if (
const auto * default_property = defaultGenericMaterialProperty<T, is_ad>(prop_name))
243 return *default_property;
245 return getGenericNeighborMaterialPropertyByName<T, is_ad>(prop_name, state);
248template <
typename T,
bool is_ad>
251 const unsigned int state)
262 TwoMaterialPropertyInterface::getGenericNeighborMaterialPropertyByName<T, is_ad>(
name, state);
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
Interface materials compute MaterialProperties.
virtual MaterialData & materialData() override
const unsigned int & _current_side
current side of the current element
const MaterialProperty< T > & getNeighborMaterialPropertyOlder(const std::string &name)
virtual Moose::MaterialDataType materialDataType() override
const unsigned int & _neighbor_side
current side of the neighbor element
const MooseArray< Real > & _JxW
virtual const std::unordered_set< unsigned int > & getMatPropDependencies() const override
Retrieve the set of material properties that this object depends on.
const QBase *const & _qrule
const GenericMaterialProperty< T, is_ad > & getGenericNeighborMaterialPropertyByName(const std::string &name, const unsigned int state=0)
Retrieve the neighbor property named "name".
const GenericMaterialProperty< T, is_ad > & getGenericMaterialPropertyByName(const std::string &name, const unsigned int state=0)
Retrieve the property named "name".
void computeProperties() override
Performs the quadrature point loop, calling computeQpProperties.
const MaterialProperty< T > & getNeighborMaterialPropertyByName(const std::string &prop_name, const unsigned int state=0)
virtual const MaterialData & materialData() const override
virtual bool isInterfaceMaterial() override
const ADMaterialProperty< T > & getADMaterialProperty(const std::string &name)
const ADMaterialProperty< T > & getNeighborADMaterialProperty(const std::string &name)
virtual const QBase & qRule() const override
const Elem *const & _neighbor_elem
Current neighbor element.
const ADMaterialProperty< T > & getNeighborADMaterialPropertyByName(const std::string &prop_name)
const MaterialProperty< T > & getMaterialPropertyOldByName(const std::string &prop_name)
const MaterialProperty< T > & getMaterialPropertyOlderByName(const std::string &prop_name)
const Elem *const & _current_elem
Current element.
const MaterialProperty< T > & getMaterialPropertyByName(const std::string &prop_name, const unsigned int state=0)
const MaterialProperty< T > & getMaterialPropertyOld(const std::string &name)
const MaterialProperty< T > & getMaterialPropertyOlder(const std::string &name)
const MaterialProperty< T > & getMaterialProperty(const std::string &name, const unsigned int state=0)
const MooseArray< Point > & _q_point
const MaterialProperty< T > & getNeighborMaterialProperty(const std::string &name, const unsigned int state=0)
static InputParameters validParams()
const MaterialProperty< T > & getNeighborMaterialPropertyOld(const std::string &name)
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 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...
virtual bool isBoundaryMaterial() const override
Returns true of the MaterialData type is not associated with volume data.
const ADMaterialProperty< T > & getADMaterialPropertyByName(const std::string &prop_name)
MaterialBases compute MaterialProperties.
const MaterialProperty< T > & getZeroMaterialProperty(Ts... args)
for backwards compatibility
void checkExecutionStage()
Check and throw an error if the execution has progressed past the construction stage.
std::set< std::string > _requested_props
Set of properties accessed via get method.
void registerPropName(const std::string &prop_name, bool is_get, const unsigned int state)
Small helper function to call store{Subdomain,Boundary}MatPropName.
Proxy for accessing MaterialPropertyStorage.
MaterialPropertyName getMaterialPropertyName(const std::string &name) const
const Moose::MaterialDataType _material_data_type
The type of data.
virtual const std::unordered_set< unsigned int > & getMatPropDependencies() const
Retrieve the set of material properties that this object depends on.
MaterialData & _material_data
The material data class that stores properties.
const InputParameters & parameters() const
Get the parameters of the object.
const std::string & name() const
Get the name of the class.
Enhances Coupleable interface to also couple the values from neighbor elements.
This interface is designed for DGKernel, InternalSideUserObject, InterfaceUserObject,...
MaterialDataType
MaterialData types.