OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
s10volnodt3.F File Reference
#include "implicit_f.inc"
#include "mvsiz_p.inc"
#include "param_c.inc"
#include "com04_c.inc"
#include "scr05_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine s10volnodt3 (elbuf_tab, volnod6, x, nc, offg, sav, xdp, nel, npt)

Function/Subroutine Documentation

◆ s10volnodt3()

subroutine s10volnodt3 ( type (elbuf_struct_), target elbuf_tab,
double precision, dimension(6,2*numnod) volnod6,
x,
integer, dimension(mvsiz,10), intent(in) nc,
offg,
double precision, dimension(nel,30) sav,
double precision, dimension(3,sxdp/3), intent(in) xdp,
integer, intent(in) nel,
integer, intent(in) npt )

Definition at line 35 of file s10volnodt3.F.

39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE elbufdef_mod
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47C-----------------------------------------------
48C G l o b a l P a r a m e t e r s
49C-----------------------------------------------
50#include "mvsiz_p.inc"
51#include "param_c.inc"
52#include "com04_c.inc"
53#include "scr05_c.inc"
54C-----------------------------------------------
55C D u m m y A r g u m e n t s
56C-----------------------------------------------
57 INTEGER, INTENT(IN) :: NPT
58 INTEGER, INTENT(IN) ::NEL
59 INTEGER, DIMENSION(MVSIZ,10),INTENT(IN) :: NC
60 double precision
61 . volnod6(6,2*numnod),sav(nel,30)
62 DOUBLE PRECISION , DIMENSION(3,SXDP/3), INTENT(IN) :: XDP
63C REAL
65 . x(3,numnod),offg(nel)
66 TYPE (ELBUF_STRUCT_), TARGET :: ELBUF_TAB
67C-----------------------------------------------
68C C o m m o n B l o c k s
69C-----------------------------------------------
70C-----------------------------------------------
71C L o c a l V a r i a b l e s
72C-----------------------------------------------
73 INTEGER I, K,N1,N2,NN,N
74 INTEGER IP,IBID,NPE
75 INTEGER IPERM1(10),IPERM2(10)
76 DATA iperm1/0,0,0,0,1,2,3,1,2,3/
77 DATA iperm2/0,0,0,0,2,3,1,4,4,4/
78
80 . mfxx(mvsiz),mfxy(mvsiz),mfxz(mvsiz),
81 . mfyx(mvsiz),mfyy(mvsiz),mfyz(mvsiz),
82 . mfzx(mvsiz),mfzy(mvsiz),mfzz(mvsiz),
83 . px(mvsiz,10),py(mvsiz,10),pz(mvsiz,10),jac(mvsiz),
84 . vx0(mvsiz,10),vy0(mvsiz,10),vz0(mvsiz,10),volp(mvsiz)
85 DOUBLE PRECISION
86 . XX(MVSIZ,10), YY(MVSIZ,10), ZZ(MVSIZ,10),
87 . X0(MVSIZ,10), Y0(MVSIZ,10), Z0(MVSIZ,10),
88 . DET6(6,MVSIZ)
89C-----
90 TYPE(L_BUFEL_) ,POINTER :: LBUF
91C----------------------------
92C NODAL COORDINATES
93C----------------------------
94C----------------------------
95 IF(iresp == 1) THEN
96 DO n=1,10
97 DO i=1,nel
98 nn = max(1,nc(i,n))
99 xx(i,n)=xdp(1,nn)
100 yy(i,n)=xdp(2,nn)
101 zz(i,n)=xdp(3,nn)
102 ENDDO
103 ENDDO
104 ELSE
105 DO n=1,10
106 DO i=1,nel
107 nn = max(1,nc(i,n))
108 xx(i,n)=x(1,nn)
109 yy(i,n)=x(2,nn)
110 zz(i,n)=x(3,nn)
111 ENDDO
112 ENDDO
113 END IF !(IRESP == 1) THEN
114C-------exact for Itetra4=1
115 DO n=5,10
116 n1=iperm1(n)
117 n2=iperm2(n)
118 DO i=1,nel
119 IF(nc(i,n)==0)THEN
120 xx(i,n) = half*(xx(i,n1)+xx(i,n2))
121 yy(i,n) = half*(yy(i,n1)+yy(i,n2))
122 zz(i,n) = half*(zz(i,n1)+zz(i,n2))
123 ENDIF
124 ENDDO
125 ENDDO
126C----------------------------
127C NODAL COORDINATES INITIALES |
128C----------------------------
129 npe = 10
130 DO n=1,npe
131 DO i=1,nel
132 x0(i,n)=sav(i,n)
133 y0(i,n)=sav(i,n+npe)
134 z0(i,n)=sav(i,n+2*npe)
135 ENDDO
136 ENDDO
137C----------------------------
138C DISPLACEMENT |
139C----------------------------
140 n = npe
141 DO i=1,nel
142 vx0(i,n)=xx(i,n)-x0(i,n)
143 vy0(i,n)=yy(i,n)-y0(i,n)
144 vz0(i,n)=zz(i,n)-z0(i,n)
145 ENDDO
146 DO n=1,npe
147 DO i=1,nel
148 vx0(i,n)=xx(i,n)-x0(i,n)-vx0(i,npe)
149 vy0(i,n)=yy(i,n)-y0(i,n)-vy0(i,npe)
150 vz0(i,n)=zz(i,n)-z0(i,n)-vz0(i,npe)
151 ENDDO
152 ENDDO
153 ibid = 1
154 DO ip=1,npt
155 lbuf => elbuf_tab%BUFLY(ibid)%LBUF(ip,ibid,ibid)
156 CALL s10pijto3(px,py,pz,lbuf%PIJ,nel)
157 CALL s10defot3(
158 1 px, py, pz, vx0,
159 2 vy0, vz0, mfxx, mfxy,
160 3 mfxz, mfyx, mfyy, mfyz,
161 4 mfzx, mfzy, mfzz, nel)
162 CALL jacob_j33(
163 1 jac, mfxx, mfxy, mfxz,
164 2 mfyx, mfyy, mfyz, mfzx,
165 3 mfzy, mfzz, nel)
166 DO i=1,nel
167 IF (offg(i) == zero .OR. abs(offg(i))>one) THEN
168 volp(i)= zero
169 ELSE
170 volp(i) = jac(i)*lbuf%VOL(i)
171 ENDIF
172 ENDDO
173
174 !Parith-On treatment
175 CALL foat_to_6_float(1 ,nel ,volp ,det6 )
176
177 DO i=1,nel
178 volnod6(1:6,nc(i,ip)) = volnod6(1:6,nc(i,ip)) + det6(1:6,i)
179 ENDDO
180C
181 END DO !IP=1,NPT
182C
183 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine jacob_j33(det, aj1, aj2, aj3, aj4, aj5, aj6, aj7, aj8, aj9, nel)
Definition jacob_j33.F:37
#define max(a, b)
Definition macros.h:21
subroutine foat_to_6_float(jft, jlt, f, f6)
Definition parit.F:225
subroutine s10defot3(px, py, pz, vx, vy, vz, dxx, dxy, dxz, dyx, dyy, dyz, dzx, dzy, dzz, nel)
Definition s10defot3.F:34
subroutine s10pijto3(px, py, pz, pij, nel)
Definition s10pijto3.F:30