OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
cbapinchproj.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!|| cbapinchproj ../engine/source/elements/shell/coqueba/cbapinchproj.F
25!||--- called by ------------------------------------------------------
26!|| cbaforc3 ../engine/source/elements/shell/coqueba/cbaforc3.F
27!||--- uses -----------------------------------------------------
28!|| elbufdef_mod ../common_source/modules/mat_elem/elbufdef_mod.F90
29!|| pinchtype_mod ../common_source/modules/pinchtype_mod.F
30!||====================================================================
31 SUBROUTINE cbapinchproj(
32 1 JFT ,JLT ,VQN ,VQ ,VFPINCH,
33 2 NPLAT ,IPLAT ,FP ,COREL ,DI ,THK0,
34 3 VFPINCHDAMPX,VFPINCHDAMPY)
35C-------------------------------------------------------------------------------
36C M o d u l e s
37C-------------------------------------------------------------------------------
39 USE elbufdef_mod
40C-------------------------------------------------------------------------------
41#include "implicit_f.inc"
42#include "mvsiz_p.inc"
43C-------------------------------------------------------------------------------
44C D U M M Y A R G U M E N T S
45C-------------------------------------------------------------------------------
46 INTEGER JFT,JLT,NPLAT,IPLAT(*)
47 my_real
48 . VQN(MVSIZ,9,4),VFPINCH(MVSIZ,4),VQ(MVSIZ,3,3),
49 . corel(mvsiz,3,4),di(mvsiz,6),fp(mvsiz,3,4), thk0(*),
50 . vfpinchdampx(mvsiz,4),vfpinchdampy(mvsiz,4)
51C-------------------------------------------------------------------------------
52C L O C A L V A R I A B L E S
53C-------------------------------------------------------------------------------
54 INTEGER I, J, K,EP
55 my_real
56 . FPP(3,4), ELTHKINV
57C---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
58#include "vectorize.inc"
59 DO ep=jft,jlt
60 k=iplat(ep)
61 elthkinv = one/thk0(ep)
62C FPP(1:3,node) = VFPINCH(node) * Normal(1:3,node)
63C Node 1 : FX,FY,FZ
64 fpp(1,1)= vfpinch(k,1)*vqn(k,7,1)*elthkinv
65 fpp(2,1)= vfpinch(k,1)*vqn(k,8,1)*elthkinv
66 fpp(3,1)= vfpinch(k,1)*vqn(k,9,1)*elthkinv
67C Node 2 : FX,FY,FZ
68 fpp(1,2)= vfpinch(k,2)*vqn(k,7,2)*elthkinv
69 fpp(2,2)= vfpinch(k,2)*vqn(k,8,2)*elthkinv
70 fpp(3,2)= vfpinch(k,2)*vqn(k,9,2)*elthkinv
71C Node 3 : FX,FY,FZ
72 fpp(1,3)= vfpinch(k,3)*vqn(k,7,3)*elthkinv
73 fpp(2,3)= vfpinch(k,3)*vqn(k,8,3)*elthkinv
74 fpp(3,3)= vfpinch(k,3)*vqn(k,9,3)*elthkinv
75C Node 1 : FX,FY,FZ
76 fpp(1,4)= vfpinch(k,4)*vqn(k,7,4)*elthkinv
77 fpp(2,4)= vfpinch(k,4)*vqn(k,8,4)*elthkinv
78 fpp(3,4)= vfpinch(k,4)*vqn(k,9,4)*elthkinv
79
80C damping contribution X
81 fpp(1,1)= fpp(1,1)+vfpinchdampx(k,1)*vqn(k,1,1)*elthkinv
82 fpp(2,1)= fpp(2,1)+vfpinchdampx(k,1)*vqn(k,2,1)*elthkinv
83 fpp(3,1)= fpp(3,1)+vfpinchdampx(k,1)*vqn(k,3,1)*elthkinv
84C Node 2 : FX,FY,FZ
85 fpp(1,2)= fpp(1,2)+vfpinchdampx(k,2)*vqn(k,1,2)*elthkinv
86 fpp(2,2)= fpp(2,2)+vfpinchdampx(k,2)*vqn(k,2,2)*elthkinv
87 fpp(3,2)= fpp(3,2)+vfpinchdampx(k,2)*vqn(k,3,2)*elthkinv
88C Node 3 : FX,FY,FZ
89 fpp(1,3)= fpp(1,3)+vfpinchdampx(k,3)*vqn(k,1,3)*elthkinv
90 fpp(2,3)= fpp(2,3)+vfpinchdampx(k,3)*vqn(k,2,3)*elthkinv
91 fpp(3,3)= fpp(3,3)+vfpinchdampx(k,3)*vqn(k,3,3)*elthkinv
92C Node 4 : FX,FY,FZ
93 fpp(1,4)= fpp(1,4)+vfpinchdampx(k,4)*vqn(k,1,4)*elthkinv
94 fpp(2,4)= fpp(2,4)+vfpinchdampx(k,4)*vqn(k,2,4)*elthkinv
95 fpp(3,4)= fpp(3,4)+vfpinchdampx(k,4)*vqn(k,3,4)*elthkinv
96
97C damping contribution Y
98 fpp(1,1)= fpp(1,1)+vfpinchdampy(k,1)*vqn(k,4,1)*elthkinv
99 fpp(2,1)= fpp(2,1)+vfpinchdampy(k,1)*vqn(k,5,1)*elthkinv
100 fpp(3,1)= fpp(3,1)+vfpinchdampy(k,1)*vqn(k,6,1)*elthkinv
101C Node 2 : FX,FY,FZ
102 fpp(1,2)= fpp(1,2)+vfpinchdampy(k,2)*vqn(k,4,2)*elthkinv
103 fpp(2,2)= fpp(2,2)+vfpinchdampy(k,2)*vqn(k,5,2)*elthkinv
104 fpp(3,2)= fpp(3,2)+vfpinchdampy(k,2)*vqn(k,6,2)*elthkinv
105C Node 3 : FX,FY,FZ
106 fpp(1,3)= fpp(1,3)+vfpinchdampy(k,3)*vqn(k,4,3)*elthkinv
107 fpp(2,3)= fpp(2,3)+vfpinchdampy(k,3)*vqn(k,5,3)*elthkinv
108 fpp(3,3)= fpp(3,3)+vfpinchdampy(k,3)*vqn(k,6,3)*elthkinv
109C Node 4 : FX,FY,FZ
110 fpp(1,4)= fpp(1,4)+vfpinchdampy(k,4)*vqn(k,4,4)*elthkinv
111 fpp(2,4)= fpp(2,4)+vfpinchdampy(k,4)*vqn(k,5,4)*elthkinv
112 fpp(3,4)= fpp(3,4)+vfpinchdampy(k,4)*vqn(k,6,4)*elthkinv
113C
114C global projection
115C FP(1:3,node) (3x1) = VQ (3x3) * FPP(1:3,node) (3,1)
116C Node 1 : FX,FY,FZ
117 fp(k,1,1)= vq(k,1,1)*fpp(1,1)+vq(k,1,2)*fpp(2,1)+vq(k,1,3)*fpp(3,1)
118 fp(k,2,1)= vq(k,2,1)*fpp(1,1)+vq(k,2,2)*fpp(2,1)+vq(k,2,3)*fpp(3,1)
119 fp(k,3,1)= vq(k,3,1)*fpp(1,1)+vq(k,3,2)*fpp(2,1)+vq(k,3,3)*fpp(3,1)
120C Node 2 : FX,FY,FZ
121 fp(k,1,2)= vq(k,1,1)*fpp(1,2)+vq(k,1,2)*fpp(2,2)+vq(k,1,3)*fpp(3,2)
122 fp(k,2,2)= vq(k,2,1)*fpp(1,2)+vq(k,2,2)*fpp(2,2)+vq(k,2,3)*fpp(3,2)
123 fp(k,3,2)= vq(k,3,1)*fpp(1,2)+vq(k,3,2)*fpp(2,2)+vq(k,3,3)*fpp(3,2)
124C Node 3 : FX,FY,FZ
125 fp(k,1,3)= vq(k,1,1)*fpp(1,3)+vq(k,1,2)*fpp(2,3)+vq(k,1,3)*fpp(3,3)
126 fp(k,2,3)= vq(k,2,1)*fpp(1,3)+vq(k,2,2)*fpp(2,3)+vq(k,2,3)*fpp(3,3)
127 fp(k,3,3)= vq(k,3,1)*fpp(1,3)+vq(k,3,2)*fpp(2,3)+vq(k,3,3)*fpp(3,3)
128C Node 4 : FX,FY,FZ
129 fp(k,1,4)= vq(k,1,1)*fpp(1,4)+vq(k,1,2)*fpp(2,4)+vq(k,1,3)*fpp(3,4)
130 fp(k,2,4)= vq(k,2,1)*fpp(1,4)+vq(k,2,2)*fpp(2,4)+vq(k,2,3)*fpp(3,4)
131 fp(k,3,4)= vq(k,3,1)*fpp(1,4)+vq(k,3,2)*fpp(2,4)+vq(k,3,3)*fpp(3,4)
132C
133 ENDDO
134 RETURN
135 END
subroutine cbapinchproj(jft, jlt, vqn, vq, vfpinch, nplat, iplat, fp, corel, di, thk0, vfpinchdampx, vfpinchdampy)