https://mooseframework.inl.gov
ComputeSmearedCrackingStress.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(RealVectorValue & 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 
128 
130  std::vector<SmearedCrackSofteningBase *> _softening_models;
131 
133  std::vector<Real> _local_elastic_vector;
134 };
ComputeSmearedCrackingStress computes the stress for a finite strain material with smeared cracking...
virtual void computeQpStress() override
Compute the stress and store it in the _stress material property for the current quadrature point...
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...
ComputeMultipleInelasticStress computes the stress, the consistent tangent operator (or an approximat...
MaterialProperty< RealVectorValue > & _crack_max_strain
MaterialProperty< RealVectorValue > & _crack_initiation_strain
const unsigned int _max_cracks
Maximum number of cracks permitted at a material point.
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_max_strain_old
MaterialProperty< RankTwoTensor > & _crack_rotation
bool previouslyCracked()
Check to see whether there was cracking in any diretion in the previous time step.
std::vector< SmearedCrackSofteningBase * > _softening_models
The user-supplied list of softening models to be used in the 3 crack directions.
ComputeSmearedCrackingStress(const InputParameters &parameters)
std::vector< Real > _local_elastic_vector
Vector helper to update local elasticity tensor.
enum ComputeSmearedCrackingStress::CrackedElasticityType _cracked_elasticity_type
void computeCrackStrainAndOrientation(RealVectorValue &strain_in_crack_dir)
Compute the crack strain in the crack coordinate system.
const VariableValue & _cracking_stress
Input parameters for smeared crack models.
const Real _max_stress_correction
Controls the maximum amount that the damaged elastic stress is corrected to folow the release model d...
virtual void initQpStatefulProperties() override
MaterialProperty< RealVectorValue > & _crack_flags
Vector of values going from 1 to 0 as crack damage accumulates.
CrackedElasticityType
Enum defining the method used to adjust the elasticity tensor for cracking.
virtual unsigned int getNumKnownCrackDirs() const
Get the number of known crack directions.
OutputTools< Real >::VariableValue VariableValue
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const Real _cracking_neg_fraction
Defines transition to changed stiffness during unloading.
MaterialProperty< RealVectorValue > & _crack_damage
const Real _shear_retention_factor
Controls the amount of shear retained.
const MaterialProperty< RealVectorValue > & _crack_damage_old
std::vector< unsigned int > _prescribed_crack_directions
User-prescribed cracking directions.
const MaterialProperty< RealVectorValue > & _crack_initiation_strain_old
const InputParameters & parameters() const
virtual void updateCrackingStateAndStress()
Update all cracking-related state variables and the stress tensor due to cracking in all directions...