OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
sigeps115.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!|| sigeps115 ../engine/source/materials/mat/mat115/sigeps115.F
25!||--- called by ------------------------------------------------------
26!|| mulaw ../engine/source/materials/mat_share/mulaw.F90
27!||--- calls -----------------------------------------------------
28!|| mat115_newton ../engine/source/materials/mat/mat115/mat115_newton.F
29!|| mat115_nice ../engine/source/materials/mat/mat115/mat115_nice.F
30!||====================================================================
31 SUBROUTINE sigeps115(
32 1 NEL ,NGL ,NUPARAM ,NUVAR ,GRHO ,
33 2 TIME ,TIMESTEP,UPARAM ,UVAR ,OFF ,SIGY ,
34 3 RHO0 ,PLA ,DPLA ,SOUNDSP ,ET ,SEQ ,
35 4 DEPSXX ,DEPSYY ,DEPSZZ ,DEPSXY ,DEPSYZ ,DEPSZX ,
36 5 SIGOXX ,SIGOYY ,SIGOZZ ,SIGOXY ,SIGOYZ ,SIGOZX ,
37 6 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX )
38C-----------------------------------------------
39C I m p l i c i t T y p e s
40C-----------------------------------------------
41#include "implicit_f.inc"
42C-----------------------------------------------
43C C O M M O N
44C-----------------------------------------------
45#include "scr17_c.inc"
46#include "com08_c.inc"
47#include "units_c.inc"
48#include "comlock.inc"
49C-----------------------------------------------
50C D u m m y A r g u m e n t s
51C-----------------------------------------------
52 INTEGER NEL,NUPARAM,NUVAR
53 INTEGER ,DIMENSION(NEL), INTENT(IN) :: NGL
54 my_real
55 . TIME,TIMESTEP
56 my_real,DIMENSION(NUPARAM), INTENT(IN) ::
57 . UPARAM
58 my_real,DIMENSION(2*NEL), INTENT(IN) ::
59 . grho
60 my_real,DIMENSION(NEL), INTENT(IN) ::
61 . rho0,
62 . depsxx,depsyy,depszz,depsxy,depsyz,depszx,
63 . sigoxx,sigoyy,sigozz,sigoxy,sigoyz,sigozx
64 my_real ,DIMENSION(NEL), INTENT(OUT) ::
65 . soundsp,sigy,et,
66 . signxx,signyy,signzz,signxy,signyz,signzx
67 my_real ,DIMENSION(NEL), INTENT(INOUT) ::
68 . pla,dpla,off,seq
69 my_real ,DIMENSION(NEL,NUVAR), INTENT(INOUT) ::
70 . uvar
71C-----------------------------------------------
72C L o c a l V a r i a b l e s
73C-----------------------------------------------
74 INTEGER IRES,NINDX,I,J,INDX(NEL)
75 my_real
76 . cfail,pfail
77C=======================================================================
78c
79 ires = nint(uparam(11)) ! Plastic projection method
80 ! = 1 => Nice method
81 ! = 2 => Newton
82 cfail = uparam(14) ! Tensile volumetric strain at failure
83 pfail = uparam(15) ! Maximum principal stress at failure
84c
85c--------------------------
86 SELECT CASE (ires)
87c
88 CASE(1)
89 CALL mat115_nice(
90 1 nel ,ngl ,nuparam ,nuvar ,grho ,
91 2 time ,timestep,uparam ,uvar ,off ,sigy ,
92 3 rho0 ,pla ,dpla ,soundsp ,et ,seq ,
93 4 depsxx ,depsyy ,depszz ,depsxy ,depsyz ,depszx ,
94 5 sigoxx ,sigoyy ,sigozz ,sigoxy ,sigoyz ,sigozx ,
95 6 signxx ,signyy ,signzz ,signxy ,signyz ,signzx )
96 CASE(2)
97 CALL mat115_newton(
98 1 nel ,ngl ,nuparam ,nuvar ,grho ,
99 2 time ,timestep,uparam ,uvar ,off ,sigy ,
100 3 rho0 ,pla ,dpla ,soundsp ,et ,seq ,
101 4 depsxx ,depsyy ,depszz ,depsxy ,depsyz ,depszx ,
102 5 sigoxx ,sigoyy ,sigozz ,sigoxy ,sigoyz ,sigozx ,
103 6 signxx ,signyy ,signzz ,signxy ,signyz ,signzx )
104c
105 END SELECT
106c
107c-----------
108C
109 ! Counting broken elements
110 IF ((cfail > zero).OR.(pfail > zero)) THEN
111 nindx = 0
112 DO i = 1,nel
113 IF (off(i) == four_over_5) THEN
114 nindx = nindx+1
115 indx(nindx) = i
116 ENDIF
117 ENDDO
118 ! Printout element deletion
119 IF (nindx > 0) THEN
120 DO j=1,nindx
121#include "lockon.inc"
122 WRITE(iout, 1000) ngl(indx(j))
123 WRITE(istdo,1100) ngl(indx(j)),tt
124#include "lockoff.inc"
125 ENDDO
126 ENDIF
127 ENDIF
128!---
129 1000 FORMAT(1x,'RUPTURE OF SOLID ELEMENT NUMBER ',i10)
130 1100 FORMAT(1x,'RUPTURE OF SOLID ELEMENT NUMBER ',i10,
131 . ' AT TIME :',g11.4)
132!---
133 END
subroutine mat115_newton(nel, ngl, nuparam, nuvar, grho, time, timestep, uparam, uvar, off, sigy, rho0, pla, dpla, soundsp, et, seq, depsxx, depsyy, depszz, depsxy, depsyz, depszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx)
subroutine mat115_nice(nel, ngl, nuparam, nuvar, grho, time, timestep, uparam, uvar, off, sigy, rho0, pla, dpla, soundsp, et, seq, depsxx, depsyy, depszz, depsxy, depsyz, depszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx)
Definition mat115_nice.F:35
subroutine sigeps115(nel, ngl, nuparam, nuvar, grho, time, timestep, uparam, uvar, off, sigy, rho0, pla, dpla, soundsp, et, seq, depsxx, depsyy, depszz, depsxy, depsyz, depszx, sigoxx, sigoyy, sigozz, sigoxy, sigoyz, sigozx, signxx, signyy, signzz, signxy, signyz, signzx)
Definition sigeps115.F:38