https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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{
23public:
25
27
28 virtual void initialSetup() override;
29 virtual void initQpStatefulProperties() override;
30 virtual void computeQpStress() override;
31
32protected:
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};
DualNumber< Real, DNDerivativeType, true > ADReal
ADComputeMultipleInelasticStress computes the stress and a decomposition of the strain into elastic a...
ADComputeSmearedCrackingStress computes the stress for a finite strain material with smeared cracking...
ADMaterialProperty< RankTwoTensor > & _crack_rotation
const MaterialProperty< RealVectorValue > & _crack_max_strain_old
ADMaterialProperty< RealVectorValue > & _crack_flags
Vector of values going from 1 to 0 as crack damage accumulates.
const ADReal _cracking_neg_fraction
Defines transition to changed stiffness during unloading.
ADMaterialProperty< RealVectorValue > & _crack_initiation_strain
const ADReal _shear_retention_factor
Controls the amount of shear retained.
std::vector< ADSmearedCrackSofteningBase * > _softening_models
The user-supplied list of softening models to be used in the 3 crack directions.
bool previouslyCracked()
Check to see whether there was cracking in any diretion in the previous time step.
const MaterialProperty< RankTwoTensor > & _crack_rotation_old
virtual void updateCrackingStateAndStress()
Update all cracking-related state variables and the stress tensor due to cracking in all directions.
std::vector< unsigned int > _prescribed_crack_directions
User-prescribed cracking directions.
void updateLocalElasticityTensor()
Update the local elasticity tensor (_local_elasticity_tensor) due to the effects of cracking.
enum ADComputeSmearedCrackingStress::CrackedElasticityType _cracked_elasticity_type
ADRankFourTensor _local_elasticity_tensor
Variables used by multiple methods within the calculation for a single material point.
virtual unsigned int getNumKnownCrackDirs() const
Get the number of known crack directions.
ADMaterialProperty< RealVectorValue > & _crack_damage
const MaterialProperty< RealVectorValue > & _crack_damage_old
ADMaterialProperty< RealVectorValue > & _crack_max_strain
const unsigned int _max_cracks
Maximum number of cracks permitted at a material point.
CrackedElasticityType
Enum defining the method used to adjust the elasticity tensor for cracking.
const ADVariableValue & _cracking_stress
Input parameters for smeared crack models.
const MaterialProperty< RealVectorValue > & _crack_initiation_strain_old
const ADReal _max_stress_correction
Controls the maximum amount that the damaged elastic stress is corrected to folow the release model d...
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...
void computeCrackStrainAndOrientation(ADRealVectorValue &strain_in_crack_dir)
Compute the crack strain in the crack coordinate system.
std::vector< ADReal > _local_elastic_vector
Vector helper to update local elasticity tensor.
const InputParameters & parameters() const
VariableValueTempl< true > ADVariableValue