Go to the documentation of this file.
12 #include "DerivativeMaterialInterface.h"
14 #include "RankTwoTensor.h"
20 class PiecewiseLinear;
33 class SolidModel :
public DerivativeMaterialInterface<Material>
36 SolidModel(
const InputParameters & parameters);
55 const QBase *
qrule() {
return _qrule; }
56 const Point &
q_point(
unsigned i)
const {
return _q_point[i]; }
57 Real
JxW(
unsigned i)
const {
return _JxW[i]; }
192 mooseError(
"SolidModel::computeStress must be defined by the derived class");
228 int delta(
int i,
int j)
const {
return i == j; }
230 template <
typename T>
234 return declareProperty<T>(
name);
237 template <
typename T>
241 return getMaterialPropertyOld<T>(
name);
virtual void computeThermalJvec()
std::vector< unsigned int > _active_crack_planes
const bool _compute_JIntegral
const MaterialProperty< ColumnMajorMatrix > * _crack_rotation_old
MaterialProperty< Real > * _current_instantaneous_thermal_expansion_coef
virtual void createElasticityTensor()
SymmElasticityTensor * elasticityTensor() const
MaterialProperty< T > & createProperty(const std::string &prop_name)
const MaterialProperty< RealVectorValue > * _crack_strain_old
SymmElasticityTensor * _local_elasticity_tensor
MaterialProperty< SymmTensor > & _d_stress_dT
virtual void crackingStressRotation()
const CRACKING_RELEASE _cracking_release
const VariableValue & _temperature_old
virtual void computeProperties()
const std::string _compute_method
SolidMechanics::Element * createElement()
SymmTensor _total_strain_increment
Total strain increment, including mechanical strains and eigenstrains.
bool _constitutive_active
virtual void computeStrainEnergyDensity()
MaterialProperty< Real > * _SED
const std::string _appended_property_name
MaterialProperty< RealVectorValue > * _crack_flags
MaterialProperty< RealVectorValue > * _J_thermal_term_vec
virtual unsigned int getNumKnownCrackDirs() const
const unsigned int _max_cracks
virtual void jacobianSetup()
const Real _cracking_beta
const bool _compute_InteractionIntegral
SymmTensor _strain_increment
In most models, this is the mechanical strain increment, but for inelastic models,...
bool & _step_zero
Restartable data to check for the zeroth and first time steps for thermal calculations.
std::map< SubdomainID, std::vector< MooseSharedPointer< VolumetricModel > > > _volumetric_models
const Function * _alpha_function
MaterialProperty< SymmElasticityTensor > & _Jacobian_mult
virtual void finalizeStress()
Rotate stress to current configuration.
SymmTensor _mechanical_strain_increment
Mechanical strain increment, which is the total strain increment minus eigenstrains.
const MaterialProperty< SymmTensor > & _stress_old_prop
std::map< SubdomainID, MooseSharedPointer< ConstitutiveModel > > _constitutive_model
const MaterialProperty< RealVectorValue > * _crack_flags_old
std::vector< SubdomainID > _block_id
Moose::CoordinateSystemType _coord_type
MaterialProperty< RealVectorValue > * _crack_count
This class defines a basic set of capabilities any elasticity tensor should have.
const VariableGradient & _temp_grad
bool _has_stress_free_temp
const Point & q_point(unsigned i) const
virtual void computeEshelby()
MaterialProperty< RealVectorValue > * _crack_strain
virtual void applyVolumetricStrain()
const Function *const _cracking_stress_function
std::set< MooseSharedPointer< ConstitutiveModel > > _models_to_free
const MaterialProperty< T > & getPropertyOld(const std::string &prop_name)
virtual void initialSetup()
virtual Real computeCrackFactor(int i, Real &sigma, Real &flagVal)
virtual bool updateElasticityTensor(SymmElasticityTensor &tensor)
Return true if the elasticity tensor changed.
virtual void computeCurrentInstantaneousThermalExpansionCoefficient()
virtual void initStatefulProperties(unsigned n_points)
const MaterialProperty< SymmTensor > & _total_strain_old
virtual void computeConstitutiveModelStress()
Compute the stress (sigma += deltaSigma)
SolidModel is the base class for all this module's solid mechanics material models.
RealVectorValue _crack_flags_local
virtual void elementInit()
Element is the base class for all of this module's solid mechanics element formulations.
MaterialProperty< SymmElasticityTensor > & _elasticity_tensor
virtual void modifyStrainIncrement()
Modify increment for things like thermal strain.
int delta(int i, int j) const
const MaterialProperty< Real > * _SED_old
const Function * _youngs_modulus_function
const VariableValue & _temperature
virtual void applyThermalStrain()
virtual void computeStress()
Compute the stress (sigma += deltaSigma)
bool _mean_alpha_function
PiecewiseLinear * _piecewise_linear_alpha_function
void applyCracksToTensor(SymmTensor &tensor, const RealVectorValue &sigma)
MaterialProperty< ColumnMajorMatrix > * _crack_rotation
virtual void crackingStrainDirections()
Determine cracking directions. Rotate elasticity tensor.
MaterialProperty< RealVectorValue > * _crack_max_strain
MaterialProperty< SymmTensor > & _total_strain
MaterialProperty< RankTwoTensor > * _Eshelby_tensor
SolidMechanics::Element * _element
std::set< std::string > _dep_matl_props
ColumnMajorMatrix _principal_strain
const MaterialProperty< SymmTensor > & _elastic_strain_old
const MaterialProperty< RealVectorValue > * _crack_max_strain_old
const MaterialProperty< RealVectorValue > * _crack_count_old
InputParameters validParams< SolidModel >()
MaterialProperty< SymmTensor > & _stress
static void rotateSymmetricTensor(const ColumnMajorMatrix &R, const SymmTensor &T, SymmTensor &result)
const Real _cracking_neg_fraction
virtual void initQpStatefulProperties()
virtual void computePreconditioning()
virtual void timestepSetup()
void computeCrackStrainAndOrientation(ColumnMajorMatrix &principal_strain)
MaterialProperty< SymmTensor > & _elastic_strain
SolidModel(const InputParameters ¶meters)
void computeElasticityTensor()
virtual void checkElasticConstants()
const Function * _poissons_ratio_function
void createConstitutiveModel(const std::string &cm_name)
const SolidMechanics::Element * element() const
const Real _cracking_residual_stress
Real JxW(unsigned i) const