OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
read_material_models.F File Reference
#include "implicit_f.inc"
#include "param_c.inc"
#include "tablen_c.inc"
#include "units_c.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "scr19_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine read_material_models (mat_elem, mlaw_tag, fail_tag, eos_tag, bufmat, sbufmat, ipm, pm, unitab, multi_fvm, failwave, nloc_dmg, lsubmodel, table, ltitr, userl_avail, mat_number, npc, tf, snpc, npts, buflen)

Function/Subroutine Documentation

◆ read_material_models()

subroutine read_material_models ( type(mat_elem_), intent(inout) mat_elem,
type(mlaw_tag_), dimension(nummat), intent(inout) mlaw_tag,
type(fail_tag_), dimension(0:maxfail), intent(inout) fail_tag,
type(eos_tag_), dimension(0:maxeos), intent(inout) eos_tag,
intent(inout) bufmat,
integer, intent(in) sbufmat,
integer, dimension(npropmi,nummat), intent(inout) ipm,
intent(inout) pm,
type (unit_type_), intent(in) unitab,
type(multi_fvm_struct) multi_fvm,
type(failwave_str_) failwave,
type(nlocal_str_) nloc_dmg,
type(submodel_data), dimension(nsubmod), intent(in) lsubmodel,
type(ttable), dimension(ntable) table,
integer, intent(in) ltitr,
integer, intent(in) userl_avail,
integer, intent(inout) mat_number,
integer, dimension(snpc), intent(in) npc,
dimension(npts), intent(in) tf,
integer, intent(in) snpc,
integer, intent(in) npts,
integer, intent(inout) buflen )

Definition at line 53 of file read_material_models.F.

59C-----------------------------------------------
60C D e s c r i p t i o n
61C-----------------------------------------------
62C This subroutine is managing all readers related to material model :
63C - Constitutive Laws : /MAT
64C - Equations of State : /EOS
65C - Failure models : /FAIL
66C - viscosity : /VISC
67C - thermal parameters : /HEAT
68C - etc ...
69C-----------------------------------------------
70C M o d u l e s
71C-----------------------------------------------
72 USE unitab_mod
73 USE elbuftag_mod
74 USE message_mod
75 USE multi_fvm_mod
76 USE failwave_mod
78 USE submodel_mod
80 USE table_mod
81 USE mat_elem_mod
82 USE hm_read_mat_mod
83 use hm_read_therm_stress_mod
84c-----------------------------------------------
85C I m p l i c i t T y p e s
86C-----------------------------------------------
87#include "implicit_f.inc"
88C-----------------------------------------------
89C C o m m o n B l o c k s
90C-----------------------------------------------
91#include "param_c.inc"
92#include "tablen_c.inc"
93#include "units_c.inc"
94#include "com01_c.inc"
95#include "com04_c.inc"
96#include "scr19_c.inc"
97C-----------------------------------------------
98C D u m m y A r g u m e n t s
99C-----------------------------------------------
100 INTEGER ,INTENT(IN) :: LTITR
101 INTEGER ,INTENT(IN) :: USERL_AVAIL
102 INTEGER ,INTENT(IN) :: SBUFMAT
103 INTEGER ,INTENT(INOUT) :: MAT_NUMBER
104 INTEGER ,INTENT(INOUT) :: BUFLEN
105 INTEGER ,DIMENSION(NPROPMI,NUMMAT), INTENT(INOUT) :: IPM
106 my_real ,DIMENSION(NPROPM ,NUMMAT), INTENT(INOUT) :: pm
107 my_real ,DIMENSION(SBUFMAT) , INTENT(INOUT) :: bufmat
108 TYPE (UNIT_TYPE_),INTENT(IN) :: UNITAB
109 TYPE(MLAW_TAG_) , DIMENSION(NUMMAT) , INTENT(INOUT) :: MLAW_TAG
110 TYPE(EOS_TAG_) ,DIMENSION(0:MAXEOS) , INTENT(INOUT) :: EOS_TAG
111 TYPE(FAIL_TAG_) ,DIMENSION(0:MAXFAIL), INTENT(INOUT) :: FAIL_TAG
112 TYPE(MULTI_FVM_STRUCT) :: MULTI_FVM
113 TYPE(FAILWAVE_STR_) :: FAILWAVE
114 TYPE(NLOCAL_STR_) :: NLOC_DMG
115 TYPE(SUBMODEL_DATA) ,INTENT(IN) :: LSUBMODEL(NSUBMOD)
116 TYPE(TTABLE) ,DIMENSION(NTABLE) :: TABLE
117 TYPE(MAT_ELEM_) ,INTENT(INOUT) :: MAT_ELEM
118 INTEGER,INTENT(IN) :: SNPC, NPTS
119 INTEGER,INTENT(IN) :: NPC(SNPC)
120 my_real,INTENT(IN) :: tf(npts)
121C-----------------------------------------------
122C L o c a l V a r i a b l e s
123C-----------------------------------------------
124 INTEGER :: IADBUF,ILAW
125 CHARACTER MESS*40
126C-----------------------------------------------
127 DATA iadbuf /1/
128 DATA mess/'MATERIAL DEFINITION '/
129C-----------------------------------------------
130C S o u r c e L i n e s
131C=======================================================================
132 CALL ini_mat_elem (mat_elem)
133
134 !Set default parameters used in material laws
135 CALL ini_mlaw_vars(mlaw_tag ,nummat)
136 CALL ini_eos_vars (eos_tag)
137c----------
138 ilaw = 0
139 buflen = 0
140 ilag = 0
141 iale = 0
142 ieuler = 0
143 iturb = 0
144
145 pm(1:100,nummat)=zero
146 multi_fvm%NBMAT = 0 !Initialize number of material in law151
147 failwave%WAVE_MOD = 0 !Initialization of failwave option
148 failwave%NDDL = 0
149c----------
150 !PRECONDITION - RETURN
151 IF (nummat == 1) THEN
152 ilag=1
153 RETURN
154 ENDIF
155c----------
156
157 WRITE(iout,1000)nummat-1
158
159c-------------------------------------------------------------------
160c /MAT : Material laws (Constitutive law : sigma,epsilon)
161c-------------------------------------------------------------------
162 CALL hm_read_mat(
163 . mat_elem%MAT_PARAM ,mlaw_tag ,eos_tag ,bufmat ,
164 . buflen ,iadbuf ,ipm ,pm ,
165 . multi_fvm ,unitab ,lsubmodel ,table ,
166 . sbufmat ,npropmi ,npropm ,trimat ,
167 . ialelag ,ntable ,nummat ,hm_nummat ,
168 . ltitr ,userl_avail,mat_number )
169
170c-------------------------------------------------------------------
171c /EOS : Equations of State P=P(ยต,E)
172c-------------------------------------------------------------------
173 CALL hm_read_eos(mat_elem%MAT_PARAM ,ipm ,pm ,bufmat ,nummat, nfunct,
174 . buflen ,iadbuf ,eos_tag ,unitab ,lsubmodel,
175 . mlaw_tag ,npc ,tf ,snpc ,npts ,sbufmat,
176 . ntable ,table)
177
178c-------------------------------------------------------------------
179c /FAIL : Failure Models
180c-------------------------------------------------------------------
181 CALL hm_read_fail(mat_elem%MAT_PARAM,nummat,maxfail ,fail_tag,
182 . ntable ,table ,failwave ,nloc_dmg,
183 . unitab ,lsubmodel)
184
185c-------------------------------------------------------------------
186c /VISC : Visco elastic Models
187c-------------------------------------------------------------------
188 CALL hm_read_visc(mat_elem%MAT_PARAM ,ipm ,bufmat,
189 . unitab ,lsubmodel ,table )
190
191c-------------------------------------------------------------------
192c /LEAK : Fabric Leakage Models
193c-------------------------------------------------------------------
194 CALL hm_read_leak(ipm, pm, unitab, lsubmodel)
195
196c-------------------------------------------------------------------
197C /ALE/MAT
198c-------------------------------------------------------------------
199 CALL read_ale_mat(lsubmodel, unitab, ipm, pm)
200
201c-------------------------------------------------------------------
202C /EULER/MAT
203c-------------------------------------------------------------------
204 CALL read_euler_mat(lsubmodel, unitab, ipm, pm)
205
206c-------------------------------------------------------------------
207c /MAT/LAW51 - FILL BUFFER (modern input)
208c-------------------------------------------------------------------
209 CALL fill_buffer_51_0(mat_elem%MAT_PARAM, ipm, pm, bufmat, mat_elem%MAT_PARAM, mlaw_tag )
210
211c-------------------------------------------------------------------
212c /HEAT/MAT : thermal parameters
213c-------------------------------------------------------------------
214 CALL hm_read_therm(mat_elem%MAT_PARAM,bufmat, buflen, ipm, pm, unitab, lsubmodel)
215
216c-------------------------------------------------------------------
217c /THERM/STRESS : thermal expansion
218c-------------------------------------------------------------------
219 CALL hm_read_therm_stress(nummat ,mat_elem%MAT_PARAM,mlaw_tag, unitab, lsubmodel,
220 . iout ,npropm ,npropmi ,ipm ,pm )
221
222c-------------------------------------------------------------------
223c /NONLOCAL : Non-local regularization
224c------------------------------------------------------------------
225 CALL hm_read_nonlocal(mat_elem%MAT_PARAM,nloc_dmg ,mlaw_tag ,ipm, unitab, lsubmodel)
226
227c-------------------------------------------------------------------
228c ALE EULER SPECIFIC TREATMENTS
229c-------------------------------------------------------------------
230
231 !SPECIFIC TREATMENTS FOR LAW151 MATERIAL LAWS RELATED TO PSH PARAMETERS & EOS
232 IF (multi_fvm%IS_USED) THEN
233 !Check pressure shift consistency between submaterials
234 !They must be equal one to another, otherwise, throw an error
235 CALL multi_check_psh(multi_fvm, nummat, npropmi, npropm, ipm, pm)
236 CALL multi_check_eos(multi_fvm, nummat, npropmi, npropm, ipm, pm)
237 ENDIF
238
239C------------------------------
240 RETURN
241c------------------------------
242 1000 FORMAT(//
243 . ' MATERIAL LAWS'/
244 . ' -------------'/,
245 . ' NUMBER OF MATERIALS. . . . . . . . . =',i10//)
246c------------------------------
#define my_real
Definition cppsort.cpp:32
subroutine fill_buffer_51_0(matparam_tab, ipm, pm, bufmat, mat_param, mlaw_tag)
subroutine hm_read_eos(mat_param, ipm, pm, bufmat, nummat, nfunct, buflen, iadbuf, eos_tag, unitab, lsubmodel, mlaw_tag, npc, tf, snpc, npts, sbufmat, ntable, table)
Definition hm_read_eos.F:68
subroutine hm_read_fail(mat_param, nummat, maxfail, fail_tag, ntable, table, failwave, nloc_dmg, unitab, lsubmodel)
subroutine hm_read_leak(ipm, pm, unitab, lsubmodel)
subroutine hm_read_nonlocal(mat_param, nloc_dmg, mlaw_tag, ipm, unitab, lsubmodel)
subroutine hm_read_therm(mat_param, bufmat, buflen, ipm, pm, unitab, lsubmodel)
subroutine hm_read_visc(mat_param, ipm, bufmat, unitab, lsubmodel, table)
subroutine ini_eos_vars(eos_tag)
subroutine ini_mat_elem(mat_elem)
subroutine ini_mlaw_vars(mlaw_tag, nummat)
subroutine multi_check_eos(multi_fvm, nummat, npropmi, npropm, ipm, pm)
subroutine multi_check_psh(multi_fvm, nummat, npropmi, npropm, ipm, pm)
subroutine read_ale_mat(lsubmodel, unitab, ipm, pm)
subroutine read_euler_mat(lsubmodel, unitab, ipm, pm)