www.mooseframework.org
StressDivergenceTensors.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 "ALEKernel.h"
13 #include "RankTwoTensor.h"
14 #include "RankFourTensor.h"
15 
16 // Forward Declarations
18 
19 template <>
20 InputParameters validParams<StressDivergenceTensors>();
21 
28 {
29 public:
30  static InputParameters validParams();
31 
32  StressDivergenceTensors(const InputParameters & parameters);
33 
34  virtual void computeJacobian() override;
35  virtual void computeOffDiagJacobian(MooseVariableFEBase & jvar) override;
36  using Kernel::computeOffDiagJacobian;
37 
38 protected:
39  virtual void initialSetup() override;
40 
41  virtual void computeResidual() override;
42  virtual Real computeQpResidual() override;
43  virtual Real computeQpJacobian() override;
44  virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
45 
46  virtual void computeFiniteDeformJacobian();
47  virtual void computeAverageGradientTest();
48  virtual void computeAverageGradientPhi();
49 
50  const std::string _base_name;
52 
53  const MaterialProperty<RankTwoTensor> & _stress;
54  const MaterialProperty<RankFourTensor> & _Jacobian_mult;
55 
56  std::vector<RankFourTensor> _finite_deform_Jacobian_mult;
57  const MaterialProperty<RankTwoTensor> * _deformation_gradient;
58  const MaterialProperty<RankTwoTensor> * _deformation_gradient_old;
59  const MaterialProperty<RankTwoTensor> * _rotation_increment;
60  // MaterialProperty<RankTwoTensor> & _d_stress_dT;
61 
62  const unsigned int _component;
63 
65  unsigned int _ndisp;
66  std::vector<unsigned int> _disp_var;
67 
68  const bool _temp_coupled;
69  const unsigned int _temp_var;
70 
72  const MaterialProperty<RankTwoTensor> * const _deigenstrain_dT;
73 
75  const VariableValue * _out_of_plane_strain;
76  const unsigned int _out_of_plane_strain_var;
77  const unsigned int _out_of_plane_direction;
78 
80  const bool _use_displaced_mesh;
81 
83  std::vector<std::vector<Real>> _avg_grad_test;
84 
86  std::vector<std::vector<Real>> _avg_grad_phi;
87 
90 };
StressDivergenceTensors::computeQpJacobian
virtual Real computeQpJacobian() override
Definition: StressDivergenceTensors.C:212
validParams< StressDivergenceTensors >
InputParameters validParams< StressDivergenceTensors >()
StressDivergenceTensors::_deigenstrain_dT
const MaterialProperty< RankTwoTensor > *const _deigenstrain_dT
d(strain)/d(temperature), if computed by ComputeThermalExpansionEigenstrain
Definition: StressDivergenceTensors.h:72
StressDivergenceTensors::StressDivergenceTensors
StressDivergenceTensors(const InputParameters &parameters)
Definition: StressDivergenceTensors.C:62
StressDivergenceTensors::_out_of_plane_strain
const VariableValue * _out_of_plane_strain
Definition: StressDivergenceTensors.h:75
StressDivergenceTensors
StressDivergenceTensors mostly copies from StressDivergence.
Definition: StressDivergenceTensors.h:27
StressDivergenceTensors::_component
const unsigned int _component
Definition: StressDivergenceTensors.h:62
StressDivergenceTensors::computeAverageGradientPhi
virtual void computeAverageGradientPhi()
Definition: StressDivergenceTensors.C:423
StressDivergenceTensors::_disp_var
std::vector< unsigned int > _disp_var
Definition: StressDivergenceTensors.h:66
StressDivergenceTensors::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
Definition: StressDivergenceTensors.C:277
StressDivergenceTensors::_rotation_increment
const MaterialProperty< RankTwoTensor > * _rotation_increment
Definition: StressDivergenceTensors.h:59
StressDivergenceTensors::_temp_coupled
const bool _temp_coupled
Definition: StressDivergenceTensors.h:68
StressDivergenceTensors::_avg_grad_phi
std::vector< std::vector< Real > > _avg_grad_phi
Gradient of phi function averaged over the element. Used in volumetric locking correction calculation...
Definition: StressDivergenceTensors.h:86
StressDivergenceTensors::computeFiniteDeformJacobian
virtual void computeFiniteDeformJacobian()
Definition: StressDivergenceTensors.C:350
StressDivergenceTensors::_use_displaced_mesh
const bool _use_displaced_mesh
Whether this object is acting on the displaced mesh.
Definition: StressDivergenceTensors.h:80
ALEKernel
Definition: ALEKernel.h:21
StressDivergenceTensors::computeResidual
virtual void computeResidual() override
Definition: StressDivergenceTensors.C:126
StressDivergenceTensors::_volumetric_locking_correction
bool _volumetric_locking_correction
Flag for volumetric locking correction.
Definition: StressDivergenceTensors.h:89
StressDivergenceTensors::initialSetup
virtual void initialSetup() override
Definition: StressDivergenceTensors.C:118
StressDivergenceTensors::_out_of_plane_direction
const unsigned int _out_of_plane_direction
Definition: StressDivergenceTensors.h:77
StressDivergenceTensors::_out_of_plane_strain_coupled
const bool _out_of_plane_strain_coupled
Definition: StressDivergenceTensors.h:74
StressDivergenceTensors::computeQpResidual
virtual Real computeQpResidual() override
Definition: StressDivergenceTensors.C:149
ALEKernel.h
StressDivergenceTensors::validParams
static InputParameters validParams()
Definition: StressDivergenceTensors.C:26
StressDivergenceTensors::_out_of_plane_strain_var
const unsigned int _out_of_plane_strain_var
Definition: StressDivergenceTensors.h:76
StressDivergenceTensors::_Jacobian_mult
const MaterialProperty< RankFourTensor > & _Jacobian_mult
Definition: StressDivergenceTensors.h:54
StressDivergenceTensors::_finite_deform_Jacobian_mult
std::vector< RankFourTensor > _finite_deform_Jacobian_mult
Definition: StressDivergenceTensors.h:56
StressDivergenceTensors::_stress
const MaterialProperty< RankTwoTensor > & _stress
Definition: StressDivergenceTensors.h:53
StressDivergenceTensors::computeJacobian
virtual void computeJacobian() override
Definition: StressDivergenceTensors.C:168
StressDivergenceTensors::_avg_grad_test
std::vector< std::vector< Real > > _avg_grad_test
Gradient of test function averaged over the element. Used in volumetric locking correction calculatio...
Definition: StressDivergenceTensors.h:83
StressDivergenceTensors::computeAverageGradientTest
virtual void computeAverageGradientTest()
Definition: StressDivergenceTensors.C:407
StressDivergenceTensors::_ndisp
unsigned int _ndisp
Coupled displacement variables.
Definition: StressDivergenceTensors.h:65
StressDivergenceTensors::_use_finite_deform_jacobian
bool _use_finite_deform_jacobian
Definition: StressDivergenceTensors.h:51
StressDivergenceTensors::_deformation_gradient
const MaterialProperty< RankTwoTensor > * _deformation_gradient
Definition: StressDivergenceTensors.h:57
StressDivergenceTensors::_temp_var
const unsigned int _temp_var
Definition: StressDivergenceTensors.h:69
StressDivergenceTensors::computeOffDiagJacobian
virtual void computeOffDiagJacobian(MooseVariableFEBase &jvar) override
Definition: StressDivergenceTensors.C:190
StressDivergenceTensors::_deformation_gradient_old
const MaterialProperty< RankTwoTensor > * _deformation_gradient_old
Definition: StressDivergenceTensors.h:58
StressDivergenceTensors::_base_name
const std::string _base_name
Definition: StressDivergenceTensors.h:50