www.mooseframework.org
ComputeSmearedCrackingStress.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
18 
19 template <>
21 
27 {
28 public:
29  static InputParameters validParams();
30 
31  ComputeSmearedCrackingStress(const InputParameters & parameters);
32 
33  virtual void initialSetup() override;
34  virtual void initQpStatefulProperties() override;
35  virtual void computeQpStress() override;
36 
37 protected:
43 
48  virtual void updateCrackingStateAndStress();
49 
62  virtual void computeCrackingRelease(int i,
63  Real & sigma,
64  Real & stiffness_ratio,
65  const Real strain_in_crack_dir,
66  const Real cracking_stress,
67  const Real cracking_alpha,
68  const Real youngs_modulus);
69 
76  virtual unsigned int getNumKnownCrackDirs() const;
77 
83  void computeCrackStrainAndOrientation(RealVectorValue & strain_in_crack_dir);
84 
92  void updateStressTensorForCracking(RankTwoTensor & tensor, const RealVectorValue & sigma);
93 
99  bool previouslyCracked();
100 
103 
105 
109 
111  const VariableValue & _cracking_stress;
112 
114  std::vector<unsigned int> _prescribed_crack_directions;
115 
117  const unsigned int _max_cracks;
118 
121 
123  const Real _cracking_beta;
124 
127 
132 
134  MaterialProperty<RealVectorValue> & _crack_damage;
135  const MaterialProperty<RealVectorValue> & _crack_damage_old;
137 
140  MaterialProperty<RealVectorValue> & _crack_flags;
141 
143  MaterialProperty<RankTwoTensor> & _crack_rotation;
144  const MaterialProperty<RankTwoTensor> & _crack_rotation_old;
146 
148  MaterialProperty<RealVectorValue> & _crack_initiation_strain;
149  const MaterialProperty<RealVectorValue> & _crack_initiation_strain_old;
151 
153  MaterialProperty<RealVectorValue> & _crack_max_strain;
154  const MaterialProperty<RealVectorValue> & _crack_max_strain_old;
156 
160 
162  std::vector<SmearedCrackSofteningBase *> _softening_models;
163 };
ComputeMultipleInelasticStress
ComputeMultipleInelasticStress computes the stress, the consistent tangent operator (or an approximat...
Definition: ComputeMultipleInelasticStress.h:38
ComputeSmearedCrackingStress::_crack_initiation_strain_old
const MaterialProperty< RealVectorValue > & _crack_initiation_strain_old
Definition: ComputeSmearedCrackingStress.h:149
ComputeSmearedCrackingStress::_shear_retention_factor
const Real _shear_retention_factor
Controls the amount of shear retained.
Definition: ComputeSmearedCrackingStress.h:126
ComputeSmearedCrackingStress::computeCrackingRelease
virtual void computeCrackingRelease(int i, Real &sigma, Real &stiffness_ratio, const Real strain_in_crack_dir, const Real cracking_stress, const Real cracking_alpha, const Real youngs_modulus)
Compute the effect of the cracking release model on the stress and stiffness in the direction of a si...
Definition: ComputeSmearedCrackingStress.C:586
ComputeSmearedCrackingStress::_prescribed_crack_directions
std::vector< unsigned int > _prescribed_crack_directions
User-prescribed cracking directions.
Definition: ComputeSmearedCrackingStress.h:114
SmearedCrackSofteningBase.h
ComputeSmearedCrackingStress::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: ComputeSmearedCrackingStress.C:149
ComputeSmearedCrackingStress::_cracking_release
enum ComputeSmearedCrackingStress::CrackingRelease _cracking_release
ComputeSmearedCrackingStress::validParams
static InputParameters validParams()
Definition: ComputeSmearedCrackingStress.C:20
ComputeSmearedCrackingStress::_max_cracks
const unsigned int _max_cracks
Maximum number of cracks permitted at a material point.
Definition: ComputeSmearedCrackingStress.h:117
ComputeSmearedCrackingStress::CrackingRelease
CrackingRelease
Enum defining the crack release model.
Definition: ComputeSmearedCrackingStress.h:102
ComputeSmearedCrackingStress::updateCrackingStateAndStress
virtual void updateCrackingStateAndStress()
Update all cracking-related state variables and the stress tensor due to cracking in all directions.
Definition: ComputeSmearedCrackingStress.C:375
ComputeSmearedCrackingStress::initialSetup
virtual void initialSetup() override
Definition: ComputeSmearedCrackingStress.C:212
ComputeSmearedCrackingStress::_crack_damage_old
const MaterialProperty< RealVectorValue > & _crack_damage_old
Definition: ComputeSmearedCrackingStress.h:135
ComputeSmearedCrackingStress::updateStressTensorForCracking
void updateStressTensorForCracking(RankTwoTensor &tensor, const RealVectorValue &sigma)
Updates the full stress tensor to account for the effect of cracking using the provided stresses in t...
Definition: ComputeSmearedCrackingStress.C:650
ComputeSmearedCrackingStress::_crack_flags
MaterialProperty< RealVectorValue > & _crack_flags
Vector of values going from 1 to 0 as crack damage accumulates.
Definition: ComputeSmearedCrackingStress.h:140
ComputeSmearedCrackingStress::CrackingRelease::abrupt
ComputeSmearedCrackingStress::_softening_models
std::vector< SmearedCrackSofteningBase * > _softening_models
The user-supplied list of softening models to be used in the 3 crack directions.
Definition: ComputeSmearedCrackingStress.h:162
ComputeSmearedCrackingStress::_crack_damage
MaterialProperty< RealVectorValue > & _crack_damage
Definition: ComputeSmearedCrackingStress.h:134
ComputeSmearedCrackingStress::computeQpStress
virtual void computeQpStress() override
Compute the stress and store it in the _stress material property for the current quadrature point.
Definition: ComputeSmearedCrackingStress.C:246
ComputeSmearedCrackingStress::previouslyCracked
bool previouslyCracked()
Check to see whether there was cracking in any diretion in the previous time step.
Definition: ComputeSmearedCrackingStress.C:676
ComputeSmearedCrackingStress::updateLocalElasticityTensor
void updateLocalElasticityTensor()
Update the local elasticity tensor (_local_elasticity_tensor) due to the effects of cracking.
Definition: ComputeSmearedCrackingStress.C:288
ComputeSmearedCrackingStress::_cracking_stress
const VariableValue & _cracking_stress
Threshold at which cracking initiates if tensile stress exceeds it.
Definition: ComputeSmearedCrackingStress.h:111
ComputeSmearedCrackingStress::ComputeSmearedCrackingStress
ComputeSmearedCrackingStress(const InputParameters &parameters)
Definition: ComputeSmearedCrackingStress.C:84
validParams< ComputeSmearedCrackingStress >
InputParameters validParams< ComputeSmearedCrackingStress >()
ComputeSmearedCrackingStress::computeCrackStrainAndOrientation
void computeCrackStrainAndOrientation(RealVectorValue &strain_in_crack_dir)
Compute the crack strain in the crack coordinate system.
Definition: ComputeSmearedCrackingStress.C:495
ComputeSmearedCrackingStress::_local_elasticity_tensor
RankFourTensor _local_elasticity_tensor
Definition: ComputeSmearedCrackingStress.h:158
ComputeSmearedCrackingStress
ComputeSmearedCrackingStress computes the stress for a finite strain material with smeared cracking.
Definition: ComputeSmearedCrackingStress.h:26
ComputeSmearedCrackingStress::CrackingRelease::exponential
RankFourTensorTempl< Real >
ComputeSmearedCrackingStress::_crack_rotation_old
const MaterialProperty< RankTwoTensor > & _crack_rotation_old
Definition: ComputeSmearedCrackingStress.h:144
ComputeSmearedCrackingStress::_crack_initiation_strain
MaterialProperty< RealVectorValue > & _crack_initiation_strain
Definition: ComputeSmearedCrackingStress.h:148
ComputeMultipleInelasticStress.h
ComputeSmearedCrackingStress::_crack_max_strain
MaterialProperty< RealVectorValue > & _crack_max_strain
Definition: ComputeSmearedCrackingStress.h:153
ComputeSmearedCrackingStress::_cracking_residual_stress
const Real _cracking_residual_stress
Input parameters for smeared crack models.
Definition: ComputeSmearedCrackingStress.h:108
ComputeSmearedCrackingStress::_crack_max_strain_old
const MaterialProperty< RealVectorValue > & _crack_max_strain_old
Definition: ComputeSmearedCrackingStress.h:154
ComputeSmearedCrackingStress::_crack_rotation
MaterialProperty< RankTwoTensor > & _crack_rotation
Definition: ComputeSmearedCrackingStress.h:143
RankTwoTensorTempl
Definition: ACGrGrElasticDrivingForce.h:17
ComputeSmearedCrackingStress::_max_stress_correction
const Real _max_stress_correction
Controls the maximum amount that the damaged elastic stress is corrected to folow the release model d...
Definition: ComputeSmearedCrackingStress.h:130
ComputeSmearedCrackingStress::_cracking_neg_fraction
const Real _cracking_neg_fraction
Defines transition to changed stiffness during unloading.
Definition: ComputeSmearedCrackingStress.h:120
ComputeSmearedCrackingStress::getNumKnownCrackDirs
virtual unsigned int getNumKnownCrackDirs() const
Get the number of known crack directions.
Definition: ComputeSmearedCrackingStress.C:574
ComputeSmearedCrackingStress::CrackingRelease::power
ComputeSmearedCrackingStress::_cracking_beta
const Real _cracking_beta
Controls slope of exponential softening curve.
Definition: ComputeSmearedCrackingStress.h:123