OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
q4coor2.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "vect01_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine q4rcoor2 (x, ixq, ngl, mxt, pid, ix1, ix2, ix3, ix4, y1, y2, y3, y4, z1, z2, z3, z4, yavg, y234, y124, sy, sz, ty, tz, e1y, e1z, e2y, e2z)

Function/Subroutine Documentation

◆ q4rcoor2()

subroutine q4rcoor2 ( x,
integer, dimension(nixq,*) ixq,
integer, dimension(*) ngl,
integer, dimension(*) mxt,
integer, dimension(*) pid,
integer, dimension(*) ix1,
integer, dimension(*) ix2,
integer, dimension(*) ix3,
integer, dimension(*) ix4,
y1,
y2,
y3,
y4,
z1,
z2,
z3,
z4,
yavg,
y234,
y124,
sy,
sz,
ty,
tz,
e1y,
e1z,
e2y,
e2z )

Definition at line 29 of file q4coor2.F.

34 use element_mod , only : nixq
35C-----------------------------------------------
36C I m p l i c i t T y p e s
37C-----------------------------------------------
38#include "implicit_f.inc"
39C-----------------------------------------------
40C G l o b a l P a r a m e t e r s
41C-----------------------------------------------
42#include "mvsiz_p.inc"
43C-----------------------------------------------
44C C o m m o n B l o c k s
45C-----------------------------------------------
46#include "vect01_c.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER IXQ(NIXQ,*), NGL(*), MXT(*), PID(*)
51 INTEGER IX1(*), IX2(*), IX3(*), IX4(*)
53 . x(3,*),e1y(*),e1z(*),e2y(*),e2z(*)
55 . y1(*), y2(*), y3(*), y4(*),
56 . z1(*), z2(*), z3(*), z4(*),yavg(*),y234(*),y124(*)
57C-----------------------------------------------
58C L o c a l V a r i a b l e s
59C-----------------------------------------------
60 INTEGER I
62 . sy(mvsiz) ,sz(mvsiz) ,
63 . ty(mvsiz) ,tz(mvsiz), suma,ct,cs
64C--------------------------------------------------
65C connectivities and material
66C--------------------------------------------------
67 DO i=lft,llt
68 mxt(i)=ixq(1,i)
69 ix1(i)=ixq(2,i)
70 ix2(i)=ixq(3,i)
71 ix3(i)=ixq(4,i)
72 ix4(i)=ixq(5,i)
73 pid(i)=ixq(6,i)
74 ngl(i)=ixq(nixq,i)
75 END DO
76C
77C----------------------------
78C NODE COORDINATES |
79C----------------------------
80 DO i=lft,llt
81 y1(i)=x(2,ix1(i))
82 z1(i)=x(3,ix1(i))
83 y2(i)=x(2,ix2(i))
84 z2(i)=x(3,ix2(i))
85 y3(i)=x(2,ix3(i))
86 z3(i)=x(3,ix3(i))
87 y4(i)=x(2,ix4(i))
88 z4(i)=x(3,ix4(i))
89 END DO
90 DO i=lft,llt
91 yavg(i) = fourth*(y1(i)+y2(i)+y3(i)+y4(i))
92 y234(i)=y2(i)+y3(i)+y4(i)
93 y124(i)=y1(i)+y2(i)+y4(i)
94 END DO
95C---------------------------------------
96C LOCAL REFERENCE FRAME (ISOPARAMETRIC)
97C---------------------------------------
98 DO i=lft,llt
99 sy(i)=half*(y2(i)+y3(i)-y1(i)-y4(i))
100 sz(i)=half*(z2(i)+z3(i)-z1(i)-z4(i))
101 ty(i)=half*(y3(i)+y4(i)-y1(i)-y2(i))
102 tz(i)=half*(z3(i)+z4(i)-z1(i)-z2(i))
103 END DO
104C-----------
105C convected frame ORTHOGONALIZED
106C full integ: Same than the shell
107C-----------
108 DO i=lft,llt
109 ct = ty(i)*ty(i)+tz(i)*tz(i)
110 cs = sy(i)*sy(i)+sz(i)*sz(i)
111 IF(cs /= zero) THEN
112 suma = sqrt(ct/max(em20,cs))
113 e1y(i) = sy(i)*suma + tz(i)
114 e1z(i) = sz(i)*suma - ty(i)
115 ELSEIF(ct /= zero)THEN
116 suma = sqrt(cs/max(em20,ct))
117 e1y(i) = sy(i) + tz(i)*suma
118 e1z(i) = sz(i) - ty(i)*suma
119 END IF
120 suma=sqrt(e1y(i)**2+e1z(i)**2)
121 suma=one/max(suma,em20)
122 e1y(i)=e1y(i)*suma
123 e1z(i)=e1z(i)*suma
124 e2y(i)=-e1z(i)
125 e2z(i)= e1y(i)
126 ENDDO
127c
128 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21