OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
c3curv3.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!|| c3curv3 ../engine/source/elements/sh3n/coque3n/c3curv3.F
25!||--- called by ------------------------------------------------------
26!|| c3forc3 ../engine/source/elements/sh3n/coque3n/c3forc3.F
27!|| c3forc3_crk ../engine/source/elements/xfem/c3forc3_crk.F
28!||--- uses -----------------------------------------------------
29!|| element_mod ../common_source/modules/elements/element_mod.F90
30!||====================================================================
31 SUBROUTINE c3curv3(JFT,JLT,VRL1,VRL2,VRL3,
32 . IXTG,WXY,ISMSTR,KXX,KYY,KXY,
33 . PX1 ,PY1 ,PY2 ,EYZ ,EZX ,
34 . E1X ,E1Y ,E1Z ,E2X ,
35 . E2Y ,E2Z ,E3X ,E3Y ,E3Z )
36 use element_mod , only : nixtg
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C G l o b a l P a r a m e t e r s
43C-----------------------------------------------
44#include "mvsiz_p.inc"
45C-----------------------------------------------
46C D u m m y A r g u m e n t s
47C-----------------------------------------------
48 INTEGER JFT, JLT,IXTG(NIXTG,*),ISMSTR
49 my_real VRL1(MVSIZ,3), VRL2(MVSIZ,3), VRL3(MVSIZ,3),WXY(*),
50 . E1X(MVSIZ), E1Y(MVSIZ), E1Z(MVSIZ), E2X(MVSIZ),
51 . E2Y(MVSIZ), E2Z(MVSIZ), E3X(MVSIZ), E3Y(MVSIZ),
52 . e3z(mvsiz), ezx(mvsiz), eyz(mvsiz),
53 . px1(mvsiz), py1(mvsiz), py2(mvsiz),
54 . kxx(mvsiz), kyy(mvsiz), kxy(mvsiz)
55C-----------------------------------------------
56C L o c a l V a r i a b l e s
57C-----------------------------------------------
58 INTEGER I
59 my_real RX1(MVSIZ), RX2(MVSIZ), RX3(MVSIZ),
60 . RY1(MVSIZ), RY2(MVSIZ), RY3(MVSIZ)
61 my_real RX12T,RX13T,RX23T,RY12T,RY13T,RY23T,RXAVT,RYAVT
62C=======================================================================
63 DO i=jft,jlt
64 rx1(i)=e1x(i)*vrl1(i,1)+e1y(i)*vrl1(i,2)+e1z(i)*vrl1(i,3)
65 ry1(i)=e2x(i)*vrl1(i,1)+e2y(i)*vrl1(i,2)+e2z(i)*vrl1(i,3)
66 ry2(i)=e2x(i)*vrl2(i,1)+e2y(i)*vrl2(i,2)+e2z(i)*vrl2(i,3)
67 rx2(i)=e1x(i)*vrl2(i,1)+e1y(i)*vrl2(i,2)+e1z(i)*vrl2(i,3)
68 rx3(i)=e1x(i)*vrl3(i,1)+e1y(i)*vrl3(i,2)+e1z(i)*vrl3(i,3)
69 ry3(i)=e2x(i)*vrl3(i,1)+e2y(i)*vrl3(i,2)+e2z(i)*vrl3(i,3)
70 ENDDO
71C
72 DO i=jft,jlt
73 rx12t = rx1(i) - rx2(i)
74 rx13t = rx1(i) - rx3(i)
75 rx23t = rx2(i) - rx3(i)
76C
77 kyy(i)=-py1(i) * rx13t - py2(i) * rx23t
78 kxy(i)= px1(i) * rx12t
79C
80 ry12t = ry1(i) - ry2(i)
81 ry13t = ry1(i) - ry3(i)
82 ry23t = ry2(i) - ry3(i)
83C
84 kxx(i) = px1(i) * ry12t
85 kxy(i) = py1(i) * ry13t + py2(i) * ry23t - kxy(i)
86C
87 ryavt = px1(i) * (
88 . px1(i) * (-rx1(i)+rx2(i))
89 . + (two*py1(i)+three*py2(i)) * ry1(i)
90 . + (three*py1(i)+two*py2(i)) * ry2(i)
91
92 . + ( py1(i) + py2(i) ) * ry3(i) )
93 rxavt = -px1(i) * (
94 . + (two*py1(i)+py2(i)) * rx1(i)
95 . + (py1(i)+two*py2(i)) * rx2(i)
96 . + three*(py1(i)+py2(i)) * rx3(i) )
97 . + py1(i) * (py1(i)+two*py2(i)) * ry1(i)
98 . - py2(i) * (two*py1(i)+py2(i)) * ry2(i)
99 . + ( py2(i)**2 - py1(i)**2 ) * ry3(i)
100C
101 ezx(i) = ezx(i) + ryavt * third
102 eyz(i) = eyz(i) + rxavt * third
103 ENDDO
104c
105 IF (ismstr==10) THEN
106 DO i=jft,jlt
107 rx12t = rx1(i) - rx2(i)
108 ry13t = ry1(i) - ry3(i)
109 ry23t = ry2(i) - ry3(i)
110C
111 wxy(i) = py1(i) * ry13t + py2(i) * ry23t + px1(i) * rx12t
112 ENDDO
113 ENDIF
114c-----------
115 RETURN
116 END
subroutine c3curv3(jft, jlt, vrl1, vrl2, vrl3, ixtg, wxy, ismstr, kxx, kyy, kxy, px1, py1, py2, eyz, ezx, e1x, e1y, e1z, e2x, e2y, e2z, e3x, e3y, e3z)
Definition c3curv3.F:36