OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s16sigp3.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!|| s16sigp3 ../engine/source/elements/thickshell/solide16/s16sigp3.F
25!||--- called by ------------------------------------------------------
26!|| s16forc3 ../engine/source/elements/thickshell/solide16/s16forc3.F
27!||--- calls -----------------------------------------------------
28!|| s8csigp3 ../engine/source/elements/thickshell/solide8c/s8csigp3.F
29!||--- uses -----------------------------------------------------
30!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
31!||====================================================================
32 SUBROUTINE s16sigp3(LFT,LLT,NEL,NPTR,NLAY,NPTT,ICP,MTN,
33 . NPE,NIPMAX, PX, PY, PZ, VX, VY, VZ,
34 . W_GAUSS,DEFP,PM,MXT,SIG,DT1,
35 . ELBUF_STR)
36C-----------------------------------------------
37C M o d u l e s
38C-----------------------------------------------
39 USE elbufdef_mod
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44#include "mvsiz_p.inc"
45#include "param_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER LFT,LLT, NPTR,NLAY,NPTT,ICR,ICS,ICT,ICP,NEL,
50 . MTN,NPE,NIPMAX,MXT(*)
51 my_real
52 . vx(mvsiz,*),vy(mvsiz,*),vz(mvsiz,*),
53 . px(mvsiz,npe,*),py(mvsiz,npe,*),pz(mvsiz,npe,*),
54 . dt1 ,w_gauss(9,9),defp(*),pm(npropm,*),sig(nel,6)
55 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_STR
56C-----------------------------------------------
57C L o c a l V a r i a b l e s
58C-----------------------------------------------
59 INTEGER I,IL,IS,IT,IR,IP,WI,N, MX
60C REAL
61 my_real
62 . dvm(mvsiz), dv(mvsiz,nipmax),fac(mvsiz),dt3,dvp,f,e0(mvsiz)
63 TYPE(g_bufel_) ,POINTER :: GBUF
64 TYPE(L_BUFEL_) ,POINTER :: LBUF
65C=======================================================================
66 gbuf => elbuf_str%GBUF
67 is = 1
68 DO i=lft,llt
69 dvm(i)=zero
70 ENDDO
71
72 DO it=1,nptt
73 DO ir=1,nptr
74 DO il=1,nlay
75 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
76 ip = ir + ( (il-1) + (it-1)*nlay )*nptr
77 wi = w_gauss(ir,nptr)*w_gauss(il,nlay)*w_gauss(it,nptt)
78 DO i=lft,llt
79 dv(i,ip)=zero
80 ENDDO
81 DO n=1,npe
82 DO i=lft,llt
83 dv(i,ip)=dv(i,ip)+px(i,n,ip)*vx(i,n)+py(i,n,ip)*vy(i,n)
84 . +pz(i,n,ip)*vz(i,n)
85 dvm(i)=dvm(i)+dv(i,ip)*wi
86 ENDDO
87 ENDDO
88 ENDDO
89 ENDDO
90 ENDDO
91
92 dt3=third*dt1
93 IF (icp == 1) THEN
94 DO i=lft,llt
95 fac(i)=one
96 ENDDO
97 ELSEIF (icp == 2) THEN
98 mx = mxt(lft)
99 DO i=lft,llt
100 e0(i) = pm(20,mx)
101 ENDDO
102 CALL s8csigp3(sig,e0 ,defp,fac,gbuf%G_PLA,nel)
103 ENDIF
104C
105 DO it=1,nptt
106 DO ir=1,nptr
107 DO il=1,nlay
108 lbuf => elbuf_str%BUFLY(il)%LBUF(ir,is,it)
109 ip = ir + ( (il-1) + (it-1)*nlay )*nptr
110 DO i=lft,llt
111 f = lbuf%OFF(i)*fac(i)
112 dvp = dt3*f*(dvm(i)-dv(i,ip))
113 IF (dvp > one) THEN
114 dvp =zero
115 lbuf%OFF(i)=zero
116 ENDIF
117 lbuf%VOL(i) = lbuf%VOL(i) *(one- dvp)
118 lbuf%EINT(i) = lbuf%EINT(i)*(one- dvp)
119 ENDDO
120 ENDDO
121 ENDDO
122 ENDDO
123C-----------
124 RETURN
125 END SUBROUTINE s16sigp3
subroutine s16sigp3(lft, llt, nel, nptr, nlay, nptt, icp, mtn, npe, nipmax, px, py, pz, vx, vy, vz, w_gauss, defp, pm, mxt, sig, dt1, elbuf_str)
Definition s16sigp3.F:36
subroutine s8csigp3(sig, e0, defp, fac, g_pla, nel)
Definition s8csigp3.F:32