## 5.9. MATDEF, Material Definitions

Module matdef includes global material data variables.

          MODULE matdef
          USE kindef

          ! **************************************************************

          ! THIS MODULE DEFINES ALL MATERIAL MODELING FLAGS/OPTIONS.

          ! MAIN/BASIC MATERIAL FLAGS AND OPTIONS:
          ! - THESE DEFINE THE TOP LEVEL STRUCTURE OF A MATERIAL MODEL
          !   AND MUST ALWAYS BE SET FOR A GIVEN MATERIAL
          !
          ! ADDITIONAL MATERIAL FLAGS/OPTIONS:
          ! - THESE DEFINE MATERIAL MODELING OPTIONS THAT CAN BE USED
          !   TO RECURSIVELY ACCESS MATERIAL MODELING OPTION INPUT
          !   AND EQUATIONS. IN PARTICULAR, THEY ARE USED IN THE GENERIC
          !   MATERIAL MODEL BUILDER

          ! **************************************************************

          IMPLICIT NONE
          SAVE

          INTEGER (INT4) :: LIMMAT, LIMMAP
          INTEGER (INT4) :: IFUPDATE=0  ! FLAG TO INDICATE IF MATERIAL IS BEING UPDATED IN GET_VIS
          INTEGER (INT4), PARAMETER :: LIMSOL = 8
          INTEGER (INT4) :: IFSPH
          INTEGER (INT4) :: NUMMAT, NUMMAP, MATNO, MATOLD,  NEOS,  NSTR,   NFAI
          INTEGER (INT4) :: MUNTYP, KUNTYP, IFOUT, MATNOP
          INTEGER (INT4) :: NUMMAT_TMP
          LOGICAL,DIMENSION(:), POINTER :: LSMTPL=>NULL()
          REAL (REAL8), DIMENSION(:), POINTER :: RMATIE=>NULL(), RMATKE=>NULL(), RMATDE=>NULL(), RMATVL=>NULL()
          REAL (REAL8), DIMENSION(:), POINTER :: RMATXM=>NULL(), RMATYM=>NULL(), RMATZM=>NULL(), RMATMS=>NULL()

          ! MODEL PARAMETERS COMMON TO SEVERAL FLAGS (OPTIONS)
          INTEGER(INT4) :: NSBSLD, IFSTOCH
          REAL (REAL8) :: RHOREF, A1, C1
          REAL (REAL8) ::  TPREF, SHCV
          REAL (REAL8) :: EY1, EY2, EY3, V12, V23, V31, G12, G23, G31
          REAL (REAL8) :: OAN, OXC, OYC, OZC
          REAL (REAL8) :: C11, C22, C33, C12, C23, C31, KEFF
          REAL (REAL8) :: SHRMDZ, YLDSTZ, EROMOD, EROSON, PMIN, EPSLIM
          REAL (REAL8) ::  DERIV1, DERIV2
          REAL (REAL8) :: FT11, FT22, FT33, FT12, FE11, FE22, FE33, FE12, FT31, FT23
          REAL (REAL8) :: FE23, FE31, X11M, Y11M, Z11M
          REAL (REAL8) :: OMTY, OMAN, OMXC, OMYC, OMZC, FTYPE
          REAL (REAL8) ::   GF, CCDIAG, CCOUP, CSHR
          REAL (REAL8) :: CC, SS

          ! DEFINE PROCESSOR FLAGS - THESE SHOULD GO IN COMMON GRID MODULE WHEN INTEGRATED
          INTEGER(INT4), PARAMETER  :: ISLV_LAG       = 1
          INTEGER(INT4), PARAMETER  :: ISLV_EULER     = 2
          INTEGER(INT4), PARAMETER  :: ISLV_ALE       = 3
          INTEGER(INT4), PARAMETER  :: ISLV_SHELL     = 4
          INTEGER(INT4), PARAMETER  :: ISLV_EULER_GOD = 5
          INTEGER(INT4), PARAMETER  :: ISLV_FCT       = 6
          INTEGER(INT4), PARAMETER  :: ISLV_SPH       = 7
          INTEGER(INT4), PARAMETER  :: ISLV_BEAM      = 8

          ! DEFINE PARAMETERS OF MATERIAL TYPES
          INTEGER(INT4), PARAMETER  :: MATTYP_ISO   = 1
          INTEGER(INT4), PARAMETER  :: MATTYP_ORTHO = 2
          INTEGER(INT4), PARAMETER  :: MATTYP_GAS   = 3

          ! COMPLETE LIST OF MODEL FLAGS INCLUDING FUTURE FLAGS
          INTEGER(INT4), PARAMETER  :: NUMFLAGS     = 1000
          INTEGER(INT4), PARAMETER  :: NFLAGS_MAIN  = 100

          INTEGER (INT4), PARAMETER::IMF_EQUATION      =1
          INTEGER (INT4), PARAMETER::IMF_EOS           =2
          INTEGER (INT4), PARAMETER::IMF_STR           =3
          INTEGER (INT4), PARAMETER::IMF_FAI           =4
          INTEGER (INT4), PARAMETER::IMF_POR           =5
          INTEGER (INT4), PARAMETER::IMF_ERO           =6
          INTEGER (INT4), PARAMETER::IMF_CUTOFFS       =7
          INTEGER (INT4), PARAMETER::IMF_OPTIONS       =8
          INTEGER (INT4), PARAMETER::IMF_USER_MAT_1    =90
          INTEGER (INT4), PARAMETER::IMF_USER_MAT_2    =91
          INTEGER (INT4), PARAMETER::IMF_USER_MAT_3    =92
          INTEGER (INT4), PARAMETER::IMF_USER_MAT_4    =93
          INTEGER (INT4), PARAMETER::IMF_USER_MAT_5    =94

          INTEGER (INT4), PARAMETER::IMF_EOS_LINEAR    =101
          INTEGER (INT4), PARAMETER::IMF_EOS_POLYNOMIAL=102
          INTEGER (INT4), PARAMETER::IMF_EOS_IDEALGAS  =103
          INTEGER (INT4), PARAMETER::IMF_EOS_SHOCK     =104
          INTEGER (INT4), PARAMETER::IMF_EOS_JWL       =105
          INTEGER (INT4), PARAMETER::IMF_EOS_TILLOTSON =106
          INTEGER (INT4), PARAMETER::IMF_EOS_PUFF      =107
          INTEGER (INT4), PARAMETER::IMF_EOS_POROUS    =108
          INTEGER (INT4), PARAMETER::IMF_EOS_ORTHO     =109
          INTEGER (INT4), PARAMETER::IMF_EOS_TWOPHASE  =110
          INTEGER (INT4), PARAMETER::IMF_EOS_LEETARVER =111
          INTEGER (INT4), PARAMETER::IMF_EOS_SESAME    =112
          INTEGER (INT4), PARAMETER::IMF_EOS_COMPACTION=113
          INTEGER (INT4), PARAMETER::IMF_EOS_PALPHA    =114
          INTEGER (INT4), PARAMETER::IMF_EOS_GRUN      =115
          INTEGER (INT4), PARAMETER::IMF_EOS_GEN       =116
          INTEGER (INT4), PARAMETER::IMF_EOS_HJC       =117
          INTEGER (INT4), PARAMETER::IMF_EOS_SLOWBURN  =118
          INTEGER (INT4), PARAMETER::IMF_EOS_USER_1    =190
          INTEGER (INT4), PARAMETER::IMF_EOS_USER_2    =191
          INTEGER (INT4), PARAMETER::IMF_EOS_USER_3    =192
          INTEGER (INT4), PARAMETER::IMF_EOS_USER_4    =193
          INTEGER (INT4), PARAMETER::IMF_EOS_USER_5    =194
          INTEGER (INT4), PARAMETER::IMF_LIMEOS        = IMF_EOS_LINEAR - 123

          INTEGER (INT4), PARAMETER::IMF_STR_HYDRO     =201
          INTEGER (INT4), PARAMETER::IMF_STR_ELASTIC   =202
          INTEGER (INT4), PARAMETER::IMF_STR_VONMISES  =203
          INTEGER (INT4), PARAMETER::IMF_STR_DRUCKERP  =204
          INTEGER (INT4), PARAMETER::IMF_STR_JNCOOK    =205
          INTEGER (INT4), PARAMETER::IMF_STR_ZERARM    =206
          INTEGER (INT4), PARAMETER::IMF_STR_STEINB    =207
          INTEGER (INT4), PARAMETER::IMF_STR_PCWISE    =208
          INTEGER (INT4), PARAMETER::IMF_STR_JH2       =209
          INTEGER (INT4), PARAMETER::IMF_STR_RHT       =210
          INTEGER (INT4), PARAMETER::IMF_STR_GRANULAR  =211
          INTEGER (INT4), PARAMETER::IMF_STR_GENERIC   =212
          INTEGER (INT4), PARAMETER::IMF_STR_VISCOEL   =213
          INTEGER (INT4), PARAMETER::IMF_STR_RJC       =214
          INTEGER (INT4), PARAMETER::IMF_STR_HJC       =215
          INTEGER (INT4), PARAMETER::IMF_STR_USER_1    =290
          INTEGER (INT4), PARAMETER::IMF_STR_USER_2    =291
          INTEGER (INT4), PARAMETER::IMF_STR_USER_3    =292
          INTEGER (INT4), PARAMETER::IMF_STR_USER_4    =293
          INTEGER (INT4), PARAMETER::IMF_STR_USER_5    =294
          INTEGER (INT4), PARAMETER::IMF_STR_BEAMRESIST=295
          INTEGER (INT4), PARAMETER::IMF_LIMSTR        = IMF_STR_HYDRO - 220

          INTEGER (INT4), PARAMETER ::IMF_FAI_NONE     =301
          INTEGER (INT4), PARAMETER ::IMF_FAI_HYDRO    =302
          INTEGER (INT4), PARAMETER ::IMF_FAI_PLSTN    =303
          INTEGER (INT4), PARAMETER ::IMF_FAI_PSTRESS  =304
          INTEGER (INT4), PARAMETER ::IMF_FAI_PSTRAIN  =305
          INTEGER (INT4), PARAMETER ::IMF_FAI_PSS      =306
          INTEGER (INT4), PARAMETER ::IMF_FAI_MSTRESS  =307
          INTEGER (INT4), PARAMETER ::IMF_FAI_MSTRAIN  =308
          INTEGER (INT4), PARAMETER ::IMF_FAI_MSS      =309
          INTEGER (INT4), PARAMETER ::IMF_FAI_CUMDAM   =310
          INTEGER (INT4), PARAMETER ::IMF_FAI_JH2      =311
          INTEGER (INT4), PARAMETER ::IMF_FAI_RHT      =312
          INTEGER (INT4), PARAMETER ::IMF_FAI_TSHOFF   =313
          INTEGER (INT4), PARAMETER ::IMF_FAI_GRADY    =314
          INTEGER (INT4), PARAMETER ::IMF_FAI_JNCOOK   =315
          INTEGER (INT4), PARAMETER ::IMF_FAI_USER_1   =390
          INTEGER (INT4), PARAMETER ::IMF_FAI_USER_2   =391
          INTEGER (INT4), PARAMETER ::IMF_FAI_USER_3   =392
          INTEGER (INT4), PARAMETER ::IMF_FAI_USER_4   =393
          INTEGER (INT4), PARAMETER ::IMF_FAI_USER_5   =394

          INTEGER (INT4), PARAMETER ::IMF_LIMFAI       =IMF_FAI_NONE - 301

          INTEGER (INT4), PARAMETER ::IMF_POR_NONE     =401
          INTEGER (INT4), PARAMETER ::IMF_POR_SIMPLE   =402
          INTEGER (INT4), PARAMETER ::IMF_POR_GENERIC  =403
          INTEGER (INT4), PARAMETER ::IMF_POR_USER_1   =490
          INTEGER (INT4), PARAMETER ::IMF_POR_USER_2   =491
          INTEGER (INT4), PARAMETER ::IMF_POR_USER_3   =492
          INTEGER (INT4), PARAMETER ::IMF_POR_USER_4   =493
          INTEGER (INT4), PARAMETER ::IMF_POR_USER_5   =494
          INTEGER (INT4), PARAMETER ::IMF_LIMPOR = IMF_POR_NONE - 404

          INTEGER (INT4), PARAMETER ::IMF_ERO_NONE     =501
          INTEGER (INT4), PARAMETER ::IMF_ERO_GEOMETRIC=502
          INTEGER (INT4), PARAMETER ::IMF_ERO_PLASTIC  =503
          INTEGER (INT4), PARAMETER ::IMF_ERO_USER_1   =590
          INTEGER (INT4), PARAMETER ::IMF_ERO_USER_2   =591
          INTEGER (INT4), PARAMETER ::IMF_ERO_USER_3   =592
          INTEGER (INT4), PARAMETER ::IMF_ERO_USER_4   =593
          INTEGER (INT4), PARAMETER ::IMF_ERO_USER_5   =594
          INTEGER (INT4), PARAMETER ::IMF_LIMERO = IMF_ERO_NONE - 508

          INTEGER (INT4) :: LIMPARAM  ! DEFINED IN GET_EQ_PARAM

          ! END OF MAIN/BASIC FLAGS

          ! EOS DEPENDENT FLAGS
          INTEGER (INT4), PARAMETER ::IMF_TEMPERATURE          =600
          INTEGER (INT4), PARAMETER ::IMF_ORTHO_MODULI         =601
          INTEGER (INT4), PARAMETER ::IMF_ORTHO_STIFFMAT       =602
          INTEGER (INT4), PARAMETER ::IMF_ORTHO_IJKSPACE       =603
          INTEGER (INT4), PARAMETER ::IMF_ORTHO_XYZSPACE       =604

          ! STRENGTH DEPENDENT FLAGS
          INTEGER (INT4), PARAMETER ::IMF_YP_PCWISE            =701
          INTEGER (INT4), PARAMETER ::IMF_YP_LINEAR            =702
          INTEGER (INT4), PARAMETER ::IMF_YP_STASSI            =703
          INTEGER (INT4), PARAMETER ::IMF_YD_PCWISE            =704
          INTEGER (INT4), PARAMETER ::IMF_GD_PCWISE            =705

          ! FAILURE DEPENDENT FLAGS
          INTEGER (INT4), PARAMETER ::IMF_FAI_CRACKSOFT        =801
          INTEGER (INT4), PARAMETER ::IMF_FAI_ORTHODAM         =802
          INTEGER (INT4), PARAMETER ::IMF_FAI_STOCHASTIC       =803

          END MODULE matdef

NUMMAT | Number of materials for problem
MATNO | Current material number
MATOLD | not available
NEOS | Current equation of state number
NSTR | Current strength model number
NFAI | Current failure model

For each cell, the following variables are defined, according to the material in that cell:

For all materials:

RHOREF | Reference density
TPREF | Reference temperature
SHCV | Specific heat (constant volume)
SHRMDZ | Shear modulus (initial)
YLDSTZ | Yield stress (initial)
EROMOD | Erosion model type
EROSON | Erosion model parameter
PMIN | Hydrodynamic tensile limit (pmin)
EPSLIM | Effective plastic strain limit

Release 18.2 - © ANSYS, Inc. All rights reserved.