OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps120_connect_main.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!|| sigeps120_connect_main ../engine/source/materials/mat/mat120/sigeps120_connect_main.F
25!||--- called by ------------------------------------------------------
26!|| suser43 ../engine/source/elements/solid/sconnect/suser43.F
27!||--- calls -----------------------------------------------------
28!|| sigeps120_connect_dp ../engine/source/materials/mat/mat120/sigeps120_connect_dp.F
29!|| sigeps120_connect_tab_dp ../engine/source/materials/mat/mat120/sigeps120_connect_tab_dp.F
30!|| sigeps120_connect_tab_vm ../engine/source/materials/mat/mat120/sigeps120_connect_tab_vm.F
31!|| sigeps120_connect_vm ../engine/source/materials/mat/mat120/sigeps120_connect_vm.F
32!||--- uses -----------------------------------------------------
33!|| interface_table_mod ../engine/share/modules/table_mod.F
34!|| table_mod ../engine/share/modules/table_mod.F
35!||====================================================================
37 1 NEL ,NGL ,TIME ,TIMESTEP,UPARAM ,OFF ,
38 2 EPSD ,STIFM ,JTHE ,
39 3 AREA ,DEPSZZ ,DEPSYZ ,DEPSZX ,EPSZZ ,NUPARAM ,
40 4 SIGOZZ ,SIGOYZ ,SIGOZX ,SIGNZZ ,SIGNYZ ,SIGNZX ,
41 5 PLA ,JSMS ,DMELS ,UVAR ,NUVAR ,
42 6 NUMTABL ,ITABLE ,TABLE ,NVARTMP ,VARTMP ,TEMP ,
43 7 DMG)
44c====================================================================
45C-----------------------------------------------
46C M o d u l e s
47C-----------------------------------------------
48 USE table_mod
50C-----------------------------------------------
51C I m p l i c i t T y p e s
52C-----------------------------------------------
53#include "implicit_f.inc"
54C-----------------------------------------------
55C C o m m o n B l o c k s
56C-----------------------------------------------
57#include "com04_c.inc"
58C----------------------------------------------------------------
59C D u m m y A R G U M E N T S
60C----------------------------------------------------------------
61 INTEGER :: NEL,NUPARAM,NUVAR,JSMS,NUMTABL,NVARTMP,JTHE
62 my_real :: TIME,TIMESTEP
63 INTEGER ,DIMENSION(NEL) ,INTENT(IN) :: NGL
64 INTEGER ,DIMENSION(NUMTABL) ,INTENT(IN) :: ITABLE
65 my_real ,DIMENSION(NUPARAM) ,INTENT(IN) :: UPARAM
66 my_real ,DIMENSION(NEL) ,INTENT(INOUT):: DMG
67 my_real ,DIMENSION(NEL) ,INTENT(IN) :: AREA,TEMP,EPSZZ,
68 . depszz,depsyz,depszx,
69 . sigozz,sigoyz,sigozx
70 my_real, DIMENSION(NEL) ,INTENT(INOUT) :: epsd,
71 . signzz,signyz,signzx,stifm,dmels
72 my_real ,DIMENSION(NEL) ,INTENT(INOUT) :: pla,off
73 my_real ,DIMENSION(NEL,NUVAR) ,INTENT(INOUT) :: uvar
74 INTEGER ,DIMENSION(NEL,NVARTMP) ,INTENT(INOUT) :: VARTMP
75 TYPE(TTABLE) ,DIMENSION(NTABLE) ,INTENT(IN) :: TABLE
76c----------------------------------------------------------------
77c L o c a l v a r ia b l e s
78c----------------------------------------------------------------
79 INTEGER :: IFORM,ITABL,I
80 my_real :: thick0
81 my_real ,DIMENSION(NEL) :: thick
82c=======================================================================
83c------------------------------------------------------------------
84c--------------------------------
85c Material parameters
86c--------------------------------
87c UPARAM(1) = Young modulus E
88c UPARAM(2) = Poisson's ratio nu
89c UPARAM(3) = shear modulus G
90c UPARAM(4) = bulk modulus K
91c UPARAM(5) = Yld0: instant yield stress
92c UPARAM(6) = Q : expontial term coefficient in the hardening law
93c UPARAM(7) = BETA : exponent of the exponential term
94c UPARAM(8) = P : multiplier of the linear term in the hardening law
95c UPARAM(9) = A1F : parameter of the yield function
96c UPARAM(10) = A2F : parameter of the yield function
97c UPARAM(11) = A1H : distortionnal yield hardening coefficiant
98c UPARAM(12) = A2H : distortionnal yield hardening coefficiant
99c UPARAM(13) = AS : parameter of the potential function
100c UPARAM(14) = D1C: first damage strain parameter in initial damage threshold
101c UPARAM(15) = D2C: second damage strain parameter in initial damage threshold
102c UPARAM(16) = D1F: first damage strain parameter in final damage threshold
103c UPARAM(17) = D2F: second damage strain parameter in final damage threshold
104c UPARAM(18) = D_TRX : triaxiality factor in damage formula
105c UPARAM(19) = D_JC: JC strain rate coefficient in damage formula
106c UPARAM(20) = EXPN exponent in damage evolution
107c UPARAM(21) = CC : Johnson-Cook strain rate-dependency coefficient
108c UPARAM(22) = EPSDREF quasi-static reference strain rate
109c UPARAM(23) = EPSDMAX maximal reference strain rate
110c UPARAM(24) = FCUT : cut frequency for strain rate filtering
111c UPARAM(25) = IFORM = 1: Yield formulation flag => Drucker-Prager in tension
112c IFORM = 2: Yield formulation flag => Von Mises in tension
113c UPARAM(26) = ITRX = 1 : pressure dependent for all T values
114c ITRX = 2 : no pressure dependency when T < 0
115c UPARAM(27) = IDAM = 1 : damage model without turning point
116c IDAM = 2 : damage model with turning point
117c UPARAM(28) = SSP : sound speed
118c UPARAM(29) = Table Id
119c UPARAM(30) = Xscale for yld function
120c UPARAM(31) = Yscale for yld function
121C-----------
122 iform = nint(uparam(25))
123 itabl = nint(uparam(29))
124C-----------
125 thick0 = uparam(34)
126 DO i=1,nel
127 thick(i) = thick0 + epszz(i)
128 ENDDO
129C-----------
130 IF (itabl > 0) THEN
131 IF (iform == 1) THEN ! tabulated Drucker-Prager formulation
133 1 nel ,ngl ,time ,timestep,uparam ,off ,
134 2 epsd ,stifm ,thick ,jthe ,
135 3 area ,depszz ,depsyz ,depszx ,nuparam ,
136 4 sigozz ,sigoyz ,sigozx ,signzz ,signyz ,signzx ,
137 5 pla ,jsms ,dmels ,uvar ,nuvar ,
138 6 numtabl ,itable ,table ,nvartmp ,vartmp ,temp ,
139 7 dmg)
140
141 ELSE ! tabulated Von-Mises formulation
143 1 nel ,ngl ,time ,timestep,uparam ,off ,
144 2 epsd ,stifm ,thick ,jthe ,
145 3 area ,depszz ,depsyz ,depszx ,nuparam ,
146 4 sigozz ,sigoyz ,sigozx ,signzz ,signyz ,signzx ,
147 5 pla ,jsms ,dmels ,uvar ,nuvar ,
148 6 numtabl ,itable ,table ,nvartmp ,vartmp ,temp ,
149 7 dmg)
150 END IF
151
152
153 ELSE
154c
155 IF (iform == 1) THEN ! analytical Drucker-Prager formulation
157 1 nel ,ngl ,time ,timestep,uparam ,off ,
158 2 epsd ,stifm ,thick ,
159 3 area ,depszz ,depsyz ,depszx ,nuparam ,
160 4 sigozz ,sigoyz ,sigozx ,signzz ,signyz ,signzx ,
161 5 pla ,jsms ,dmels ,uvar ,nuvar ,
162 6 dmg)
163
164 ELSE ! analytical Von-Mises formulation
166 1 nel ,ngl ,time ,timestep,uparam ,off ,
167 2 epsd ,stifm ,thick,
168 3 area ,depszz ,depsyz ,depszx ,nuparam ,
169 4 sigozz ,sigoyz ,sigozx ,signzz ,signyz ,signzx ,
170 5 pla ,jsms ,dmels ,uvar ,nuvar ,
171 6 dmg)
172 END IF
173 END IF
174
175
176C-----------
177 RETURN
178 END
subroutine sigeps120_connect_dp(nel, ngl, time, timestep, uparam, off, epsd, stifm, thick, area, depszz, depsyz, depszx, nuparam, sigozz, sigoyz, sigozx, signzz, signyz, signzx, pla, jsms, dmels, uvar, nuvar, dmg)
subroutine sigeps120_connect_main(nel, ngl, time, timestep, uparam, off, epsd, stifm, jthe, area, depszz, depsyz, depszx, epszz, nuparam, sigozz, sigoyz, sigozx, signzz, signyz, signzx, pla, jsms, dmels, uvar, nuvar, numtabl, itable, table, nvartmp, vartmp, temp, dmg)
subroutine sigeps120_connect_tab_dp(nel, ngl, time, timestep, uparam, off, epsd, stifm, thick, jthe, area, depszz, depsyz, depszx, nuparam, sigozz, sigoyz, sigozx, signzz, signyz, signzx, pla, jsms, dmels, uvar, nuvar, numtabl, itable, table, nvartmp, vartmp, temp, dmg)
subroutine sigeps120_connect_tab_vm(nel, ngl, time, timestep, uparam, off, epsd, stifm, thick, jthe, area, depszz, depsyz, depszx, nuparam, sigozz, sigoyz, sigozx, signzz, signyz, signzx, pla, jsms, dmels, uvar, nuvar, numtabl, itable, table, nvartmp, vartmp, temp, dmg)
subroutine sigeps120_connect_vm(nel, ngl, time, timestep, uparam, off, epsd, stifm, thick, area, depszz, depsyz, depszx, nuparam, sigozz, sigoyz, sigozx, signzz, signyz, signzx, pla, jsms, dmels, uvar, nuvar, dmg)