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
ComplianceSensitivity Class Reference

Computes the elasticity compliance sensitivity with respect to a user-supplied variable. More...

#include <ComplianceSensitivity.h>

Inheritance diagram for ComplianceSensitivity:
[legend]

Public Types

typedef DerivativeMaterialPropertyNameInterface::SymbolName SymbolName
 

Public Member Functions

 ComplianceSensitivity (const InputParameters &parameters)
 
virtual void computeQpProperties () override
 
virtual void initialSetup () override
 
virtual void initQpStatefulProperties () 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

MaterialProperty< Real > & _sensitivity
 Sensitivity material generated by this error.
 
const VariableValue_design_density
 Pseudo-density variable.
 
const MaterialPropertyName _design_density_name
 Pseudo-density variable name.
 
const MaterialProperty< Real > & _dEdp
 Derivative of elasticity modulus with respect to pseudo-density.
 
const MaterialProperty< Real > & _youngs_modulus
 Young's modulus of the material.
 
const std::string _base_name
 Base name of the material system.
 
const std::string _stress_name
 stress name, for different stresses on the same material system
 
MaterialProperty< Real > & _strain_energy_density
 The strain energy density material property.
 
const MaterialProperty< Real > & _strain_energy_density_old
 
const GenericMaterialProperty< RankTwoTensor, is_ad > & _mechanical_strain
 Current value of mechanical strain which includes elastic and inelastic components of the strain.
 
const GenericOptionalMaterialProperty< RankTwoTensor, is_ad > & _strain_increment
 Current value of the strain increment for incremental models.
 
const GenericMaterialProperty< RankTwoTensor, is_ad > & _stress
 Current and old values of stress.
 
const MaterialProperty< RankTwoTensor > & _stress_old
 

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 the elasticity compliance sensitivity with respect to a user-supplied variable.

Definition at line 18 of file ComplianceSensitivity.h.

Constructor & Destructor Documentation

◆ ComplianceSensitivity()

ComplianceSensitivity::ComplianceSensitivity ( const InputParameters parameters)

Definition at line 26 of file ComplianceSensitivity.C.

27 : StrainEnergyDensity(parameters),
28 _sensitivity(declareProperty<Real>(_base_name + "sensitivity")),
29 _design_density(coupledValue("design_density")),
30 _design_density_name(coupledName("design_density", 0)),
31 _dEdp(getMaterialPropertyDerivativeByName<Real>(
32 getParam<MaterialPropertyName>("youngs_modulus"), _design_density_name)),
33 _youngs_modulus(getMaterialProperty<Real>(getParam<MaterialPropertyName>("youngs_modulus")))
34{
35}
StrainEnergyDensityTempl< false > StrainEnergyDensity
const MaterialProperty< Real > & _youngs_modulus
Young's modulus of the material.
MaterialProperty< Real > & _sensitivity
Sensitivity material generated by this error.
const VariableValue & _design_density
Pseudo-density variable.
const MaterialProperty< Real > & _dEdp
Derivative of elasticity modulus with respect to pseudo-density.
const MaterialPropertyName _design_density_name
Pseudo-density variable name.
const std::string _base_name
Base name of the material system.

Member Function Documentation

◆ computeQpProperties()

void ComplianceSensitivity::computeQpProperties ( )
overridevirtual

Reimplemented from StrainEnergyDensityTempl< is_ad >.

Definition at line 38 of file ComplianceSensitivity.C.

39{
40 // Call the parent class's method to compute the strain energy density
43}
virtual void computeQpProperties() override
MaterialProperty< Real > & _strain_energy_density
The strain energy density material property.

◆ initialSetup()

template<bool is_ad>
void StrainEnergyDensityTempl< is_ad >::initialSetup ( )
overridevirtualinherited

Definition at line 60 of file StrainEnergyDensity.C.

61{
62 // optional error checking
63 if (isParamValid("incremental"))
64 {
65 auto incremental = getParam<bool>("incremental");
66 if (incremental && !_strain_increment)
67 mooseError("StrainEnergyDensity: Specified incremental = true, but material model is "
68 "not incremental.");
69 if (!incremental && _strain_increment)
70 mooseError("StrainEnergyDensity: Specified incremental = false, but material model is "
71 "incremental.");
72 }
73}
void mooseError(Args &&... args)
const GenericOptionalMaterialProperty< RankTwoTensor, is_ad > & _strain_increment
Current value of the strain increment for incremental models.

◆ initQpStatefulProperties()

template<bool is_ad>
void StrainEnergyDensityTempl< is_ad >::initQpStatefulProperties ( )
overridevirtualinherited

Definition at line 76 of file StrainEnergyDensity.C.

77{
78 _strain_energy_density[_qp] = 0.0;
79}

◆ validParams()

InputParameters ComplianceSensitivity::validParams ( )
static

Definition at line 15 of file ComplianceSensitivity.C.

16{
18 params.addClassDescription("Computes compliance sensitivity needed for SIMP method.");
19 params.addRequiredCoupledVar("design_density", "Design density variable name.");
20 params.addRequiredParam<MaterialPropertyName>("youngs_modulus",
21 "DerivativeParsedMaterial for Youngs modulus.");
22
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

template<bool is_ad>
const std::string StrainEnergyDensityTempl< is_ad >::_base_name
protectedinherited

Base name of the material system.

Definition at line 35 of file StrainEnergyDensity.h.

◆ _dEdp

const MaterialProperty<Real>& ComplianceSensitivity::_dEdp
protected

Derivative of elasticity modulus with respect to pseudo-density.

Definition at line 35 of file ComplianceSensitivity.h.

Referenced by computeQpProperties().

◆ _design_density

const VariableValue& ComplianceSensitivity::_design_density
protected

Pseudo-density variable.

Definition at line 31 of file ComplianceSensitivity.h.

◆ _design_density_name

const MaterialPropertyName ComplianceSensitivity::_design_density_name
protected

Pseudo-density variable name.

Definition at line 33 of file ComplianceSensitivity.h.

◆ _mechanical_strain

template<bool is_ad>
const GenericMaterialProperty<RankTwoTensor, is_ad>& StrainEnergyDensityTempl< is_ad >::_mechanical_strain
protectedinherited

Current value of mechanical strain which includes elastic and inelastic components of the strain.

Definition at line 51 of file StrainEnergyDensity.h.

◆ _sensitivity

MaterialProperty<Real>& ComplianceSensitivity::_sensitivity
protected

Sensitivity material generated by this error.

Definition at line 29 of file ComplianceSensitivity.h.

Referenced by computeQpProperties().

◆ _strain_energy_density

template<bool is_ad>
MaterialProperty<Real>& StrainEnergyDensityTempl< is_ad >::_strain_energy_density
protectedinherited

The strain energy density material property.

Definition at line 41 of file StrainEnergyDensity.h.

Referenced by computeQpProperties().

◆ _strain_energy_density_old

template<bool is_ad>
const MaterialProperty<Real>& StrainEnergyDensityTempl< is_ad >::_strain_energy_density_old
protectedinherited

Definition at line 42 of file StrainEnergyDensity.h.

◆ _strain_increment

template<bool is_ad>
const GenericOptionalMaterialProperty<RankTwoTensor, is_ad>& StrainEnergyDensityTempl< is_ad >::_strain_increment
protectedinherited

Current value of the strain increment for incremental models.

Definition at line 54 of file StrainEnergyDensity.h.

◆ _stress

template<bool is_ad>
const GenericMaterialProperty<RankTwoTensor, is_ad>& StrainEnergyDensityTempl< is_ad >::_stress
protectedinherited

Current and old values of stress.

Definition at line 45 of file StrainEnergyDensity.h.

◆ _stress_name

template<bool is_ad>
const std::string StrainEnergyDensityTempl< is_ad >::_stress_name
protectedinherited

stress name, for different stresses on the same material system

Definition at line 38 of file StrainEnergyDensity.h.

◆ _stress_old

template<bool is_ad>
const MaterialProperty<RankTwoTensor>& StrainEnergyDensityTempl< is_ad >::_stress_old
protectedinherited

Definition at line 46 of file StrainEnergyDensity.h.

◆ _youngs_modulus

const MaterialProperty<Real>& ComplianceSensitivity::_youngs_modulus
protected

Young's modulus of the material.

Definition at line 37 of file ComplianceSensitivity.h.

Referenced by computeQpProperties().


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