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

Go to the source code of this file.

Functions/Subroutines

subroutine sjacidp (xd1, xd2, xd3, xd4, xd5, xd6, xd7, xd8, yd1, yd2, yd3, yd4, yd5, yd6, yd7, yd8, zd1, zd2, zd3, zd4, zd5, zd6, zd7, zd8, jac_i, nel)

Function/Subroutine Documentation

◆ sjacidp()

subroutine sjacidp ( double precision, dimension(mvsiz), intent(in) xd1,
double precision, dimension(mvsiz), intent(in) xd2,
double precision, dimension(mvsiz), intent(in) xd3,
double precision, dimension(mvsiz), intent(in) xd4,
double precision, dimension(mvsiz), intent(in) xd5,
double precision, dimension(mvsiz), intent(in) xd6,
double precision, dimension(mvsiz), intent(in) xd7,
double precision, dimension(mvsiz), intent(in) xd8,
double precision, dimension(mvsiz), intent(in) yd1,
double precision, dimension(mvsiz), intent(in) yd2,
double precision, dimension(mvsiz), intent(in) yd3,
double precision, dimension(mvsiz), intent(in) yd4,
double precision, dimension(mvsiz), intent(in) yd5,
double precision, dimension(mvsiz), intent(in) yd6,
double precision, dimension(mvsiz), intent(in) yd7,
double precision, dimension(mvsiz), intent(in) yd8,
double precision, dimension(mvsiz), intent(in) zd1,
double precision, dimension(mvsiz), intent(in) zd2,
double precision, dimension(mvsiz), intent(in) zd3,
double precision, dimension(mvsiz), intent(in) zd4,
double precision, dimension(mvsiz), intent(in) zd5,
double precision, dimension(mvsiz), intent(in) zd6,
double precision, dimension(mvsiz), intent(in) zd7,
double precision, dimension(mvsiz), intent(in) zd8,
intent(out) jac_i,
integer, intent(in) nel )

Definition at line 30 of file sjacidp.F.

35C-----------------------------------------------
36C M o d u l e s
37C-----------------------------------------------
38 USE message_mod
39C-----------------------------------------------
40C I m p l i c i t T y p e s
41C-----------------------------------------------
42#include "implicit_f.inc"
43C-----------------------------------------------
44C G l o b a l P a r a m e t e r s
45C-----------------------------------------------
46#include "mvsiz_p.inc"
47C-----------------------------------------------
48C D u m m y A r g u m e n t s
49C-----------------------------------------------
50 INTEGER , INTENT(IN) :: NEL
51 my_real , DIMENSION(10,NEL),INTENT(OUT) :: jac_i
52 DOUBLE PRECISION , DIMENSION(MVSIZ), INTENT(IN) ::
53 . XD1, XD2, XD3, XD4, XD5, XD6, XD7, XD8,
54 . YD1, YD2, YD3, YD4, YD5, YD6, YD7, YD8,
55 . ZD1, ZD2, ZD3, ZD4, ZD5, ZD6, ZD7, ZD8
56C-----------------------------------------------
57C L o c a l V a r i a b l e s
58C-----------------------------------------------
59 INTEGER :: I
60C
62 . jac1(mvsiz), jac2(mvsiz), jac3(mvsiz),
63 . jac4(mvsiz), jac5(mvsiz), jac6(mvsiz),
64 . jac7(mvsiz), jac8(mvsiz), jac9(mvsiz),
65 . jac_59_68(mvsiz), jac_67_49(mvsiz), jac_48_57(mvsiz)
66C
68 . det(mvsiz), dett(mvsiz),
69 . x17(mvsiz), x28(mvsiz), x35(mvsiz), x46(mvsiz),
70 . y17(mvsiz), y28(mvsiz), y35(mvsiz), y46(mvsiz),
71 . z17(mvsiz), z28(mvsiz), z35(mvsiz), z46(mvsiz)
72C=======================================================================
73 DO i=1,nel
74 x17(i)=xd7(i)-xd1(i)
75 x28(i)=xd8(i)-xd2(i)
76 x35(i)=xd5(i)-xd3(i)
77 x46(i)=xd6(i)-xd4(i)
78C
79 y17(i)=yd7(i)-yd1(i)
80 y28(i)=yd8(i)-yd2(i)
81 y35(i)=yd5(i)-yd3(i)
82 y46(i)=yd6(i)-yd4(i)
83C
84 z17(i)=zd7(i)-zd1(i)
85 z28(i)=zd8(i)-zd2(i)
86 z35(i)=zd5(i)-zd3(i)
87 z46(i)=zd6(i)-zd4(i)
88 ENDDO
89C
90C Jacobian Matrix
91 DO i=1,nel
92 jac1(i)=x17(i)+x28(i)-x35(i)-x46(i)
93 jac2(i)=y17(i)+y28(i)-y35(i)-y46(i)
94 jac3(i)=z17(i)+z28(i)-z35(i)-z46(i)
95C
96 jac4(i)=x17(i)+x46(i)+x28(i)+x35(i)
97 jac5(i)=y17(i)+y46(i)+y28(i)+y35(i)
98 jac6(i)=z17(i)+z46(i)+z28(i)+z35(i)
99C
100 jac7(i)=x17(i)+x46(i)-x28(i)-x35(i)
101 jac8(i)=y17(i)+y46(i)-y28(i)-y35(i)
102 jac9(i)=z17(i)+z46(i)-z28(i)-z35(i)
103 ENDDO
104C
105 DO i=1,nel
106 jac_59_68(i)=jac5(i)*jac9(i)-jac6(i)*jac8(i)
107 jac_67_49(i)=jac6(i)*jac7(i)-jac4(i)*jac9(i)
108 jac_48_57(i)=jac4(i)*jac8(i)-jac5(i)*jac7(i)
109 ENDDO
110C
111 DO i=1,nel
112 det(i) =one_over_64*(jac1(i)*jac_59_68(i)+jac2(i)*jac_67_49(i)+jac3(i)*jac_48_57(i))
113 dett(i)=one_over_64/max(det(i),em20)
114 ENDDO
115C
116C Jacobian matrix inverse
117 DO i=1,nel
118 jac_i(1,i)=dett(i)*jac_59_68(i)
119 jac_i(4,i)=dett(i)*jac_67_49(i)
120 jac_i(7,i)=dett(i)*jac_48_57(i)
121 jac_i(2,i)=dett(i)*(-jac2(i)*jac9(i)+jac3(i)*jac8(i))
122 jac_i(5,i)=dett(i)*( jac1(i)*jac9(i)-jac3(i)*jac7(i))
123 jac_i(8,i)=dett(i)*(-jac1(i)*jac8(i)+jac2(i)*jac7(i))
124 jac_i(3,i)=dett(i)*( jac2(i)*jac6(i)-jac3(i)*jac5(i))
125 jac_i(6,i)=dett(i)*(-jac1(i)*jac6(i)+jac3(i)*jac4(i))
126 jac_i(9,i)=dett(i)*( jac1(i)*jac5(i)-jac2(i)*jac4(i))
127 ENDDO
128C
129 DO i=1,nel
130 jac_i(10,i) = det(i)
131 ENDDO
132C
133 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21