https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
AnisoHeatConductionMaterialTempl< is_ad > Class Template Reference

Calculates thermal conductivity and specific heat of the material. More...

#include <AnisoHeatConductionMaterial.h>

Inheritance diagram for AnisoHeatConductionMaterialTempl< is_ad >:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 AnisoHeatConductionMaterialTempl (const InputParameters &parameters)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialProperty (const std::string &name)
 
const GenericMaterialProperty< U, is_ad > & getDefaultMaterialPropertyByName (const std::string &name)
 
void validateDerivativeMaterialPropertyBase (const std::string &base)
 
const MaterialPropertyName derivativePropertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName derivativePropertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName derivativePropertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName derivativePropertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, const SymbolName &c1, unsigned int v2, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivative (const std::string &base, unsigned int v1, unsigned int v2=libMesh::invalid_uint, unsigned int v3=libMesh::invalid_uint)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< VariableName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const std::vector< SymbolName > &c)
 
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2="", const SymbolName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateCoupling (const MaterialPropertyName &base, const std::vector< VariableName > &c, bool validate_aux=true)
 
void validateCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
void validateNonlinearCoupling (const MaterialPropertyName &base, const VariableName &c1="", const VariableName &c2="", const VariableName &c3="")
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyName (const MaterialPropertyName &base, const std::vector< SymbolName > &c) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameFirst (const MaterialPropertyName &base, const SymbolName &c1) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameSecond (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 
const MaterialPropertyName propertyNameThird (const MaterialPropertyName &base, const SymbolName &c1, const SymbolName &c2, const SymbolName &c3) const
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void initQpStatefulProperties () override
 
virtual void computeQpProperties () override
 

Protected Attributes

const unsigned int _dim
 
const Real _ref_temp
 
const bool _has_temp
 
const GenericVariableValue< is_ad > & _T
 
const unsigned int _T_var
 
const VariableName _T_name
 
const std::string _base_name
 
const RankTwoTensor _user_provided_thermal_conductivity
 
GenericMaterialProperty< RankTwoTensor, is_ad > & _thermal_conductivity
 
MaterialProperty< RankTwoTensor > & _dthermal_conductivity_dT
 
const Function *const _thermal_conductivity_temperature_coefficient_function
 
GenericMaterialProperty< Real, is_ad > & _specific_heat
 
MaterialProperty< Real > & _dspecific_heat_dT
 
const Function *const _specific_heat_function
 
const MooseArray< ADPoint > * _ad_q_point
 

Private Member Functions

auto genericQPoints ()
 
auto genericQPoints ()
 
auto genericQPoints ()
 
bool haveMaterialProperty (const std::string &prop_name)
 
std::vector< VariableName > buildVariableVector (const VariableName &c1, const VariableName &c2, const VariableName &c3)
 
void validateCouplingHelper (const MaterialPropertyName &base, const std::vector< VariableName > &c, const System &system, std::vector< VariableName > &missing)
 
bool isNotObjectVariable (const VariableName &name)
 

Private Attributes

FEProblemBase_dmi_fe_problem
 

Detailed Description

template<bool is_ad>
class AnisoHeatConductionMaterialTempl< is_ad >

Calculates thermal conductivity and specific heat of the material.

Definition at line 21 of file AnisoHeatConductionMaterial.h.

Constructor & Destructor Documentation

◆ AnisoHeatConductionMaterialTempl()

template<bool is_ad>
AnisoHeatConductionMaterialTempl< is_ad >::AnisoHeatConductionMaterialTempl ( const InputParameters parameters)

Definition at line 44 of file AnisoHeatConductionMaterial.C.

47 _dim(_subproblem.mesh().dimension()),
48 _ref_temp(getParam<Real>("reference_temperature")),
49
50 _has_temp(isCoupled("temperature")),
51 _T(coupledGenericValue<is_ad>("temperature")),
52 _T_var(coupled("temperature")),
53 _T_name(coupledName("temperature", 0)),
54 _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
55
56 _user_provided_thermal_conductivity(getParam<std::vector<Real>>("thermal_conductivity")),
58 declareGenericProperty<RankTwoTensor, is_ad>(_base_name + "thermal_conductivity")),
60 declarePropertyDerivative<RankTwoTensor>(_base_name + "thermal_conductivity", _T_name)),
62 getParam<FunctionName>("thermal_conductivity_temperature_coefficient_function") != ""
63 ? &getFunction("thermal_conductivity_temperature_coefficient_function")
64 : nullptr),
65
66 _specific_heat(declareGenericProperty<Real, is_ad>(_base_name + "specific_heat")),
68 _specific_heat_function(&getFunction("specific_heat")),
69 _ad_q_point(is_ad ? &_assembly.adQPoints() : nullptr)
70{
71}
const MooseArray< ADPoint > * _ad_q_point
GenericMaterialProperty< Real, is_ad > & _specific_heat
MaterialProperty< RankTwoTensor > & _dthermal_conductivity_dT
GenericMaterialProperty< RankTwoTensor, is_ad > & _thermal_conductivity
const GenericVariableValue< is_ad > & _T
const Function *const _thermal_conductivity_temperature_coefficient_function
MaterialProperty< Real > & _dspecific_heat_dT
GenericMaterialProperty< U, is_ad > & declarePropertyDerivative(const std::string &base, const std::vector< VariableName > &c)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Function Documentation

◆ computeQpProperties()

template<bool is_ad>
void AnisoHeatConductionMaterialTempl< is_ad >::computeQpProperties ( )
overrideprotectedvirtual

Definition at line 97 of file AnisoHeatConductionMaterial.C.

98{
99 const auto & temp_qp = _T[_qp];
100 const auto & p = genericQPoints();
101
103 {
104
108 (temp_qp - _ref_temp));
112 MetaPhysicL::raw_value(temp_qp), _q_point[_qp]) *
114 }
115 else
117
119 _dspecific_heat_dT[_qp] =
121}
const Real p
virtual Real value(Real t, const Point &p) const
virtual Real timeDerivative(Real t, const Point &p) const
auto raw_value(const Eigen::Map< T > &in)

◆ genericQPoints() [1/3]

template<bool is_ad>
auto AnisoHeatConductionMaterialTempl< is_ad >::genericQPoints ( )
private

◆ genericQPoints() [2/3]

auto AnisoHeatConductionMaterialTempl< true >::genericQPoints ( )
private

Definition at line 83 of file AnisoHeatConductionMaterial.C.

84{
85 return (*_ad_q_point)[_qp];
86}

◆ genericQPoints() [3/3]

auto AnisoHeatConductionMaterialTempl< false >::genericQPoints ( )
private

Definition at line 90 of file AnisoHeatConductionMaterial.C.

91{
92 return _q_point[_qp];
93}

◆ initQpStatefulProperties()

template<bool is_ad>
void AnisoHeatConductionMaterialTempl< is_ad >::initQpStatefulProperties ( )
overrideprotectedvirtual

Definition at line 75 of file AnisoHeatConductionMaterial.C.

76{
78 DerivativeMaterialInterface::initQpStatefulProperties();
79}

◆ validParams()

template<bool is_ad>
InputParameters AnisoHeatConductionMaterialTempl< is_ad >::validParams ( )
static

Definition at line 23 of file AnisoHeatConductionMaterial.C.

24{
26
27 params.addCoupledVar("temperature", "Coupled variable for temperature.");
28 params.addParam<Real>(
29 "reference_temperature", 293.0, "Reference temperature for thermal conductivity in Kelvin.");
30 params.addParam<std::string>("base_name", "Material property base name.");
31 params.addRequiredParam<std::vector<Real>>("thermal_conductivity",
32 "The thermal conductivity tensor values");
33 params.addParam<FunctionName>(
34 "thermal_conductivity_temperature_coefficient_function",
35 "",
36 "Temperature coefficient for thermal conductivity as a function of temperature.");
37 params.addRequiredParam<FunctionName>("specific_heat",
38 "Specific heat as a function of temperature.");
39 params.addClassDescription("General-purpose material model for anisotropic heat conduction");
40 return params;
41}
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
void addCoupledVar(const std::string &name, const std::string &doc_string)
static InputParameters validParams()

Member Data Documentation

◆ _ad_q_point

template<bool is_ad>
const MooseArray<ADPoint>* AnisoHeatConductionMaterialTempl< is_ad >::_ad_q_point
protected

Definition at line 51 of file AnisoHeatConductionMaterial.h.

◆ _base_name

template<bool is_ad>
const std::string AnisoHeatConductionMaterialTempl< is_ad >::_base_name
protected

Definition at line 40 of file AnisoHeatConductionMaterial.h.

◆ _dim

template<bool is_ad>
const unsigned int AnisoHeatConductionMaterialTempl< is_ad >::_dim
protected

Definition at line 32 of file AnisoHeatConductionMaterial.h.

◆ _dspecific_heat_dT

template<bool is_ad>
MaterialProperty<Real>& AnisoHeatConductionMaterialTempl< is_ad >::_dspecific_heat_dT
protected

Definition at line 48 of file AnisoHeatConductionMaterial.h.

◆ _dthermal_conductivity_dT

template<bool is_ad>
MaterialProperty<RankTwoTensor>& AnisoHeatConductionMaterialTempl< is_ad >::_dthermal_conductivity_dT
protected

Definition at line 44 of file AnisoHeatConductionMaterial.h.

◆ _has_temp

template<bool is_ad>
const bool AnisoHeatConductionMaterialTempl< is_ad >::_has_temp
protected

Definition at line 35 of file AnisoHeatConductionMaterial.h.

◆ _ref_temp

template<bool is_ad>
const Real AnisoHeatConductionMaterialTempl< is_ad >::_ref_temp
protected

Definition at line 34 of file AnisoHeatConductionMaterial.h.

◆ _specific_heat

template<bool is_ad>
GenericMaterialProperty<Real, is_ad>& AnisoHeatConductionMaterialTempl< is_ad >::_specific_heat
protected

Definition at line 47 of file AnisoHeatConductionMaterial.h.

◆ _specific_heat_function

template<bool is_ad>
const Function* const AnisoHeatConductionMaterialTempl< is_ad >::_specific_heat_function
protected

Definition at line 49 of file AnisoHeatConductionMaterial.h.

◆ _T

template<bool is_ad>
const GenericVariableValue<is_ad>& AnisoHeatConductionMaterialTempl< is_ad >::_T
protected

Definition at line 36 of file AnisoHeatConductionMaterial.h.

◆ _T_name

template<bool is_ad>
const VariableName AnisoHeatConductionMaterialTempl< is_ad >::_T_name
protected

Definition at line 38 of file AnisoHeatConductionMaterial.h.

◆ _T_var

template<bool is_ad>
const unsigned int AnisoHeatConductionMaterialTempl< is_ad >::_T_var
protected

Definition at line 37 of file AnisoHeatConductionMaterial.h.

◆ _thermal_conductivity

template<bool is_ad>
GenericMaterialProperty<RankTwoTensor, is_ad>& AnisoHeatConductionMaterialTempl< is_ad >::_thermal_conductivity
protected

Definition at line 43 of file AnisoHeatConductionMaterial.h.

◆ _thermal_conductivity_temperature_coefficient_function

template<bool is_ad>
const Function* const AnisoHeatConductionMaterialTempl< is_ad >::_thermal_conductivity_temperature_coefficient_function
protected

Definition at line 45 of file AnisoHeatConductionMaterial.h.

◆ _user_provided_thermal_conductivity

template<bool is_ad>
const RankTwoTensor AnisoHeatConductionMaterialTempl< is_ad >::_user_provided_thermal_conductivity
protected

Definition at line 42 of file AnisoHeatConductionMaterial.h.


The documentation for this class was generated from the following files: