OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
read_material_models.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| read_material_models ../starter/source/materials/read_material_models.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- calls -----------------------------------------------------
28!|| fill_buffer_51_0 ../starter/source/materials/mat/mat051/fill_buffer_51_0.F
29!|| hm_read_eos ../starter/source/materials/eos/hm_read_eos.F
30!|| hm_read_fail ../starter/source/materials/fail/hm_read_fail.F
31!|| hm_read_leak ../starter/source/airbag/hm_read_leak.F
32!|| hm_read_mat ../starter/source/materials/mat/hm_read_mat.F90
33!|| hm_read_nonlocal ../starter/source/materials/nonlocal/hm_read_nonlocal.F
34!|| hm_read_therm ../starter/source/materials/therm/hm_read_therm.F
35!|| hm_read_therm_stress ../starter/source/materials/therm/hm_read_therm_stress.F90
36!|| hm_read_visc ../starter/source/materials/visc/hm_read_visc.F
37!|| ini_eos_vars ../starter/source/elements/elbuf_init/ini_eos_vars.F
38!|| ini_mat_elem ../starter/source/materials/mat/ini_mat_elem.F
39!|| ini_mlaw_vars ../starter/source/elements/elbuf_init/ini_mlaw_vars.F
40!|| multi_check_eos ../starter/source/multifluid/multi_check_eos.F
41!|| multi_check_psh ../starter/source/multifluid/multi_check_psh.F
42!|| read_ale_mat ../starter/source/materials/ale/read_ale_mat.F
43!|| read_euler_mat ../starter/source/materials/ale/read_euler_mat.f
44!||--- uses -----------------------------------------------------
45!|| elbuftag_mod ../starter/share/modules1/elbuftag_mod.F
46!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
47!|| hm_read_mat_mod ../starter/source/materials/mat/hm_read_mat.F90
48!|| hm_read_therm_stress_mod ../starter/source/materials/therm/hm_read_therm_stress.F90
49!|| message_mod ../starter/share/message_module/message_mod.F
50!|| submodel_mod ../starter/share/modules1/submodel_mod.F
51!|| table_mod ../starter/share/modules1/table_mod.F
52!||====================================================================
54 . MAT_ELEM ,MLAW_TAG ,FAIL_TAG ,EOS_TAG ,
55 . BUFMAT ,SBUFMAT ,IPM ,PM ,UNITAB ,
56 . MULTI_FVM ,FAILWAVE ,NLOC_DMG ,LSUBMODEL,TABLE ,
57 . LTITR ,USERL_AVAIL,MAT_NUMBER,
58 . NPC ,TF ,SNPC ,NPTS ,BUFLEN)
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------------------------------
247 END
#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)
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)
program starter
Definition starter.F:39