OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
i2_fform.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!|| i2_fform ../engine/source/interfaces/interf/i2_fform.F
25!||--- called by ------------------------------------------------------
26!|| i2curvf ../engine/source/interfaces/interf/i2curvf.F
27!|| i2curvfp ../engine/source/interfaces/interf/i2curvfp.F
28!|| i2curvv ../engine/source/interfaces/interf/i2curvv.F
29!||====================================================================
30 SUBROUTINE i2_fform(
31 . NIR,S,T,H,HH,HRS,HRT,HPS,HPT,HPRS,HPRT,
32 . HXS,HXT,LS1,LS2,LT1,LT2,LS,LT)
33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C D u m m y A r g u m e n t s
39C-----------------------------------------------
40 INTEGER NIR,I
41 my_real
42 . s,t,ls1,ls2,lt1,lt2,ls,lt
43 my_real
44 . h(4),hh(4),hrs(4),hrt(4),hps(4),hpt(4),hprs(4),hprt(4),
45 . hxs(4),hxt(4)
46C-----------------------------------------------
47C L o c a l V a r i a b l e s
48C-----------------------------------------------
49 my_real
50 . slm,slp,tlm,tlp,shm,shp,thm,thp,sm2,sp2,tm2,tp2,srm,srp,trm,trp,
51 . srpm,srpp,trpm,trpp,s2,s3,t2,t3
52C-----------------------------------------------
53C Form functions based on Adini Clough Melosh rectangular element
54C======================================================================|
55 s2 = s*s
56 s3 = s*s2
57 t2 = t*t
58 t3 = t*t2
59c
60 slm = (one - s)*half
61 slp = (one + s)*half
62 tlm = (one - t)*half
63 tlp = (one + t)*half
64C
65 ls = tlm*ls1 + tlp*ls2
66 lt = slm*lt1 + slp*lt2
67C
68 sm2 = slm*slm
69 sp2 = slp*slp
70 tm2 = tlm*tlm
71 tp2 = tlp*tlp
72C---- fonctions de forme lineaires
73 h(1) = slm*tlm
74 h(2) = slp*tlm
75 h(3) = slp*tlp
76 h(4) = slm*tlp
77C---- fonctions de forme bicubiques (Adini, Clough)
78c u = sum( HH(i)*u(i) + HRS(i) *theta_s(i) + HRT(i) *theta_t(i))
79c theta_s = sum(HPS(i)*u(i) + HPRS(i)*theta_s(i)) + HXS(i) *theta_t(i))
80c theta_t = sum(HPT(i)*u(i) + HXT(i) *theta_s(i)) + HPRT(i)*theta_t(i))
81c
82c F(i) = HH(i)*Fz + HPS(i)*Ms + HPT(i)*Mt
83c Ms(i) = HRS(i)*Fz + HPRS(i)*Ms + HXT(i)*Mt
84c Mt(i) = HRT(i)*Fz + HXS(i)*Ms + HPRT(i)*Mt
85C-------------------------
86 hh(1) = slm*tlm*(one - s*slp - t*tlp)
87 hh(2) = slp*tlm*(one + s*slm - t*tlp)
88 hh(3) = slp*tlp*(one + s*slm + t*tlm)
89 hh(4) = slm*tlp*(one - s*slp + t*tlm)
90
91 hrs(1) = slm*tlp*tm2*lt
92 hrs(2) = slp*tlp*tm2*lt
93 hrs(3) =-slp*tlm*tp2*lt
94 hrs(4) =-slm*tlm*tp2*lt
95c
96 hrt(1) =-tlm*slp*sm2*ls
97 hrt(2) = tlm*slm*sp2*ls
98 hrt(3) = tlp*slm*sp2*ls
99 hrt(4) =-tlp*slp*sm2*ls
100C-----
101 hps(1) = (-three + four*s + six*t2*slm - s3) * fourth / lt
102 hps(2) = (-three - four*s + six*t2*slp + s3) * fourth / lt
103 hps(3) = ( three + four*s - six*t2*slp - s3) * fourth / lt
104 hps(4) = ( three - four*s - six*t2*slm + s3) * fourth / lt
105
106 hpt(1) =-(-three + four*t + six*s2*tlm - t3) * fourth / ls
107 hpt(2) =-( three - four*t - six*s2*tlm + t3) * fourth / ls
108 hpt(3) =-( three + four*t - six*s2*tlp - t3) * fourth / ls
109 hpt(4) =-(-three - four*t + six*s2*tlp + t3) * fourth / ls
110C-----
111 srpm = three_half*s2 - s - half
112 srpp = three_half*s2 + s - half
113 trpm = three_half*t2 - t - half
114 trpp = three_half*t2 + t - half
115
116 hprs(1) = slm * trpm
117 hprs(2) = slp * trpm
118 hprs(3) = slp * trpp
119 hprs(4) = slm * trpp
120
121 hprt(1) = tlm * srpm
122 hprt(2) = tlm * srpp
123 hprt(3) = tlp * srpp
124 hprt(4) = tlp * srpm
125C-----
126 hxs(1) =-slp*sm2 * ls/lt
127 hxs(2) = slm*sp2 * ls/lt
128 hxs(3) =-hxs(2)
129 hxs(4) =-hxs(1)
130
131 hxt(1) =-tlp*tm2 * lt/ls
132 hxt(2) =-hxt(1)
133 hxt(3) =-tlm*tp2 * lt/ls
134 hxt(4) =-hxt(3)
135C-----------
136 RETURN
137 END
subroutine i2_fform(nir, s, t, h, hh, hrs, hrt, hps, hpt, hprs, hprt, hxs, hxt, ls1, ls2, lt1, lt2, ls, lt)
Definition i2_fform.F:33