www.mooseframework.org
GeneralizedPlaneStrainOffDiag.h
Go to the documentation of this file.
1 /****************************************************************/
2 /* MOOSE - Multiphysics Object Oriented Simulation Environment */
3 /* */
4 /* All contents are licensed under LGPL V2.1 */
5 /* See LICENSE for full restrictions */
6 /****************************************************************/
7 
8 #ifndef GENERALIZEDPLANESTRAINOFFDIAG_H
9 #define GENERALIZEDPLANESTRAINOFFDIAG_H
10 
11 #include "Kernel.h"
12 #include "DerivativeMaterialInterface.h"
13 #include "SubblockIndexProvider.h"
14 
15 // Forward Declarations
17 class RankTwoTensor;
18 class RankFourTensor;
19 
20 template <>
22 
23 class GeneralizedPlaneStrainOffDiag : public DerivativeMaterialInterface<Kernel>
24 {
25 public:
26  GeneralizedPlaneStrainOffDiag(const InputParameters & parameters);
27 
28 protected:
29  Real computeQpResidual() override { return 0; }
30 
38  void computeOffDiagJacobianScalar(unsigned int jvar) override;
39  virtual void computeDispOffDiagJacobianScalar(unsigned int component, unsigned int jvar);
40  virtual void computeTempOffDiagJacobianScalar(unsigned int jvar);
41 
42  std::string _base_name;
43 
44  const MaterialProperty<RankFourTensor> & _Jacobian_mult;
45  const std::vector<MaterialPropertyName> _eigenstrain_names;
46  std::vector<const MaterialProperty<RankTwoTensor> *> _deigenstrain_dT;
47 
50  const unsigned int _scalar_var_id;
51 
52  MooseVariable * _temp_var;
53 
54  const unsigned int _num_disp_var;
55  std::vector<MooseVariable *> _disp_var;
56 
58 };
59 #endif // GENERALIZEDPLANESSTRAINOFFDIAG_H
const std::vector< MaterialPropertyName > _eigenstrain_names
GeneralizedPlaneStrainOffDiag(const InputParameters &parameters)
Abstract base class for user objects that provide an index for a given element that is independent of...
Real component(const SymmTensor &symm_tensor, unsigned int index)
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
std::vector< const MaterialProperty< RankTwoTensor > * > _deigenstrain_dT
virtual void computeTempOffDiagJacobianScalar(unsigned int jvar)
const MaterialProperty< RankFourTensor > & _Jacobian_mult
const SubblockIndexProvider * _subblock_id_provider
InputParameters validParams< GeneralizedPlaneStrainOffDiag >()