OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fail_mullins_OR_s.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!|| fail_mullins_or_s ../engine/source/materials/fail/mullins_or/fail_mullins_OR_s.F
25!||--- called by ------------------------------------------------------
26!|| mulaw ../engine/source/materials/mat_share/mulaw.F90
27!|| usermat_solid ../engine/source/materials/mat_share/usermat_solid.F
28!||--- calls -----------------------------------------------------
29!|| mullins_or ../engine/source/materials/fail/mullins_or/fail_mullins_OR_s.F
30!||====================================================================
32 1 NEL ,NUPARAM ,NUVAR ,
33 2 TIME ,TIMESTEP ,UPARAM ,NGL ,
34 3 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,
35 4 SIGNYZ ,SIGNZX ,UVAR ,OFF ,
36 5 DFMAX ,WW)
37C---------+---------+---+---+--------------------------------------------
38c---------+---------+---+---+--------------------------------------------
39C /FAIL/EMC - tabulated rupture criteria for solids
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C---------+---------+---+---+--------------------------------------------
45C VAR | SIZE |TYP| RW| DEFINITION
46C---------+---------+---+---+--------------------------------------------
47C NEL | 1 | I | R | SIZE OF THE ELEMENT GROUP NEL
48C NUPARAM | 1 | I | R | SIZE OF THE USER PARAMETER ARRAY
49C NUVAR | 1 | I | R | NUMBER OF FAILURE ELEMENT VARIABLES
50C---------+---------+---+---+--------------------------------------------
51C TIME | 1 | F | R | CURRENT TIME
52C TIMESTEP| 1 | F | R | CURRENT TIME STEP
53C UPARAM | NUPARAM | F | R | USER FAILURE PARAMETER ARRAY
54C---------+---------+---+---+--------------------------------------------
55C SIGNXX | NEL | F | W | NEW ELASTO PLASTIC STRESS XX
56C SIGNYY | NEL | F | W | NEW ELASTO PLASTIC STRESS YY
57C ... | | | |
58C ... | | | |
59C---------+---------+---+---+--------------------------------------------
60C UVAR |NEL*NUVAR| F |R/W| USER ELEMENT VARIABLE ARRAY
61C OFF | NEL | F |R/W| DELETED ELEMENT FLAG (=1. ON, =0. OFF)
62C---------+---------+---+---+--------------------------------------------
63C-----------------------------------------------
64C I N P U T A r g u m e n t s
65C-----------------------------------------------
66 INTEGER, INTENT(IN) :: NEL,NUPARAM ,NUVAR
67 my_real, INTENT(IN) :: TIME,TIMESTEP
68 my_real, DIMENSION(NUPARAM), INTENT(IN) :: UPARAM
69 my_real, DIMENSION(NEL), INTENT(IN) ::NGL, WW
70C-----------------------------------------------
71C O U T P U T A r g u m e n t s
72C-----------------------------------------------
73cc my_real
74C-----------------------------------------------
75C I N P U T O U T P U T A r g u m e n t s
76C-----------------------------------------------
77 my_real, DIMENSION(NEL), INTENT(INOUT) :: signxx,
78 . signyy,signzz,signxy,signyz,signzx,dfmax, off
79 my_real, DIMENSION(NEL,NUVAR), INTENT(INOUT) :: uvar
80C-----------------------------------------------
81C L o c a l V a r i a b l e s
82C-----------------------------------------------
83 INTEGER I,J,JJ,K,IR,IADBUF,NINDX,IFAIL
84 INTEGER, DIMENSION(NEL) :: INDX
85 my_real
86 . COEFR, BETAF ,COEFM,SXX,SYY,SZZ,TRACE,ETA(NEL)
87C=======================================================================
88C INITIALIZATIONS
89C-----------------------------------------------
90 coefr = uparam(1)
91 betaf = uparam(2)
92 coefm = uparam(3)
93
94 CALL mullins_or(
95 1 nel ,nuvar, coefr,betaf ,
96 2 coefm,ww , uvar, eta )
97
98c-----------------------------------------------
99 DO i = 1,nel
100 trace = third * (signxx(i)+signyy(i)+signzz(i))
101 sxx = signxx(i) - trace
102 syy = signyy(i) - trace
103 szz = signzz(i) - trace
104 signxx(i) = eta(i) * sxx + trace
105 signyy(i) = eta(i) * syy + trace
106 signzz(i) = eta(i) * szz + trace
107
108 signxy(i) = eta(i) * signxy(i)
109 signyz(i) = eta(i) * signyz(i)
110 signzx(i) = eta(i) * signzx(i)
111
112 ENDDO
113
114
115c-----------
116 RETURN
117 END
118!||====================================================================
119!|| mullins_or ../engine/source/materials/fail/mullins_or/fail_mullins_OR_s.F
120!||--- called by ------------------------------------------------------
121!|| fail_mullins_or_s ../engine/source/materials/fail/mullins_or/fail_mullins_or_s.f
122!|| neo_hook_t ../engine/source/materials/mat/mat100/neo_hook_t.F
123!|| polystress2 ../engine/source/materials/mat/mat100/sigpoly.F
124!|| polystrest2 ../engine/source/materials/mat/mat100/sigpoly.f
125!|| sigaboyce ../engine/source/materials/mat/mat100/sigaboyce.F
126!||====================================================================
127 SUBROUTINE mullins_or(
128 1 NEL ,NUVAR, COEFR,BETAF ,
129 2 COEFM, WW , UVAR, ETA )
130C---------+---------+---+---+--------------------------------------------
131c---------+---------+---+---+--------------------------------------------
132C /FAIL/EMC - tabulated rupture criteria for solids
133C-----------------------------------------------
134C I m p l i c i t T y p e s
135C-----------------------------------------------
136#include "implicit_f.inc"
137C---------+---------+---+---+--------------------------------------------
138C VAR | SIZE |TYP| RW| DEFINITION
139C---------+---------+---+---+--------------------------------------------
140C NEL | 1 | I | R | SIZE OF THE ELEMENT GROUP NEL
141C NUPARAM | 1 | I | R | SIZE OF THE USER PARAMETER ARRAY
142C NUVAR | 1 | I | R | NUMBER OF FAILURE ELEMENT VARIABLES
143C---------+---------+---+---+--------------------------------------------
144C TIME | 1 | F | R | CURRENT TIME
145C TIMESTEP| 1 | F | R | CURRENT TIME STEP
146C UPARAM | NUPARAM | F | R | USER FAILURE PARAMETER ARRAY
147C---------+---------+---+---+--------------------------------------------
148C SIGNXX | NEL | F | W | NEW ELASTO PLASTIC STRESS XX
149C SIGNYY | NEL | F | W | NEW ELASTO PLASTIC STRESS YY
150C ... | | | |
151C ... | | | |
152C---------+---------+---+---+--------------------------------------------
153C UVAR |NEL*NUVAR| F |R/W| USER ELEMENT VARIABLE ARRAY
154C OFF | NEL | F |R/W| DELETED ELEMENT FLAG (=1. ON, =0. OFF)
155C---------+---------+---+---+--------------------------------------------
156C-----------------------------------------------
157C I N P U T A r g u m e n t s
158C-----------------------------------------------
159 INTEGER, INTENT(IN) :: NEL,NUVAR
160 my_real, INTENT(IN) :: COEFR,BETAF ,COEFM
161 my_real, DIMENSION(NEL), INTENT(IN) :: WW
162C----------------------------------------------------------------
163C O U T P U T A R G U M E N T S
164C----------------------------------------------------------------
165 my_real, DIMENSION(NEL), INTENT(OUT) :: ETA(NEL)
166C-----------------------------------------------
167C I N P U T O U T P U T A r g u m e n t s
168C-----------------------------------------------
169 my_real, DIMENSION(NEL,NUVAR ), INTENT(INOUT) :: uvar
170C-----------------------------------------------
171C VARIABLES FOR FUNCTION INTERPOLATION
172C-----------------------------------------------
173C L o c a l V a r i a b l e s
174C-----------------------------------------------
175 INTEGER I,J,JJ,K,IR,IADBUF,NINDX,IFAIL
176 INTEGER, DIMENSION(NEL) ::
177 . INDX
178C
179 my_real, DIMENSION(NEL) :: WMAX
180 my_real :: DF12, DF23, DF13,TERM
181C=======================================================================
182 DO i = 1, nel
183 wmax(i) = max(uvar(i,1),ww(i))
184 uvar(i,1)= wmax(i)
185 ENDDO
186 DO i=1,nel !erf(x) computes the error function of x integral from 0 to x
187
188 term = erf((wmax(i) - ww(i))/(coefm + betaf *wmax(i)))
189
190 eta(i) = one - term/coefr
191 ENDDO
192
193C-----------------------------------------------
194
195
196c-----------
197 RETURN
198 END
199
200
201
202
203
204
subroutine mullins_or(nel, nuvar, coefr, betaf, coefm, ww, uvar, eta)
subroutine fail_mullins_or_s(nel, nuparam, nuvar, time, timestep, uparam, ngl, signxx, signyy, signzz, signxy, signyz, signzx, uvar, off, dfmax, ww)
#define max(a, b)
Definition macros.h:21
subroutine polystrest2(nel, matb, c10, c01, c20, c11, c02, c30, c21, c12, c03, d1, d2, d3, sig, bi1, bi2, jdet, flag_mul, nvarf, coefr, betaf, coefm, uvarf, cii, rbulk, iform)
Definition sigpoly.F:204