OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cmain3pinch.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!|| cmain3pinch ../engine/source/elements/shell/coqueba/cmain3pinch.F
25!||--- called by ------------------------------------------------------
26!|| cbaforc3 ../engine/source/elements/shell/coqueba/cbaforc3.F
27!||--- calls -----------------------------------------------------
28!|| finter ../engine/source/tools/curve/finter.F
29!|| mulawglcpinch ../engine/source/elements/shell/coqueba/mulawglcpinch.f
30!||--- uses -----------------------------------------------------
31!|| drape_mod ../engine/share/modules/drape_mod.F
32!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
33!|| failwave_mod ../common_source/modules/failwave_mod.F
34!|| group_param_mod ../common_source/modules/mat_elem/group_param_mod.F90
35!|| pinch_local_mod ../engine/share/modules/pinch_local_mod.F
36!|| pinchtype_mod ../common_source/modules/pinchtype_mod.F
37!|| stack_mod ../engine/share/modules/stack_mod.F
38!|| table_mod ../engine/share/modules/table_mod.F
39!||====================================================================
40 SUBROUTINE cmain3pinch (
41 1 ELBUF_STR ,JFT ,JLT ,NFT ,IPARG ,
42 2 NEL ,MTN ,IPLA ,ITHK ,GROUP_PARAM,
43 3 PM ,GEO ,NPF ,TF ,BUFMAT ,
44 4 SSP ,RHO ,VISCMX ,DT1C ,SIGY ,
45 5 AREA ,EXX ,EYY ,EXY ,EXZ ,
46 6 EYZ ,KXX ,KYY ,KXY ,NU ,
47 7 OFF ,THK0 ,MAT ,PID ,
48 8 FOR ,MOM ,GSTR ,FAILWAVE ,FWAVE_EL ,
49 9 THK ,EINT ,IOFC ,
50 A G ,A11 ,A12 ,VOL0 ,INDXDEL ,
51 B NGL ,ZCFAC ,SHF ,GS ,EPSP ,
52 C KFTS ,JHBE ,ALPE ,
53 D DIR_A ,DIR_B ,IGEO ,
54 E IPM ,IFAILURE ,NPG ,
55 F TEMPEL ,DIE ,JTHE ,IEXPAN ,TEMPEL0 ,
56 G ISHPLYXFEM,PLY_EXX ,
57 H PLY_EYY ,PLY_EXY ,PLY_EXZ ,PLY_EYZ ,PLY_F ,
58 I DEL_PLY ,TH_IPLY ,SIG_IPLY ,E1X ,E1Y ,
59 J E1Z ,E2X ,E2Y ,E2Z ,E3X ,
60 K E3Y ,E3Z ,NG ,TABLE ,IXFEM ,
61 L OFFI ,A11_IPLY ,ELCRKINI ,
62 M DIR1_CRK ,DIR2_CRK ,ALDT ,
63 N ISMSTR ,IR ,IS ,NLAY ,NPT ,
64 O IXLAY ,IXEL ,ISUBSTACK ,STACK ,
65 P F_DEF ,ITASK ,DRAPE ,VARNL ,
66 Q PINCH_LOCAL,FORP ,MOMP ,EZZAVG ,
67 R AREAPINCH)
68C-----------------------------------------------
69C M o d u l e s
70C-----------------------------------------------
71 USE table_mod
72 USE elbufdef_mod
73 USE stack_mod
74 USE failwave_mod
75 USE group_param_mod
78 USE drape_mod
79C-----------------------------------------------
80C I m p l i c i t T y p e s
81C-----------------------------------------------
82#include "implicit_f.inc"
83C-----------------------------------------------
84C G l o b a l P a r a m e t e r s
85C-----------------------------------------------
86#include "mvsiz_p.inc"
87C-----------------------------------------------
88C C o m m o n B l o c k s
89C-----------------------------------------------
90#include "param_c.inc"
91C-----------------------------------------------
92C D u m m y A r g u m e n t s
93C-----------------------------------------------
94 INTEGER JFT,JLT,NFT,IR,IS,NPT,NG,NPG,NLAY,NEL,MTN,IPLA,IOFC,ITHK,
95 . KFTS,JHBE,IFAILURE,JTHE,IEXPAN,ISHPLYXFEM,ISMSTR,
96 . IXLAY,IXEL,IXFEM,ISUBSTACK,ITASK
97 INTEGER MAT(MVSIZ), PID(MVSIZ), INDXDEL(MVSIZ), NGL(MVSIZ),NPF(*),
98 . igeo(npropgi,*),ipm(npropmi,*),iparg(*),
99 . a11_iply(mvsiz,*),elcrkini(*),fwave_el(nel)
100 my_real
101 . pm(npropm,*), geo(npropg,*),tf(*),thk(*),eint(jlt,*),for(nel,5),
102 . mom(nel,3),epsp(*),gstr(nel,8),bufmat(*),g(*),a11(*),a12(*),vol0(*),
103 . shf(*),gs(*),sigy(mvsiz),rho(mvsiz),ssp(mvsiz),viscmx(mvsiz),
104 . off(mvsiz) ,thk0(mvsiz) ,nu(mvsiz),dt1c(mvsiz),
105 . exx(mvsiz), eyy(mvsiz), exy(mvsiz), exz(mvsiz), eyz(mvsiz),
106 . kxx(mvsiz), kyy(mvsiz), kxy(mvsiz), area(mvsiz),
107 . zcfac(mvsiz,2),alpe(mvsiz),dir_a(*),dir_b(*),tempel(*),die(*),
108 . tempel0(mvsiz), ply_f(mvsiz,5,*),
109 . ply_exx(mvsiz,*),ply_eyy(mvsiz,*),ply_exy(mvsiz,*),
110 . ply_exz(mvsiz,*),ply_eyz(mvsiz,*),del_ply(mvsiz,3,*) ,
111 . th_iply(mvsiz,*), sig_iply(mvsiz,3,*),
112 . e1x(mvsiz), e1y(mvsiz), e1z(mvsiz),
113 . e2x(mvsiz), e2y(mvsiz), e2z(mvsiz),
114 . e3x(mvsiz), e3y(mvsiz), e3z(mvsiz),offi(mvsiz,*),
115 . dir1_crk(*),dir2_crk(*),dmg_scale(mvsiz),
116 . f_def(mvsiz,*),aldt(mvsiz),varnl(nel,*),
117 . forp(mvsiz),momp(mvsiz,2),ezzavg(mvsiz),areapinch(mvsiz)
118 TYPE(ttable) TABLE(*)
119 TYPE(ELBUF_STRUCT_), TARGET :: ELBUF_STR
120 TYPE (STACK_PLY) :: STACK
121 TYPE (FAILWAVE_STR_) ,TARGET :: FAILWAVE
122 TYPE (GROUP_PARAM_) :: GROUP_PARAM
123 TYPE (PINCH_LOCAL_STRUCT_) :: PINCH_LOCAL
124 TYPE (DRAPE_) :: DRAPE
125C-----------------------------------------------
126C L o c a l V a r i a b l e s
127C-----------------------------------------------
128 INTEGER I,J,IT,MX,IGTYP,IFUNC_ALPHA,IPMAT_IPLY,ILAY,LAYNPT_MAX,LAY_MAX
129 PARAMETER (LAYNPT_MAX = 10)
130 parameter (lay_max = 100)
131 INTEGER MATLY(MVSIZ*LAY_MAX),MAT_IPLY(MVSIZ,NPT)
132 my_real
133 . THKLY(MVSIZ*LAY_MAX*LAYNPT_MAX),POSLY(MVSIZ,LAY_MAX*LAYNPT_MAX),
134 . THK_LY(NEL,LAY_MAX*LAYNPT_MAX),TSTAR(MVSIZ),DTEMP(MVSIZ),
135 . SXX(MVSIZ),SYY(MVSIZ), SXY(MVSIZ),SYZ(MVSIZ),SZX(MVSIZ),
136 . EPSXX(MVSIZ),EPSYY(MVSIZ),EPSXY(MVSIZ),EPSYZ(MVSIZ),EPSZX(MVSIZ),
137 . DEPSXX(MVSIZ),DEPSYY(MVSIZ),DEPSXY(MVSIZ),DEPSYZ(MVSIZ),
138 . DEPSZX(MVSIZ), EPSPXX(MVSIZ),EPSPYY(MVSIZ),EPSPXY(MVSIZ),
139 . EPSPYZ(MVSIZ), EPSPZX(MVSIZ),ETIMP(MVSIZ),TENS(NEL,5),ETH(MVSIZ)
140 my_real ALPHA,DF,DEINTTH,T0,TM,FSCAL_ALPHA,DM
141 INTEGER, DIMENSION(:) ,POINTER :: FLD_IDX
142C-------------------------------------
143 TYPE(BUF_LAY_) ,POINTER :: BUFLY
144 TYPE(BUF_FAIL_),POINTER :: FBUF
145 TYPE(l_bufel_) ,POINTER :: LBUF
146 TYPE(g_bufel_) ,POINTER :: GBUF
147C-----------------------------------------------
148 my_real finter
149 EXTERNAL finter
150C=======================================================================
151 gbuf => elbuf_str%GBUF
152 igtyp=igeo(11,pid(1))
153 mx = mat(jft)
154 dm = group_param%VISC_DM ! membrane damping
155C--------------------------------------------------
156 die(jft:jlt) = zero
157
158 ilay = 1
159 it = 1
160 lbuf => elbuf_str%BUFLY(ilay)%LBUF(ir,is,it)
161C
162 IF(mtn == 1 .OR. mtn == 91) THEN
163 CALL mulawglcpinch(elbuf_str,
164 1 jft ,jlt ,pm ,for ,mom ,thk ,
165 2 eint ,off ,gstr ,lbuf%PLA,dir_a ,shf ,
166 3 mat ,area ,exx ,eyy ,exy ,nel ,
167 4 exz ,eyz ,kxx ,kyy ,kxy ,dm ,
168 5 pid ,tf ,npf ,mtn ,dt1c ,a11 ,
169 6 bufmat ,ssp ,rho ,viscmx ,iofc ,a12 ,
170 7 indxdel ,ngl ,zcfac ,gs ,sigy ,g ,
171 8 thk0 ,epsp ,ipla ,igeo ,ipm ,table ,
172 9 ir ,is ,f_def ,ismstr ,nu ,vol0 ,
173 a kfts ,pinch_local%EPINCHZZ,pinch_local%EPINCHXZ ,
174 b pinch_local%EPINCHYZ ,forp ,momp ,aldt ,
175 c ezzavg ,areapinch)
176 ENDIF
177
178 RETURN
179 END SUBROUTINE cmain3pinch
180C
subroutine cmain3pinch(elbuf_str, jft, jlt, nft, iparg, nel, mtn, ipla, ithk, group_param, pm, geo, npf, tf, bufmat, ssp, rho, viscmx, dt1c, sigy, area, exx, eyy, exy, exz, eyz, kxx, kyy, kxy, nu, off, thk0, mat, pid, for, mom, gstr, failwave, fwave_el, thk, eint, iofc, g, a11, a12, vol0, indxdel, ngl, zcfac, shf, gs, epsp, kfts, jhbe, alpe, dir_a, dir_b, igeo, ipm, ifailure, npg, tempel, die, jthe, iexpan, tempel0, ishplyxfem, ply_exx, ply_eyy, ply_exy, ply_exz, ply_eyz, ply_f, del_ply, th_iply, sig_iply, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z, ng, table, ixfem, offi, a11_iply, elcrkini, dir1_crk, dir2_crk, aldt, ismstr, ir, is, nlay, npt, ixlay, ixel, isubstack, stack, f_def, itask, drape, varnl, pinch_local, forp, momp, ezzavg, areapinch)
Definition cmain3pinch.F:68
#define my_real
Definition cppsort.cpp:32
subroutine area(d1, x, x2, y, y2, eint, stif0)
subroutine mulawglcpinch(elbuf_str, jft, jlt, pm, for, mom, thk, eint, off, gstr, pla, dir, shf, mat, area, exx, eyy, exy, nel, exz, eyz, kxx, kyy, kxy, dm, pid, tf, npf, mtn, dt1c, a1, bufmat, ssp, rho, viscmx, iofc, a2, indx, ngl, zcfac, gs, sigy, g, thk0, epsp, ipla, igeo, ipm, table, ir, is, f_def, ismstr, nu, vol0, kfts, epinchzz, epinchxz, epinchyz, forp, momp, aldt, ezzavg, areapinch)
for(i8=*sizetab-1;i8 >=0;i8--)