https://mooseframework.inl.gov
Loading...
Searching...
No Matches
ADComputeStressBase.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 "Material.h"
13#include "Function.h"
16
17#define usingComputeStressBaseMembers \
18 usingMaterialMembers; \
19 using ADComputeStressBaseTempl<R2>::_base_name; \
20 using ADComputeStressBaseTempl<R2>::_mechanical_strain; \
21 using ADComputeStressBaseTempl<R2>::_stress; \
22 using ADComputeStressBaseTempl<R2>::_elastic_strain; \
23 using ADComputeStressBaseTempl<R2>::_extra_stresses; \
24 using ADComputeStressBaseTempl<R2>::_initial_stress_fcn
25
29template <typename R2>
31{
32public:
34
36
37protected:
38 virtual void initQpStatefulProperties() override;
39 virtual void computeQpProperties() override;
40 virtual void computeQpStress() = 0;
41
43 const std::string _base_name;
44
46
50
52 std::vector<const MaterialProperty<R2> *> _extra_stresses;
53
55 std::vector<const Function *> _initial_stress_fcn;
56};
57
ADComputeStressBaseTempl< RankTwoTensor > ADComputeStressBase
ADComputeStressBaseTempl is the base class for stress tensors.
ADMaterialProperty< R2 > & _stress
The stress tensor to be calculated.
const ADMaterialProperty< R2 > & _mechanical_strain
std::vector< const Function * > _initial_stress_fcn
initial stress components
virtual void computeQpProperties() override
const std::string _base_name
Base name of the material system.
virtual void initQpStatefulProperties() override
static InputParameters validParams()
std::vector< const MaterialProperty< R2 > * > _extra_stresses
Extra stress tensors.
virtual void computeQpStress()=0
ADMaterialProperty< R2 > & _elastic_strain
const InputParameters & parameters() const