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 #include "JvarMapInterface.h"
16 
17 // Forward Declarations
18 
25 {
26 public:
28 
29  StressDivergenceTensors(const InputParameters & parameters);
30 
31  virtual void computeJacobian() override;
32  virtual void computeOffDiagJacobian(unsigned int jvar) override;
33 
34 protected:
35  virtual void initialSetup() override;
36 
37  virtual void computeResidual() override;
38  virtual Real computeQpResidual() override;
39  virtual Real computeQpJacobian() override;
40  virtual Real computeQpOffDiagJacobian(unsigned int jvar) override;
41 
42  virtual void computeFiniteDeformJacobian();
43  virtual void computeAverageGradientTest();
44  virtual void computeAverageGradientPhi();
45 
47  const std::string _base_name;
48 
50 
54 
55  std::vector<RankFourTensor> _finite_deform_Jacobian_mult;
59  // MaterialProperty<RankTwoTensor> & _d_stress_dT;
60 
62  const unsigned int _component;
63 
65  unsigned int _ndisp;
66 
68  std::vector<unsigned int> _disp_var;
69 
71  std::vector<std::vector<const MaterialProperty<RankTwoTensor> *>> _deigenstrain_dargs;
72 
75  const unsigned int _out_of_plane_strain_var;
76  const unsigned int _out_of_plane_direction;
77 
79  const bool _use_displaced_mesh;
80 
82  std::vector<std::vector<Real>> _avg_grad_test;
83 
85  std::vector<std::vector<Real>> _avg_grad_phi;
86 
89 };
const std::string _base_name
Base name of the material system that this kernel applies to.
std::vector< std::vector< Real > > _avg_grad_phi
Gradient of phi function averaged over the element. Used in volumetric locking correction calculation...
const VariableValue *const _out_of_plane_strain
bool _volumetric_locking_correction
Flag for volumetric locking correction.
unsigned int _ndisp
Coupled displacement variables.
std::vector< std::vector< Real > > _avg_grad_test
Gradient of test function averaged over the element. Used in volumetric locking correction calculatio...
const unsigned int _out_of_plane_strain_var
virtual void computeOffDiagJacobian(unsigned int jvar) override
const unsigned int _component
An integer corresponding to the direction this kernel acts in.
const MaterialProperty< RankTwoTensor > * _deformation_gradient_old
virtual void computeJacobian() override
const unsigned int _out_of_plane_direction
virtual Real computeQpJacobian() override
const MaterialProperty< RankTwoTensor > * _rotation_increment
std::vector< unsigned int > _disp_var
Displacement variables IDs.
std::vector< RankFourTensor > _finite_deform_Jacobian_mult
StressDivergenceTensors(const InputParameters &parameters)
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
std::vector< std::vector< const MaterialProperty< RankTwoTensor > * > > _deigenstrain_dargs
eigen strain derivatives wrt coupled variables
virtual void initialSetup() override
const bool _use_displaced_mesh
Whether this object is acting on the displaced mesh.
const MaterialProperty< RankTwoTensor > * _deformation_gradient
const MaterialProperty< RankFourTensor > & _Jacobian_mult
OutputTools< Real >::VariableValue VariableValue
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void computeFiniteDeformJacobian()
virtual void computeResidual() override
static InputParameters validParams()
virtual Real computeQpResidual() override
const MaterialProperty< RankTwoTensor > & _stress
The stress tensor that the divergence operator operates on.
StressDivergenceTensors mostly copies from StressDivergence.