OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
norma1.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/.
23C
24!||====================================================================
25!|| norma1 ../starter/source/interfaces/inter3d1/norma1.F
26!||--- called by ------------------------------------------------------
27!|| findele ../starter/source/boundary_conditions/ebcs/findele.F
28!|| i11sti3 ../starter/source/interfaces/inter3d1/i11sti3.F
29!|| i12sol3 ../starter/source/interfaces/inter3d1/insol3.F
30!|| i20nelts ../starter/source/interfaces/inter3d1/inelt.F
31!|| i2surfs ../starter/source/interfaces/inter3d1/i2surfs.F
32!|| ineltigeo ../starter/source/interfaces/inter3d1/inelt.F
33!|| inelts ../starter/source/interfaces/inter3d1/inelt.F
34!|| inelts_np ../starter/source/interfaces/inter3d1/i24sti3.F
35!|| insol3 ../starter/source/interfaces/inter3d1/insol3.F
36!||====================================================================
37 SUBROUTINE norma1(N1,N2,N3,AREA,XX1,XX2,XX3)
38C
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C D u m m y A r g u m e n t s
45C-----------------------------------------------
47 . n1, n2, n3, area
48 my_real, INTENT(IN) :: xx1(4),xx2(4),xx3(4)
49C-----------------------------------------------
50C L o c a l V a r i a b l e s
51C-----------------------------------------------
53 . xx13, yy13, zz13, xx24, yy24, zz24
54C
55 xx13 =xx1(3)-xx1(1)
56 yy13 =xx2(3)-xx2(1)
57 zz13 =xx3(3)-xx3(1)
58 xx24 =xx1(4)-xx1(2)
59 yy24 =xx2(4)-xx2(2)
60 zz24 =xx3(4)-xx3(2)
61C
62 n1=yy13*zz24-zz13*yy24
63 n2=zz13*xx24-xx13*zz24
64 n3=xx13*yy24-yy13*xx24
65 area= max(em20,sqrt(n1*n1+n2*n2+n3*n3))
66 n1=n1/area
67 n2=n2/area
68 n3=n3/area
69 area=half*area
70 RETURN
71 END
72
73
74
75!||====================================================================
76!|| norma1d ../starter/source/interfaces/inter3d1/norma1.F
77!||--- called by ------------------------------------------------------
78!|| insol3d ../starter/source/interfaces/inter3d1/insol3.F
79!||====================================================================
80 SUBROUTINE norma1d(N1,N2,N3,AREA,XX1,XX2,XX3)
81C
82C-----------------------------------------------
83C I m p l i c i t T y p e s
84C-----------------------------------------------
85#include "implicit_f.inc"
86C-----------------------------------------------
87C D u m m y A r g u m e n t s
88C-----------------------------------------------
90 . n1, n2, n3, area
91 my_real, INTENT(IN) :: xx1(4),xx2(4),xx3(4)
92C-----------------------------------------------
93C L o c a l V a r i a b l e s
94C-----------------------------------------------
95 INTEGER J
97 . xx13, yy13, zz13, xx24, yy24, zz24
98C
99 xx13 =xx1(3)-xx1(1)
100 yy13 =xx2(3)-xx2(1)
101 zz13 =xx3(3)-xx3(1)
102 xx24 =xx1(4)-xx1(2)
103 yy24 =xx2(4)-xx2(2)
104 zz24 =xx3(4)-xx3(2)
105C
106 n1=yy13*zz24-zz13*yy24
107 n2=zz13*xx24-xx13*zz24
108 n3=xx13*yy24-yy13*xx24
109 area= max(em20,sqrt(n1*n1+n2*n2+n3*n3))
110 n1=n1/area
111 n2=n2/area
112 n3=n3/area
113C
114 area=half*area
115 RETURN
116 END
117
118
119
120!||====================================================================
121!|| norma4n ../starter/source/interfaces/inter3d1/norma1.F
122!||--- called by ------------------------------------------------------
123!|| i25neigh_removeallbut1 ../starter/source/interfaces/inter3d1/i25neigh.F
124!|| removeic ../starter/source/interfaces/inter3d1/i24tools.F
125!|| removeic1 ../starter/source/interfaces/inter3d1/i24tools.F
126!|| seg_opp ../starter/source/interfaces/inter3d1/i24tools.F
127!|| select_s2s ../starter/source/interfaces/inter3d1/select_s2s.F90
128!|| sh_offset_jonct_chk ../starter/source/elements/shell/shell_offset/sh_offset_jonkt_chk.F90
129!|| voisin2 ../starter/source/interfaces/inter3d1/i24tools.F
130!||====================================================================
131 SUBROUTINE norma4n(N1,N2,N3,AREA,IRECT,X)
132C
133C-----------------------------------------------
134C I m p l i c i t T y p e s
135C-----------------------------------------------
136#include "implicit_f.inc"
137C-----------------------------------------------
138C D u m m y A r g u m e n t s
139C-----------------------------------------------
140 INTEGER IRECT(4)
141 my_real
142 . n1, n2, n3, area, x(3,*)
143C-----------------------------------------------
144C L o c a l V a r i a b l e s
145C-----------------------------------------------
146 INTEGER J,NN
147C REAL
148 my_real
149 . x1(4),x2(4),x3(4),xx13, yy13, zz13, xx24, yy24, zz24
150C
151 DO j=1,4
152 nn=irect(j)
153 x1(j)=x(1,nn)
154 x2(j)=x(2,nn)
155 x3(j)=x(3,nn)
156 END DO
157C
158 xx13 =x1(3)-x1(1)
159 yy13 =x2(3)-x2(1)
160 zz13 =x3(3)-x3(1)
161 xx24 =x1(4)-x1(2)
162 yy24 =x2(4)-x2(2)
163 zz24 =x3(4)-x3(2)
164C
165 n1=yy13*zz24-zz13*yy24
166 n2=zz13*xx24-xx13*zz24
167 n3=xx13*yy24-yy13*xx24
168 area= max(em20,sqrt(n1*n1+n2*n2+n3*n3))
169 n1=n1/area
170 n2=n2/area
171 n3=n3/area
172C
173 area=half*area
174C
175 RETURN
176 END
177!||====================================================================
178!|| norma4nx ../starter/source/interfaces/inter3d1/norma1.F
179!||--- called by ------------------------------------------------------
180!|| voisin2 ../starter/source/interfaces/inter3d1/i24tools.F
181!||====================================================================
182 SUBROUTINE norma4nx(N1,N2,N3,AREA,IRECT,X ,I1,I2,SHF)
183C
184C-----------------------------------------------
185C I m p l i c i t T y p e s
186C-----------------------------------------------
187#include "implicit_f.inc"
188C-----------------------------------------------
189C D u m m y A r g u m e n t s
190C-----------------------------------------------
191 INTEGER IRECT(4),I1,I2
192 my_real
193 . n1, n2, n3, area, x(3,*),shf(3)
194C-----------------------------------------------
195c FUNCTION: calculate normale with perturbation
196C-----------------------------------------------
197C L o c a l V a r i a b l e s
198C-----------------------------------------------
199 INTEGER J,NN
200C REAL
201 my_real
202 . x1(4),x2(4),x3(4),xx13, yy13, zz13, xx24, yy24, zz24
203C
204 DO j=1,4
205 nn=irect(j)
206 IF (nn == i1 .OR. nn == i2) THEN
207 x1(j)=x(1,nn)
208 x2(j)=x(2,nn)
209 x3(j)=x(3,nn)
210 ELSE
211 x1(j)=x(1,nn)+shf(1)
212 x2(j)=x(2,nn)+shf(2)
213 x3(j)=x(3,nn)+shf(3)
214 END IF
215 END DO
216C
217 xx13 =x1(3)-x1(1)
218 yy13 =x2(3)-x2(1)
219 zz13 =x3(3)-x3(1)
220 xx24 =x1(4)-x1(2)
221 yy24 =x2(4)-x2(2)
222 zz24 =x3(4)-x3(2)
223C
224 n1=yy13*zz24-zz13*yy24
225 n2=zz13*xx24-xx13*zz24
226 n3=xx13*yy24-yy13*xx24
227 area= max(em20,sqrt(n1*n1+n2*n2+n3*n3))
228 n1=n1/area
229 n2=n2/area
230 n3=n3/area
231C
232 area=half*area
233C
234 RETURN
235 END
#define my_real
Definition cppsort.cpp:32
subroutine area(d1, x, x2, y, y2, eint, stif0)
#define max(a, b)
Definition macros.h:21
subroutine norma4n(n1, n2, n3, area, irect, x)
Definition norma1.F:132
subroutine norma1(n1, n2, n3, area, xx1, xx2, xx3)
Definition norma1.F:38
subroutine norma4nx(n1, n2, n3, area, irect, x, i1, i2, shf)
Definition norma1.F:183
subroutine norma1d(n1, n2, n3, area, xx1, xx2, xx3)
Definition norma1.F:81