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  static InputParameters validParams();
30 
31  ComputeStressBase(const InputParameters & parameters);
32 
33 protected:
34  virtual void initQpStatefulProperties() override;
35  virtual void computeQpProperties() override;
36 
41  virtual void computeQpStress() = 0;
42 
45  const std::string _base_name;
46 
48  const MaterialProperty<RankTwoTensor> & _mechanical_strain;
50  MaterialProperty<RankTwoTensor> & _stress;
52  MaterialProperty<RankTwoTensor> & _elastic_strain;
53 
55  const MaterialProperty<RankTwoTensor> & _extra_stress;
56 
58  std::vector<const Function *> _initial_stress_fcn;
59 
61  MaterialProperty<RankFourTensor> & _Jacobian_mult;
62 };
ComputeStressBase::_stress
MaterialProperty< RankTwoTensor > & _stress
Stress material property.
Definition: ComputeStressBase.h:50
ComputeStressBase::_extra_stress
const MaterialProperty< RankTwoTensor > & _extra_stress
Extra stress tensor.
Definition: ComputeStressBase.h:55
ComputeStressBase::_Jacobian_mult
MaterialProperty< RankFourTensor > & _Jacobian_mult
derivative of stress w.r.t. strain (_dstress_dstrain)
Definition: ComputeStressBase.h:61
validParams< ComputeStressBase >
InputParameters validParams< ComputeStressBase >()
ComputeStressBase::computeQpStress
virtual void computeQpStress()=0
Compute the stress and store it in the _stress material property for the current quadrature point.
ComputeStressBase
ComputeStressBase is the base class for stress tensors.
Definition: ComputeStressBase.h:26
ComputeStressBase::validParams
static InputParameters validParams()
Definition: ComputeStressBase.C:17
ComputeStressBase::initQpStatefulProperties
virtual void initQpStatefulProperties() override
Definition: ComputeStressBase.C:43
ComputeStressBase::_base_name
const std::string _base_name
Base name prepended to all material property names to allow for multi-material systems.
Definition: ComputeStressBase.h:45
ComputeStressBase::computeQpProperties
virtual void computeQpProperties() override
Definition: ComputeStressBase.C:50
ComputeStressBase::_elastic_strain
MaterialProperty< RankTwoTensor > & _elastic_strain
Elastic strain material property.
Definition: ComputeStressBase.h:52
ComputeStressBase::_mechanical_strain
const MaterialProperty< RankTwoTensor > & _mechanical_strain
Mechanical strain material property.
Definition: ComputeStressBase.h:48
RotationTensor.h
ComputeStressBase::_initial_stress_fcn
std::vector< const Function * > _initial_stress_fcn
initial stress components
Definition: ComputeStressBase.h:58
ComputeStressBase::ComputeStressBase
ComputeStressBase(const InputParameters &parameters)
Definition: ComputeStressBase.C:28