www.mooseframework.org
GlobalStrainUserObject.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 "ElementUserObject.h"
14 
15 #include "RankTwoTensor.h"
16 #include "RankFourTensor.h"
17 
19 
20 template <>
21 InputParameters validParams<GlobalStrainUserObject>();
22 
23 class GlobalStrainUserObject : public ElementUserObject, public GlobalStrainUserObjectInterface
24 {
25 public:
26  static InputParameters validParams();
27 
28  GlobalStrainUserObject(const InputParameters & parameters);
29 
30  void initialize() override;
31  void execute() override;
32  void threadJoin(const UserObject & uo) override;
33  void finalize() override;
34  virtual const RankTwoTensor & getResidual() const override;
35  virtual const RankFourTensor & getJacobian() const override;
36  virtual const VectorValue<bool> & getPeriodicDirections() const override;
37 
41  virtual void computeAdditionalStress(){};
42 
43 protected:
44  const std::string _base_name;
45 
46  const MaterialProperty<RankFourTensor> & _dstress_dstrain;
47  const MaterialProperty<RankTwoTensor> & _stress;
48 
52 
53  const unsigned int _dim;
54  const unsigned int _ndisp;
55  std::vector<unsigned int> _disp_var;
56  VectorValue<bool> _periodic_dir;
57 };
GlobalStrainUserObjectInterface
This class provides interface for extracting the periodic directions, residual, and jacobian values f...
Definition: GlobalStrainUserObjectInterface.h:19
GlobalStrainUserObject::_dim
const unsigned int _dim
Definition: GlobalStrainUserObject.h:53
GlobalStrainUserObject::finalize
void finalize() override
Definition: GlobalStrainUserObject.C:96
GlobalStrainUserObject::_jacobian
RankFourTensor _jacobian
Definition: GlobalStrainUserObject.h:51
GlobalStrainUserObject::_residual
RankTwoTensor _residual
Definition: GlobalStrainUserObject.h:50
GlobalStrainUserObject::initialize
void initialize() override
Definition: GlobalStrainUserObject.C:66
GlobalStrainUserObject::_ndisp
const unsigned int _ndisp
Definition: GlobalStrainUserObject.h:54
GlobalStrainUserObject::validParams
static InputParameters validParams()
Definition: GlobalStrainUserObject.C:19
GlobalStrainUserObject::execute
void execute() override
Definition: GlobalStrainUserObject.C:73
GlobalStrainUserObject::_applied_stress_tensor
RankTwoTensor _applied_stress_tensor
Definition: GlobalStrainUserObject.h:49
GlobalStrainUserObject::GlobalStrainUserObject
GlobalStrainUserObject(const InputParameters &parameters)
Definition: GlobalStrainUserObject.C:34
GlobalStrainUserObject::_base_name
const std::string _base_name
Definition: GlobalStrainUserObject.h:41
GlobalStrainUserObject::getJacobian
virtual const RankFourTensor & getJacobian() const override
Definition: GlobalStrainUserObject.C:118
GlobalStrainUserObject::_periodic_dir
VectorValue< bool > _periodic_dir
Definition: GlobalStrainUserObject.h:56
GlobalStrainUserObject::_disp_var
std::vector< unsigned int > _disp_var
Definition: GlobalStrainUserObject.h:55
GlobalStrainUserObject::computeAdditionalStress
virtual void computeAdditionalStress()
Calculate additional applied stresses.
Definition: GlobalStrainUserObject.h:41
GlobalStrainUserObject::_dstress_dstrain
const MaterialProperty< RankFourTensor > & _dstress_dstrain
Definition: GlobalStrainUserObject.h:46
GlobalStrainUserObject::getPeriodicDirections
virtual const VectorValue< bool > & getPeriodicDirections() const override
Definition: GlobalStrainUserObject.C:124
GlobalStrainUserObject::threadJoin
void threadJoin(const UserObject &uo) override
Definition: GlobalStrainUserObject.C:88
RankFourTensorTempl
Definition: ACGrGrElasticDrivingForce.h:20
validParams< GlobalStrainUserObject >
InputParameters validParams< GlobalStrainUserObject >()
RankTwoTensorTempl< Real >
GlobalStrainUserObject
Definition: GlobalStrainUserObject.h:23
GlobalStrainUserObjectInterface.h
GlobalStrainUserObject::getResidual
virtual const RankTwoTensor & getResidual() const override
Definition: GlobalStrainUserObject.C:112
GlobalStrainUserObject::_stress
const MaterialProperty< RankTwoTensor > & _stress
Definition: GlobalStrainUserObject.h:47