www.mooseframework.org
GeneralizedPlaneStrainOffDiag.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 "Kernel.h"
14 #include "SubblockIndexProvider.h"
15 #include "ADRankTwoTensorForward.h"
17 #include "UserObject.h"
18 
20 {
21 public:
23 
25 
26 protected:
27  Real computeQpResidual() override { return 0; }
28 
36  void computeOffDiagJacobianScalar(unsigned int jvar) override;
37  virtual void computeDispOffDiagJacobianScalar(unsigned int component, unsigned int jvar);
38  virtual void computeTempOffDiagJacobianScalar(unsigned int jvar);
39 
41  const std::string _base_name;
42 
44  const std::vector<MaterialPropertyName> _eigenstrain_names;
45  std::vector<const MaterialProperty<RankTwoTensor> *> _deigenstrain_dT;
46 
49 
52  const unsigned int _scalar_var_id;
53 
55 
56  const unsigned int _num_disp_var;
57  std::vector<MooseVariable *> _disp_var;
58 
61 
64 };
const std::vector< MaterialPropertyName > _eigenstrain_names
unsigned int _scalar_out_of_plane_strain_var
Variable number of the out-of-plane strain scalar variable.
GeneralizedPlaneStrainOffDiag(const InputParameters &parameters)
static const std::string component
Definition: NS.h:138
Abstract base class for user objects that provide an index for a given element that is independent of...
const std::string _base_name
Base name of the material system that this kernel applies to.
void computeOffDiagJacobianScalar(unsigned int jvar) override
These methods are used to compute the off-diagonal jacobian for the coupling between scalar variable ...
virtual void computeDispOffDiagJacobianScalar(unsigned int component, unsigned int jvar)
std::vector< MooseVariable * > _disp_var
DenseMatrix< Number > _ke_copy
Member variable to avoid constant dense matrix heap allocations.
std::vector< const MaterialProperty< RankTwoTensor > * > _deigenstrain_dT
virtual void computeTempOffDiagJacobianScalar(unsigned int jvar)
const SubblockIndexProvider *const _subblock_id_provider
A Userobject that carries the subblock ID for all elements.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const MaterialProperty< RankFourTensor > & _Jacobian_mult
unsigned int _scalar_out_of_plane_strain_direction
The direction of the out-of-plane strain.