www.mooseframework.org
ComputeStressBase.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 "Material.h"
13 #include "RankTwoTensor.h"
14 #include "RankFourTensor.h"
15 #include "RotationTensor.h"
16 #include "DerivativeMaterialInterface.h"
17 
18 class ComputeStressBase;
19 
20 template <>
21 InputParameters validParams<ComputeStressBase>();
22 
26 class ComputeStressBase : public DerivativeMaterialInterface<Material>
27 {
28 public:
29  ComputeStressBase(const InputParameters & parameters);
30 
31 protected:
32  virtual void initQpStatefulProperties() override;
33  virtual void computeQpProperties() override;
34 
39  virtual void computeQpStress() = 0;
40 
43  const std::string _base_name;
44 
46  const MaterialProperty<RankTwoTensor> & _mechanical_strain;
48  MaterialProperty<RankTwoTensor> & _stress;
50  MaterialProperty<RankTwoTensor> & _elastic_strain;
51 
53  const MaterialProperty<RankTwoTensor> & _extra_stress;
54 
56  std::vector<Function *> _initial_stress_fcn;
57 
59  MaterialProperty<RankFourTensor> & _Jacobian_mult;
60 };
61 
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
ComputeStressBase is the base class for stress tensors.
virtual void computeQpStress()=0
Compute the stress and store it in the _stress material property for the current quadrature point...
std::vector< Function * > _initial_stress_fcn
initial stress components
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
const MaterialProperty< RankTwoTensor > & _mechanical_strain
Mechanical strain material property.
const std::string _base_name
Base name prepended to all material property names to allow for multi-material systems.
virtual void computeQpProperties() override
ComputeStressBase(const InputParameters &parameters)
virtual void initQpStatefulProperties() override
MaterialProperty< RankTwoTensor > & _elastic_strain
Elastic strain material property.
InputParameters validParams< ComputeStressBase >()
const MaterialProperty< RankTwoTensor > & _extra_stress
Extra stress tensor.