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);
200template <
typename T,
bool is_ad>
208 if (
const auto * default_property = defaultGenericMaterialProperty<T, is_ad>(prop_name))
209 return *default_property;
211 return getGenericMaterialPropertyByName<T, is_ad>(prop_name, state);
214template <
typename T,
bool is_ad>
217 const unsigned int state)
228 TwoMaterialPropertyInterface::getGenericMaterialPropertyByName<T, is_ad>(prop_name, state);
235template <
typename T,
bool is_ad>
238 const unsigned int state)
244 if (
const auto * default_property = defaultGenericMaterialProperty<T, is_ad>(prop_name))
245 return *default_property;
247 return getGenericNeighborMaterialPropertyByName<T, is_ad>(prop_name, state);
250template <
typename T,
bool is_ad>
253 const unsigned int state)
264 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".
bool usesFaceCoupledValues() const override
Whether this object evaluates coupled variables on element faces, so that it must request coupled AD ...
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.