www.mooseframework.org
AbaqusUmatMaterial.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 #include "SolidModel.h"
8 
9 #ifndef ABAQUSUMATMATERIAL_H
10 #define ABAQUSUMATMATERIAL_H
11 
12 typedef void (*umat_t)(Real STRESS[],
13  Real STATEV[],
14  Real DDSDDE[],
15  Real * SSE,
16  Real * SPD,
17  Real * SCD,
18  Real * RPL,
19  Real DDSDDT[],
20  Real DRPLDE[],
21  Real * DRPLDT,
22  Real STRAN[],
23  Real DSTRAN[],
24  Real TIME[],
25  Real * DTIME,
26  Real * TEMP,
27  Real * DTEMP,
28  Real PREDEF[],
29  Real DPRED[],
30  Real * CMNAME,
31  int * NDI,
32  int * NSHR,
33  int * NTENS,
34  int * NSTATV,
35  Real PROPS[],
36  int * NPROPS,
37  Real COORDS[],
38  Real DROT[][3],
39  Real * PNEWDT,
40  Real * CELENT,
41  Real DFGRD0[],
42  Real DFGRD1[],
43  int * NOEL,
44  int * NPT,
45  int * LAYER,
46  int * KSPT,
47  int * KSTEP,
48  int * KINC);
49 
50 // Forward Declaration
51 class AbaqusUmatMaterial;
52 
53 template <>
54 InputParameters validParams<AbaqusUmatMaterial>();
55 
56 // AbaqusUmatMateral class define a property
58 {
59 public:
60  AbaqusUmatMaterial(const InputParameters & parameters);
61  virtual ~AbaqusUmatMaterial();
62 
63 protected:
64  FileName _plugin;
65  std::vector<Real> _mechanical_constants;
66  std::vector<Real> _thermal_constants;
67  unsigned int _num_state_vars;
68  unsigned int _num_props;
69 
70  // The plugin library handle
71  void * _handle;
72 
73  // Function pointer to the dynamically loaded function
75 
76  // UMAT real scalar values
78 
79  // UMAT integer values
81 
82  // UMAT arrays
83  Real *_STATEV, *_DDSDDT, *_DRPLDE, *_STRAN, _PREDEF[1], _DPRED[1], _COORDS[3], _DROT[3][3],
85 
86  virtual void initQpStatefulProperties();
87  virtual void computeStress();
88 
89  const VariableGradient & _grad_disp_x;
90  const VariableGradient & _grad_disp_y;
91  const VariableGradient & _grad_disp_z;
92  const VariableGradient & _grad_disp_x_old;
93  const VariableGradient & _grad_disp_y_old;
94  const VariableGradient & _grad_disp_z_old;
95  MaterialProperty<std::vector<Real>> & _state_var;
96  const MaterialProperty<std::vector<Real>> & _state_var_old;
97  MaterialProperty<ColumnMajorMatrix> & _Fbar;
98  const MaterialProperty<ColumnMajorMatrix> & _Fbar_old;
99  MaterialProperty<Real> & _elastic_strain_energy;
100  MaterialProperty<Real> & _plastic_dissipation;
101  MaterialProperty<Real> & _creep_dissipation;
102 };
103 
104 #endif // ABAQUSUMATMATERIAL_H
const VariableGradient & _grad_disp_z
const VariableGradient & _grad_disp_y
const VariableGradient & _grad_disp_x
MaterialProperty< std::vector< Real > > & _state_var
SolidModel is the base class for all this module&#39;s solid mechanics material models.
Definition: SolidModel.h:31
const MaterialProperty< std::vector< Real > > & _state_var_old
virtual void computeStress()
Compute the stress (sigma += deltaSigma)
MaterialProperty< Real > & _elastic_strain_energy
std::vector< Real > _mechanical_constants
void(* umat_t)(Real STRESS[], Real STATEV[], Real DDSDDE[], Real *SSE, Real *SPD, Real *SCD, Real *RPL, Real DDSDDT[], Real DRPLDE[], Real *DRPLDT, Real STRAN[], Real DSTRAN[], Real TIME[], Real *DTIME, Real *TEMP, Real *DTEMP, Real PREDEF[], Real DPRED[], Real *CMNAME, int *NDI, int *NSHR, int *NTENS, int *NSTATV, Real PROPS[], int *NPROPS, Real COORDS[], Real DROT[][3], Real *PNEWDT, Real *CELENT, Real DFGRD0[], Real DFGRD1[], int *NOEL, int *NPT, int *LAYER, int *KSPT, int *KSTEP, int *KINC)
MaterialProperty< Real > & _plastic_dissipation
const VariableGradient & _grad_disp_x_old
std::vector< Real > _thermal_constants
virtual void initQpStatefulProperties()
const VariableGradient & _grad_disp_y_old
MaterialProperty< Real > & _creep_dissipation
AbaqusUmatMaterial(const InputParameters &parameters)
unsigned int _num_state_vars
InputParameters validParams< AbaqusUmatMaterial >()
MaterialProperty< ColumnMajorMatrix > & _Fbar
const MaterialProperty< ColumnMajorMatrix > & _Fbar_old
const VariableGradient & _grad_disp_z_old