OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps110c.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!|| sigeps110c ../engine/source/materials/mat/mat110/sigeps110c.F
25!||--- called by ------------------------------------------------------
26!|| mulawc ../engine/source/materials/mat_share/mulawc.F90
27!||--- calls -----------------------------------------------------
28!|| sigeps110c_lite_newton ../engine/source/materials/mat/mat110/sigeps110c_lite_newton.F
29!|| sigeps110c_lite_nice ../engine/source/materials/mat/mat110/sigeps110c_lite_nice.F
30!|| sigeps110c_newton ../engine/source/materials/mat/mat110/sigeps110c_newton.F
31!|| sigeps110c_nice ../engine/source/materials/mat/mat110/sigeps110c_nice.F
32!||--- uses -----------------------------------------------------
33!|| interface_table_mod ../engine/share/modules/table_mod.F
34!|| table_mod ../engine/share/modules/table_mod.F
35!||====================================================================
36 SUBROUTINE sigeps110c(
37 1 NEL ,NGL ,NUPARAM ,NUVAR ,NPF ,
38 2 TIME ,TIMESTEP,UPARAM ,UVAR ,JTHE ,OFF ,
39 3 GS ,RHO ,PLA ,DPLA ,EPSP ,SOUNDSP ,
40 4 DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX ,ASRATE ,
41 5 EPSPXX ,EPSPYY ,EPSPXY ,EPSPYZ ,EPSPZX ,
42 5 SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
43 6 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,THKLY ,
44 7 THK ,SIGY ,ET ,TEMPEL ,TEMP ,SEQ ,
45 8 TF ,NUMTABL ,ITABLE ,TABLE ,NVARTMP ,VARTMP ,
46 9 SIGA ,INLOC ,DPLANL ,LOFF ,IOFF_DUCT)
47 !=======================================================================
48 ! Modules
49 !=======================================================================
50 USE table_mod
52 !=======================================================================
53 ! Implicit types
54 !=======================================================================
55#include "implicit_f.inc"
56 !=======================================================================
57 ! Common
58 !=======================================================================
59#include "com04_c.inc"
60 !=======================================================================
61 ! Dummy arguments
62 !=======================================================================
63 INTEGER NEL,NUPARAM,NUVAR,JTHE,NUMTABL,ITABLE(NUMTABL),NVARTMP,NPF(*),INLOC
64 INTEGER,DIMENSION(NEL), INTENT(IN) :: NGL
65 INTEGER,DIMENSION(NEL), INTENT(INOUT) :: IOFF_DUCT
66 my_real
67 . TIME,TIMESTEP,ASRATE,TF(*)
68 INTEGER :: VARTMP(NEL,NVARTMP)
69 my_real,DIMENSION(NUPARAM), INTENT(IN) ::
70 . UPARAM
71 my_real,DIMENSION(NEL), INTENT(IN) ::
72 . RHO,TEMPEL,
73 . depsxx,depsyy,depsxy,depsyz,depszx,
74 . epspxx,epspyy,epspxy,epspyz,epspzx ,
75 . sigoxx,sigoyy,sigoxy,sigoyz,sigozx,
76 . gs,thkly,dplanl,loff
77c
78 my_real ,DIMENSION(NEL), INTENT(OUT) ::
79 . soundsp,sigy,et,epsp,
80 . signxx,signyy,signxy,signyz,signzx
81c
82 my_real ,DIMENSION(NEL), INTENT(INOUT) ::
83 . pla,dpla,off,thk,temp,seq
84 my_real ,DIMENSION(NEL,NUVAR), INTENT(INOUT) ::
85 . uvar
86 my_real ,DIMENSION(NEL,3) ,INTENT(INOUT) ::
87 . siga
88 TYPE(ttable), DIMENSION(NTABLE) :: TABLE
89C-----------------------------------------------
90C L o c a l V a r i a b l e s
91C-----------------------------------------------
92 INTEGER ICRIT,IRES
93C=======================================================================
94c UVAR(1)
95c UVAR(2)
96C DEPIJ = PLASTIC STRAIN TENSOR COMPONENT
97C DEPSIJ = TOTAL STRAIN TENSOR COMPONENT (EL+PL)
98C=======================================================================
99c
100 icrit = nint(uparam(27))! Vegter formulation flag
101 ! = 1 => Vegter classical
102 ! = 2 => Vegter standard
103 ! = 3 => Vegter 2017
104 ! = 4 => Vegter-Lite
105 ires = nint(uparam(29))! Plastic projection method
106 ! = 1 => Nice method
107 ! = 2 => Newton-iteration method
108c--------------------------
109 ! Choice of return mapping algorithm
110 SELECT CASE (ires)
111 ! Nice explicit return mapping
112 CASE(1)
113 ! Choice of Vegter formulation
114 SELECT CASE (icrit)
115 CASE(1,2,3)
116 CALL sigeps110c_nice(
117 1 nel ,ngl ,nuparam ,nuvar ,npf ,
118 2 time ,timestep,uparam ,uvar ,jthe ,off ,
119 3 gs ,rho ,pla ,dpla ,epsp ,soundsp ,
120 4 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,asrate ,
121 5 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
122 6 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
123 7 signxx ,signyy ,signxy ,signyz ,signzx ,thkly ,
124 8 thk ,sigy ,et ,tempel ,temp ,seq ,
125 9 tf ,numtabl ,itable ,table ,nvartmp ,vartmp ,
126 a siga ,inloc ,dplanl ,loff )
127 CASE(4)
129 1 nel ,ngl ,nuparam ,nuvar ,npf ,
130 2 time ,timestep,uparam ,uvar ,jthe ,off ,
131 3 gs ,rho ,pla ,dpla ,epsp ,soundsp ,
132 4 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,asrate ,
133 5 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
134 6 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
135 7 signxx ,signyy ,signxy ,signyz ,signzx ,thkly ,
136 8 thk ,sigy ,et ,tempel ,temp ,seq ,
137 9 tf ,numtabl ,itable ,table ,nvartmp ,vartmp ,
138 a siga ,inloc ,dplanl ,loff )
139 END SELECT
140 ! Newton cutting plane return mapping
141 CASE(2)
142 ! Choice of Vegter formulation
143 SELECT CASE (icrit)
144 CASE(1,2,3)
146 1 nel ,ngl ,nuparam ,nuvar ,npf ,
147 2 time ,timestep,uparam ,uvar ,jthe ,off ,
148 3 gs ,rho ,pla ,dpla ,epsp ,soundsp ,
149 4 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,asrate ,
150 5 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
151 6 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
152 7 signxx ,signyy ,signxy ,signyz ,signzx ,thkly ,
153 8 thk ,sigy ,et ,tempel ,temp ,seq ,
154 9 tf ,numtabl ,itable ,table ,nvartmp ,vartmp ,
155 a siga ,inloc ,dplanl ,loff )
156 CASE(4)
158 1 nel ,ngl ,nuparam ,nuvar ,npf ,
159 2 time ,timestep,uparam ,uvar ,jthe ,off ,
160 3 gs ,rho ,pla ,dpla ,epsp ,soundsp ,
161 4 depsxx ,depsyy ,depsxy ,depsyz ,depszx ,asrate ,
162 5 epspxx ,epspyy ,epspxy ,epspyz ,epspzx ,
163 6 sigoxx ,sigoyy ,sigoxy ,sigoyz ,sigozx ,
164 7 signxx ,signyy ,signxy ,signyz ,signzx ,thkly ,
165 8 thk ,sigy ,et ,tempel ,temp ,seq ,
166 9 tf ,numtabl ,itable ,table ,nvartmp ,vartmp ,
167 a siga ,inloc ,dplanl ,loff )
168 END SELECT
169 END SELECT
170 ! Ductile failure activation
171 ioff_duct(1:nel) = 1
172c--------------------------
173 END
subroutine sigeps110c(nel, ngl, nuparam, nuvar, npf, time, timestep, uparam, uvar, jthe, off, gs, rho, pla, dpla, epsp, soundsp, depsxx, depsyy, depsxy, depsyz, depszx, asrate, epspxx, epspyy, epspxy, epspyz, epspzx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, thkly, thk, sigy, et, tempel, temp, seq, tf, numtabl, itable, table, nvartmp, vartmp, siga, inloc, dplanl, loff, ioff_duct)
Definition sigeps110c.F:47
subroutine sigeps110c_lite_newton(nel, ngl, nuparam, nuvar, npf, time, timestep, uparam, uvar, jthe, off, gs, rho, pla, dpla, epsp, soundsp, depsxx, depsyy, depsxy, depsyz, depszx, asrate, epspxx, epspyy, epspxy, epspyz, epspzx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, thkly, thk, sigy, et, tempel, temp, seq, tf, numtabl, itable, table, nvartmp, vartmp, siga, inloc, dplanl, loff)
subroutine sigeps110c_lite_nice(nel, ngl, nuparam, nuvar, npf, time, timestep, uparam, uvar, jthe, off, gs, rho, pla, dpla, epsp, soundsp, depsxx, depsyy, depsxy, depsyz, depszx, asrate, epspxx, epspyy, epspxy, epspyz, epspzx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, thkly, thk, sigy, et, tempel, temp, seq, tf, numtabl, itable, table, nvartmp, vartmp, siga, inloc, dplanl, loff)
subroutine sigeps110c_newton(nel, ngl, nuparam, nuvar, npf, time, timestep, uparam, uvar, jthe, off, gs, rho, pla, dpla, epsp, soundsp, depsxx, depsyy, depsxy, depsyz, depszx, asrate, epspxx, epspyy, epspxy, epspyz, epspzx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, thkly, thk, sigy, et, tempel, temp, seq, tf, numtabl, itable, table, nvartmp, vartmp, siga, inloc, dplanl, loff)
subroutine sigeps110c_nice(nel, ngl, nuparam, nuvar, npf, time, timestep, uparam, uvar, jthe, off, gs, rho, pla, dpla, epsp, soundsp, depsxx, depsyy, depsxy, depsyz, depszx, asrate, epspxx, epspyy, epspxy, epspyz, epspzx, sigoxx, sigoyy, sigoxy, sigoyz, sigozx, signxx, signyy, signxy, signyz, signzx, thkly, thk, sigy, et, tempel, temp, seq, tf, numtabl, itable, table, nvartmp, vartmp, siga, inloc, dplanl, loff)