https://mooseframework.inl.gov
ADComputeSmearedCrackingStress.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "ColumnMajorMatrix.h"
15 #include "Function.h"
16 
22 {
23 public:
25 
27 
28  virtual void initialSetup() override;
29  virtual void initQpStatefulProperties() override;
30  virtual void computeQpStress() override;
31 
32 protected:
38 
43  virtual void updateCrackingStateAndStress();
44 
51  virtual unsigned int getNumKnownCrackDirs() const;
52 
58  void computeCrackStrainAndOrientation(ADRealVectorValue & strain_in_crack_dir);
59 
68 
74  bool previouslyCracked();
75 
77 
80 
82  std::vector<unsigned int> _prescribed_crack_directions;
83 
85  const unsigned int _max_cracks;
86 
89 
92 
97 
100 
105 
109 
114 
119 
124 
127 
129  std::vector<ADSmearedCrackSofteningBase *> _softening_models;
130 
132  std::vector<ADReal> _local_elastic_vector;
133 };
void updateStressTensorForCracking(ADRankTwoTensor &tensor, const ADRealVectorValue &sigma)
Updates the full stress tensor to account for the effect of cracking using the provided stresses in t...
const ADReal _cracking_neg_fraction
Defines transition to changed stiffness during unloading.
ADMaterialProperty< RealVectorValue > & _crack_initiation_strain
const MaterialProperty< RealVectorValue > & _crack_max_strain_old
ADComputeMultipleInelasticStress computes the stress and a decomposition of the strain into elastic a...
const ADReal _shear_retention_factor
Controls the amount of shear retained.
enum ADComputeSmearedCrackingStress::CrackedElasticityType _cracked_elasticity_type
std::vector< ADSmearedCrackSofteningBase * > _softening_models
The user-supplied list of softening models to be used in the 3 crack directions.
std::vector< unsigned int > _prescribed_crack_directions
User-prescribed cracking directions.
const unsigned int _max_cracks
Maximum number of cracks permitted at a material point.
virtual unsigned int getNumKnownCrackDirs() const
Get the number of known crack directions.
ADMaterialProperty< RealVectorValue > & _crack_damage
const MaterialProperty< RankTwoTensor > & _crack_rotation_old
void updateLocalElasticityTensor()
Update the local elasticity tensor (_local_elasticity_tensor) due to the effects of cracking...
const MaterialProperty< RealVectorValue > & _crack_initiation_strain_old
ADMaterialProperty< RealVectorValue > & _crack_flags
Vector of values going from 1 to 0 as crack damage accumulates.
ADMaterialProperty< RealVectorValue > & _crack_max_strain
ADComputeSmearedCrackingStress computes the stress for a finite strain material with smeared cracking...
ADRankFourTensor _local_elasticity_tensor
Variables used by multiple methods within the calculation for a single material point.
bool previouslyCracked()
Check to see whether there was cracking in any diretion in the previous time step.
ADComputeSmearedCrackingStress(const InputParameters &parameters)
CrackedElasticityType
Enum defining the method used to adjust the elasticity tensor for cracking.
virtual void updateCrackingStateAndStress()
Update all cracking-related state variables and the stress tensor due to cracking in all directions...
const InputParameters & parameters() const
ADMaterialProperty< RankTwoTensor > & _crack_rotation
std::vector< ADReal > _local_elastic_vector
Vector helper to update local elasticity tensor.
const ADReal _max_stress_correction
Controls the maximum amount that the damaged elastic stress is corrected to folow the release model d...
const MaterialProperty< RealVectorValue > & _crack_damage_old
const ADVariableValue & _cracking_stress
Input parameters for smeared crack models.
void computeCrackStrainAndOrientation(ADRealVectorValue &strain_in_crack_dir)
Compute the crack strain in the crack coordinate system.