www.mooseframework.org
ComputeStressBase.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 #ifndef COMPUTESTRESSBASE_H
8 #define COMPUTESTRESSBASE_H
9 
10 #include "Material.h"
11 #include "RankTwoTensor.h"
12 #include "RankFourTensor.h"
13 #include "RotationTensor.h"
14 #include "DerivativeMaterialInterface.h"
15 
19 class ComputeStressBase : public DerivativeMaterialInterface<Material>
20 {
21 public:
22  ComputeStressBase(const InputParameters & parameters);
23 
24 protected:
25  virtual void initQpStatefulProperties() override;
26  virtual void computeQpProperties() override;
27  virtual void computeQpStress() = 0;
28 
47  void addQpInitialStress();
48 
49  const std::string _base_name;
50  const std::string _elasticity_tensor_name;
51 
52  const MaterialProperty<RankTwoTensor> & _mechanical_strain;
53  MaterialProperty<RankTwoTensor> & _stress;
54  MaterialProperty<RankTwoTensor> & _elastic_strain;
55 
56  const MaterialProperty<RankFourTensor> & _elasticity_tensor;
57 
59  const MaterialProperty<RankTwoTensor> & _extra_stress;
60 
62  std::vector<Function *> _initial_stress_fcn;
63 
65  MaterialProperty<RankFourTensor> & _Jacobian_mult;
66 
68  const bool _store_stress_old;
69 
72 
74  MaterialProperty<RankTwoTensor> * _initial_stress;
75 
77  const MaterialProperty<RankTwoTensor> * _initial_stress_old;
78 };
79 
80 #endif // COMPUTESTRESSBASE_H
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
const std::string _elasticity_tensor_name
ComputeStressBase is the base class for stress tensors.
virtual void computeQpStress()=0
std::vector< Function * > _initial_stress_fcn
initial stress components
const MaterialProperty< RankTwoTensor > * _initial_stress_old
Old value of initial stress, which is needed to correctly implement finite-strain rotations...
MaterialProperty< RankTwoTensor > & _stress
const bool _store_stress_old
Parameter which decides whether to store old stress. This is required for HHT time integration and Ra...
const MaterialProperty< RankTwoTensor > & _mechanical_strain
void addQpInitialStress()
InitialStress Deprecation: remove this method.
const std::string _base_name
virtual void computeQpProperties() override
ComputeStressBase(const InputParameters &parameters)
const bool _initial_stress_provided
Whether initial stress was provided. InitialStress Deprecation: remove this.
virtual void initQpStatefulProperties() override
const MaterialProperty< RankFourTensor > & _elasticity_tensor
MaterialProperty< RankTwoTensor > & _elastic_strain
const MaterialProperty< RankTwoTensor > & _extra_stress
Extra stress tensor.
MaterialProperty< RankTwoTensor > * _initial_stress
Initial stress, if provided. InitialStress Deprecation: remove this.