chrono::fea::ChMaterial3DThermal Class Referenceabstract

Description

Base class for materials about thermal problems, for FEA problems involving temperature, heat flow, etc.

It contains properties and constitutive laws for thermal problems PDEs of the type Z * dT/dt + div(q_flux) = q_source Children classes must implement the interface q_flux = f(grad_T,T), to [Z] = f(grad_T,T) and to the tangent modulus [C] in the linearization of q_flux. The q_source is assumed provided by optional ChLoaderHeatVolumetricSource, and same for boundary conditions.

#include <ChMaterial3DThermal.h>

Inheritance diagram for chrono::fea::ChMaterial3DThermal:
Collaboration diagram for chrono::fea::ChMaterial3DThermal:

Public Member Functions

virtual void ComputeHeatFlux (ChVector3d &q_flux, const ChVector3d grad_T, const double T, ChFieldData *data_per_point, ChElementData *data_per_element)=0
 Compute heat flux vector q_flux from a temperature gradient grad_T q_flux = f(grad_T) This MUST be implemented by children classes. More...
 
virtual void ComputeTangentModulus (ChMatrix33d &tangent_matrix, const ChVector3d grad_T, const double T, ChFieldData *data_per_point, ChElementData *data_per_element)=0
 Computes the tangent modulus [C] in the linearization of q_flux = f(grad_T) about temperature: δq_flux = [C] δgrad_T This MUST be implemented by children classes. More...
 
virtual void ComputeDtMultiplier (double &Dt_multiplier, const double T, ChFieldData *data_per_point, ChElementData *data_per_element)=0
 Computes the Z multiplier in Z*dT/dt + div(q_flux) = q_source: This MUST be implemented by children classes. More...
 
- Public Member Functions inherited from chrono::fea::ChMaterialPoisson
ChMatrixDynamicConstitutiveMatrix ()
 The constitutive matrix [C] to compute the bilinear form in the weak formulation. More...
 
virtual double Get_DtMultiplier ()
 Get the rho multiplier for the 'rho dP/dt term', if any (default, none)
 
- Public Member Functions inherited from chrono::fea::ChMaterial3DDensity
 ChMaterial3DDensity (double density=1000)
 
virtual void SetDensity (double density)
 Set the density of the material, in kg/m^2.
 
virtual double GetDensity () const
 Get the density of the material, in kg/m^2.
 
- Public Member Functions inherited from chrono::fea::ChMaterial
virtual std::unique_ptr< ChFieldDataCreateMaterialPointData () const
 Implement this if the material needs custom data per material point, returning a std::make_unique<ChFieldDataCustom>() where ChFieldDataCustom is your custom class with aditional states/properties per-point.
 

Additional Inherited Members

- Protected Attributes inherited from chrono::fea::ChMaterialPoisson
ChMatrixDynamic constitutiveMatrix
 
- Protected Attributes inherited from chrono::fea::ChMaterial3DDensity
double m_density
 

Member Function Documentation

◆ ComputeDtMultiplier()

virtual void chrono::fea::ChMaterial3DThermal::ComputeDtMultiplier ( double &  Dt_multiplier,
const double  T,
ChFieldData data_per_point,
ChElementData data_per_element 
)
pure virtual

Computes the Z multiplier in Z*dT/dt + div(q_flux) = q_source: This MUST be implemented by children classes.

Parameters
Dt_multiplierthe Z term in Z*dT/dt + div(q_flux) = q_source
Tcurrent temperature (not used here)
data_per_pointpointer to auxiliary data (ex states), if any, per quadrature point
data_per_elementpointer to auxiliary data (ex states), if any, per element

Implemented in chrono::fea::ChMaterial3DThermalNonlinear, and chrono::fea::ChMaterial3DThermalLinear.

◆ ComputeHeatFlux()

virtual void chrono::fea::ChMaterial3DThermal::ComputeHeatFlux ( ChVector3d q_flux,
const ChVector3d  grad_T,
const double  T,
ChFieldData data_per_point,
ChElementData data_per_element 
)
pure virtual

Compute heat flux vector q_flux from a temperature gradient grad_T q_flux = f(grad_T) This MUST be implemented by children classes.

Parameters
q_fluxoutput heat flux
grad_Tcurrent temperature gradient
Tcurrent temperature
data_per_pointpointer to auxiliary data (ex states), if any, per quadrature point
data_per_elementpointer to auxiliary data (ex states), if any, per element

Implemented in chrono::fea::ChMaterial3DThermalNonlinear, and chrono::fea::ChMaterial3DThermalLinear.

◆ ComputeTangentModulus()

virtual void chrono::fea::ChMaterial3DThermal::ComputeTangentModulus ( ChMatrix33d tangent_matrix,
const ChVector3d  grad_T,
const double  T,
ChFieldData data_per_point,
ChElementData data_per_element 
)
pure virtual

Computes the tangent modulus [C] in the linearization of q_flux = f(grad_T) about temperature: δq_flux = [C] δgrad_T This MUST be implemented by children classes.

It is also diffusivity matrix in a diffusion PDE.

Parameters
tangent_matrixoutput [C] tangent as δq_flux = [C] δgrad_T
grad_Tcurrent temperature gradient
Tcurrent temperature
data_per_pointpointer to auxiliary data (ex states), if any, per quadrature point
data_per_elementpointer to auxiliary data (ex states), if any, per element

Implemented in chrono::fea::ChMaterial3DThermalNonlinear, and chrono::fea::ChMaterial3DThermalLinear.


The documentation for this class was generated from the following file:
  • /builds/uwsbel/chrono/src/chrono/fea/ChMaterial3DThermal.h