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