www.mooseframework.org
ADStressDivergenceTensors.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 "ADKernel.h"
13 
14 #define usingStressDivergenceTensorsMembers \
15  usingKernelMembers; \
16  using ADStressDivergenceTensors<compute_stage>::_base_name; \
17  using ADStressDivergenceTensors<compute_stage>::_stress; \
18  using ADStressDivergenceTensors<compute_stage>::_component; \
19  using ADStressDivergenceTensors<compute_stage>::_ndisp; \
20  using ADStressDivergenceTensors<compute_stage>::_disp_var; \
21  using ADStressDivergenceTensors<compute_stage>::_avg_grad_test; \
22  using ADStressDivergenceTensors<compute_stage>::_volumetric_locking_correction
23 
24 // Forward Declarations
25 template <ComputeStage>
27 template <typename>
31 
33 
37 template <ComputeStage compute_stage>
38 class ADStressDivergenceTensors : public ADKernel<compute_stage>
39 {
40 public:
41  static InputParameters validParams();
42 
43  ADStressDivergenceTensors(const InputParameters & parameters);
44 
45 protected:
46  void initialSetup() override;
47 
48  ADReal computeQpResidual() override;
49  void precalculateResidual() override;
50 
51  const std::string _base_name;
52 
53  const ADMaterialProperty(RankTwoTensor) & _stress;
54  const unsigned int _component;
55 
57  const unsigned int _ndisp;
58  std::vector<unsigned int> _disp_var;
59 
61  std::vector<ADReal> _avg_grad_test;
62 
65 
67 };
ADStressDivergenceTensors
ADStressDivergenceTensors is the automatic differentiation version of StressDivergenceTensors.
Definition: ADStressDivergenceTensors.h:26
RankTwoTensor
RankTwoTensorTempl< Real > RankTwoTensor
Definition: ADStressDivergenceTensors.h:28
ADStressDivergenceTensors::_volumetric_locking_correction
const bool _volumetric_locking_correction
Flag for volumetric locking correction.
Definition: ADStressDivergenceTensors.h:64
ADStressDivergenceTensors::computeQpResidual
ADReal computeQpResidual() override
Definition: ADStressDivergenceTensors.C:72
ADStressDivergenceTensors::_avg_grad_test
std::vector< ADReal > _avg_grad_test
Gradient of test function averaged over the element. Used in volumetric locking correction calculatio...
Definition: ADStressDivergenceTensors.h:61
ADStressDivergenceTensors::_base_name
const std::string _base_name
Definition: ADStressDivergenceTensors.h:51
ADStressDivergenceTensors::_ndisp
const unsigned int _ndisp
Coupled displacement variables.
Definition: ADStressDivergenceTensors.h:57
ADStressDivergenceTensors::precalculateResidual
void precalculateResidual() override
Definition: ADStressDivergenceTensors.C:85
ADStressDivergenceTensors::validParams
static InputParameters validParams()
Definition: ADStressDivergenceTensors.C:20
ADStressDivergenceTensors::_component
const unsigned int _component
Definition: ADStressDivergenceTensors.h:54
ADStressDivergenceTensors::usingKernelMembers
usingKernelMembers
Definition: ADStressDivergenceTensors.h:66
ADStressDivergenceTensors::_disp_var
std::vector< unsigned int > _disp_var
Definition: ADStressDivergenceTensors.h:58
ADStressDivergenceTensors::initialSetup
void initialSetup() override
Definition: ADStressDivergenceTensors.C:63
ADStressDivergenceTensors::ADMaterialProperty
const ADMaterialProperty(RankTwoTensor) &_stress
DualRankTwoTensor
RankTwoTensorTempl< DualReal > DualRankTwoTensor
Definition: ADStressDivergenceTensors.h:30
ADStressDivergenceTensors::ADStressDivergenceTensors
ADStressDivergenceTensors(const InputParameters &parameters)
Definition: ADStressDivergenceTensors.C:40
declareADValidParams
declareADValidParams(ADStressDivergenceTensors)
RankTwoTensorTempl
Definition: ACGrGrElasticDrivingForce.h:17