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

Computes heat conduction compliance derivative with respect to a variable contained in a parsed material. More...

#include <ThermalSensitivity.h>

Inheritance diagram for ThermalSensitivity:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 ThermalSensitivity (const InputParameters &parameters)
 
virtual void computeQpProperties () override
 
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 Attributes

const std::string _base_name
 Base name of the material system.
 
MaterialProperty< Real > & _sensitivity
 Sensitivity material generated by this object.
 
const VariableValue_design_density
 Pseudo-density defining material interpolation.
 
const MaterialPropertyName _design_density_name
 Name for the pseudo-density variable.
 
const VariableGradient_grad_temperature
 Temperature gradient vector.
 
const MaterialProperty< Real > & _thermal_conductivity
 Thermal conductivity material.
 
const MaterialProperty< Real > & _dTdp
 Derivative with respect to pseudo-density obtained via derivative parsed material.
 

Private Member Functions

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

Computes heat conduction compliance derivative with respect to a variable contained in a parsed material.

This material can be used to optimize a system thermal compliance objective function via the Solid Isotropic Material Penalization (SIMP) approach.

Definition at line 21 of file ThermalSensitivity.h.

Constructor & Destructor Documentation

◆ ThermalSensitivity()

ThermalSensitivity::ThermalSensitivity ( const InputParameters parameters)

Definition at line 26 of file ThermalSensitivity.C.

28 _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
29 _sensitivity(declareProperty<Real>(_base_name + "thermal_sensitivity")),
30 _design_density(coupledValue("design_density")),
31 _design_density_name(coupledName("design_density", 0)),
32 _grad_temperature(coupledGradient("temperature")),
34 getMaterialPropertyByName<Real>(getParam<MaterialPropertyName>("thermal_conductivity"))),
36 getParam<MaterialPropertyName>("thermal_conductivity"), _design_density_name))
37{
38}
const GenericMaterialProperty< U, is_ad > & getMaterialPropertyDerivativeByName(const MaterialPropertyName &base, const std::vector< VariableName > &c)
MaterialProperty< Real > & _sensitivity
Sensitivity material generated by this object.
const VariableGradient & _grad_temperature
Temperature gradient vector.
const MaterialPropertyName _design_density_name
Name for the pseudo-density variable.
const VariableValue & _design_density
Pseudo-density defining material interpolation.
const MaterialProperty< Real > & _thermal_conductivity
Thermal conductivity material.
const MaterialProperty< Real > & _dTdp
Derivative with respect to pseudo-density obtained via derivative parsed material.
const std::string _base_name
Base name of the material system.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Function Documentation

◆ computeQpProperties()

void ThermalSensitivity::computeQpProperties ( )
overridevirtual

Definition at line 41 of file ThermalSensitivity.C.

42{
43 const Real thermal_compliance =
45 _sensitivity[_qp] = -_dTdp[_qp] * thermal_compliance / _thermal_conductivity[_qp];
46}

◆ validParams()

InputParameters ThermalSensitivity::validParams ( )
static

Definition at line 15 of file ThermalSensitivity.C.

16{
18 params.addClassDescription("Computes cost sensitivity needed for multimaterial SIMP method.");
19 params.addRequiredCoupledVar("design_density", "Design density variable name.");
20 params.addRequiredCoupledVar("temperature", "temperature");
21 params.addRequiredParam<MaterialPropertyName>("thermal_conductivity",
22 "DerivativeParsedMaterial for cost of materials.");
23 return params;
24}
void addRequiredCoupledVar(const std::string &name, const std::string &doc_string)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
static InputParameters validParams()

Member Data Documentation

◆ _base_name

const std::string ThermalSensitivity::_base_name
protected

Base name of the material system.

Definition at line 32 of file ThermalSensitivity.h.

◆ _design_density

const VariableValue& ThermalSensitivity::_design_density
protected

Pseudo-density defining material interpolation.

Definition at line 37 of file ThermalSensitivity.h.

◆ _design_density_name

const MaterialPropertyName ThermalSensitivity::_design_density_name
protected

Name for the pseudo-density variable.

Definition at line 39 of file ThermalSensitivity.h.

◆ _dTdp

const MaterialProperty<Real>& ThermalSensitivity::_dTdp
protected

Derivative with respect to pseudo-density obtained via derivative parsed material.

Definition at line 45 of file ThermalSensitivity.h.

Referenced by computeQpProperties().

◆ _grad_temperature

const VariableGradient& ThermalSensitivity::_grad_temperature
protected

Temperature gradient vector.

Definition at line 41 of file ThermalSensitivity.h.

Referenced by computeQpProperties().

◆ _sensitivity

MaterialProperty<Real>& ThermalSensitivity::_sensitivity
protected

Sensitivity material generated by this object.

Definition at line 35 of file ThermalSensitivity.h.

Referenced by computeQpProperties().

◆ _thermal_conductivity

const MaterialProperty<Real>& ThermalSensitivity::_thermal_conductivity
protected

Thermal conductivity material.

Definition at line 43 of file ThermalSensitivity.h.

Referenced by computeQpProperties().


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