OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
h3d_quad_vector.F File Reference
#include "implicit_f.inc"
#include "vect01_c.inc"
#include "mvsiz_p.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine h3d_quad_vector (elbuf_tab, quad_vector, ifunc, iparg, geo, ixq, ixc, ixtg, pm, el2fa, nbf, iadp, nbf_l, ehour, anim, nbpart, iadg, ipm, igeo, thke, err_thk_sh4, err_thk_sh3, invert, x, v, w, nv46, nercvois, nesdvois, lercvois, lesdvois, stack, id_elem, info1, info2, is_written_quad, ipartq, iparttg, layer_input, ipt_input, ply_input, gauss_input, iuvar_input, h3d_part, keyword, bufmat, multi_fvm, ir_input, is_input, it_input)

Function/Subroutine Documentation

◆ h3d_quad_vector()

subroutine h3d_quad_vector ( type (elbuf_struct_), dimension(ngroup), target elbuf_tab,
quad_vector,
integer ifunc,
integer, dimension(nparg,ngroup) iparg,
geo,
integer, dimension(nixq,numelq) ixq,
integer, dimension(nixc,numelc) ixc,
integer, dimension(nixtg,numeltg) ixtg,
pm,
integer, dimension(*) el2fa,
integer nbf,
integer, dimension(*) iadp,
integer nbf_l,
ehour,
anim,
integer nbpart,
integer, dimension(nspmd,*) iadg,
integer, dimension(npropmi,nummat) ipm,
integer, dimension(npropgi,numgeo) igeo,
thke,
err_thk_sh4,
err_thk_sh3,
integer, dimension(*) invert,
x,
v,
w,
integer nv46,
integer, dimension(*) nercvois,
integer, dimension(*) nesdvois,
integer, dimension(*) lercvois,
integer, dimension(*) lesdvois,
type (stack_ply) stack,
integer, dimension(*) id_elem,
integer info1,
integer info2,
integer, dimension(*) is_written_quad,
integer, dimension(*) ipartq,
integer, dimension(*) iparttg,
integer layer_input,
integer ipt_input,
integer ply_input,
integer gauss_input,
integer iuvar_input,
integer, dimension(*) h3d_part,
character(len=ncharline100) keyword,
target bufmat,
type (multi_fvm_struct), intent(in) multi_fvm,
integer ir_input,
integer is_input,
integer it_input )

Definition at line 41 of file h3d_quad_vector.F.

53C-----------------------------------------------
54C M o d u l e s
55C-----------------------------------------------
56 USE initbuf_mod
57 USE elbufdef_mod
58 USE schlieren_mod
59 USE stack_mod
60 USE multi_fvm_mod
61 USE alefvm_mod
63 use element_mod , only : nixq,nixc,nixtg
64C-----------------------------------------------
65C I m p l i c i t T y p e s
66C-----------------------------------------------
67#include "implicit_f.inc"
68C-----------------------------------------------
69C C o m m o n B l o c k s
70C-----------------------------------------------
71#include "vect01_c.inc"
72#include "mvsiz_p.inc"
73#include "com01_c.inc"
74#include "com04_c.inc"
75#include "param_c.inc"
76C-----------------------------------------------
77C D u m m y A r g u m e n t s
78C-----------------------------------------------
80 . quad_vector(3,*),x(3,numnod),v(3,numnod),w(3,numnod),thke(*),ehour(*),geo(npropg,numgeo),
81 . anim(*),pm(npropm,*),err_thk_sh4(*), err_thk_sh3(*)
82 INTEGER IPARG(NPARG,NGROUP),IXC(NIXC,NUMELC),IXTG(NIXTG,NUMELTG),EL2FA(*),
83 . IXQ(NIXQ,NUMELQ),IFUNC,NBF,
84 . IADP(*),NBF_L, NBPART,IADG(NSPMD,*),IPM(NPROPMI,NUMMAT),
85 . IGEO(NPROPGI,NUMGEO),INVERT(*), NV46,ID_ELEM(*),
86 . INFO1,INFO2,IS_WRITTEN_QUAD(*),IPARTQ(*),IPARTTG(*),H3D_PART(*),
87 . LAYER_INPUT ,IPT_INPUT,GAUSS_INPUT,PLY_INPUT,IUVAR_INPUT,
88 . IR_INPUT,IS_INPUT,IT_INPUT,IS_WRITTEN_VECTOR(MVSIZ)
89 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
90 TYPE (STACK_PLY) :: STACK
91 CHARACTER(LEN=NCHARLINE100) :: KEYWORD
92 TYPE (MULTI_FVM_STRUCT), INTENT(IN) :: MULTI_FVM
93C-----------------------------------------------
94C L o c a l V a r i a b l e s
95C-----------------------------------------------
97 . dam1(mvsiz),dam2(mvsiz),
98 . wpla(mvsiz),dmax(mvsiz),wpmax(mvsiz),fail(mvsiz),
99 . epst1(mvsiz),epst2(mvsiz),epsf1(mvsiz),epsf2(mvsiz),
100 . value(3),ff0,gg0,hh0,ll0,mm0,nn0,mass(mvsiz)
101 my_real
102 . off, p,vonm2,s1,s2,s12,s3,dmgmx,fac,
103 . dir1_1,dir1_2,dir2_1,dir2_2,aa,bb,v1,v2,v3,x21,x32,x34,
104 . x41,y21,y32,y34,y41,z21,z32,z34,z41,suma,vr,vs,x31,y31,
105 . z31,e11,e12,e13,e21,e22,e23,sum,area,x2l,var,
106 . e1x,e1y,e1z,e2x,e2y,e2z,e3x,e3y,e3z,rx,ry,rz,sx,sy,sz,
107 . vg(5),vly(5),ve(5),bufmat(*),
108 . s11,s22,s33,s4,s5,s6,crit,value1,value2
109 my_real
110 . evar(3,mvsiz)
111 INTEGER I, NG, NEL, NPTR, NPTS, NPTT, NLAY, ILAY,
112 . IR,IS,IT,IL,MLW, NUVAR,IUS,LENF,PTF,PTM,PTS,NFAIL,
113 . N,NN,K,K1,K2,JTURB,MT,IMID,IALEL,IPID,ISH3N,NNI,
114 . NN1,NN2,NN3,NN4,NN5,NN6,NN9,NF,BUF,NVARF,
115 . OFFSET,IHBE,NPTM,NPG, MPT,IPT,IADD,IADR,IPMAT,IFAILT,
116 . IIGEO,IADI,ISUBSTACK,ITHK,NERCVOIS(*),NESDVOIS(*),
117 . LERCVOIS(*),LESDVOIS(*),ID_PLY,NB_PLYOFF,IOK,IADBUF,NUPARAM,
118 . IMAT,IVISC,IPOS,ITRIMAT
119 INTEGER
120 . PTE(4),PTP(4),PTMAT(4),PTVAR(4),NPT_ALL,IPLY,
121 . ID_ELEM_TMP(MVSIZ),NIX,IOK_PART(MVSIZ),JJ(6),NPGT,IUVAR,
122 . IS_WRITTEN_VALUE(MVSIZ)
123
124
125 TYPE(G_BUFEL_) ,POINTER :: GBUF
126 TYPE(L_BUFEL_) ,POINTER :: LBUF
127
128
129 my_real,
130 . DIMENSION(:), POINTER :: uvar
131
132
133
134 TARGET :: bufmat
135C-----------------------------------------------
136 ilay = layer_input
137 iuvar = iuvar_input
138 ir = ir_input
139 is = is_input
140 it = it_input
141C
142 DO i=1,numelq
143 is_written_quad(i) = 0
144 ENDDO
145C-----------
146 DO 900 ng=1,ngroup
147 CALL initbuf(iparg ,ng ,
148 2 mlw ,nel ,nft ,iad ,ity ,
149 3 npt ,jale ,ismstr ,jeul ,jturb ,
150 4 jthe ,jlag ,jmult ,jhbe ,jivf ,
151 5 nvaux ,jpor ,jcvt ,jclose ,jplasol ,
152 6 irep ,iint ,igtyp ,israt ,isrot ,
153 7 icsen ,isorth ,isorthg ,ifailure,jsms )
154 IF(mlw /= 13) THEN
155 nft =iparg(3,ng)
156 iad =iparg(4,ng)
157 isubstack = iparg(71,ng)
158 ivisc = iparg(61,ng)
159 iok_part(1:nel) = 0
160 lft=1
161 llt=nel
162!
163 DO i=1,6
164 jj(i) = nel*(i-1)
165 ENDDO
166c
167 value(1:3) = zero
168 DO i=1,nel
169 is_written_value(i) = 0
170 ENDDO
171 evar(1:3,1:nel) = zero
172 is_written_vector(1:nel) = 0
173C-----------------------------------------------
174C QUAD
175C-----------------------------------------------
176 IF (ity == 2) THEN
177
178 gbuf => elbuf_tab(ng)%GBUF
179 lbuf => elbuf_tab(ng)%BUFLY(1)%LBUF(1,1,1)
180 uvar => elbuf_tab(ng)%BUFLY(1)%MAT(1,1,1)%VAR
181 jale=(iparg(7,ng)+iparg(11,ng))
182 jturb=iparg(12,ng)*jale
183 nptr = elbuf_tab(ng)%NPTR
184 npts = elbuf_tab(ng)%NPTS
185 nptt = elbuf_tab(ng)%NPTT
186 nlay = elbuf_tab(ng)%NLAY
187 nuvar = elbuf_tab(ng)%BUFLY(1)%NVAR_MAT
188c
189 DO i=1,nel
190 id_elem(nft+i) = ixq(nixq,nft+i)
191 IF( h3d_part(ipartq(nft+i)) == 1) iok_part(i) = 1
192 ENDDO
193C---------------------
194 DO i=1,nel
195 quad_vector(1:3,nft+i) = zero ! Default = zero in all cases !
196 ENDDO
197c
198 iuvar = iuvar_input
199C--------------------------------------------------
200 IF (keyword == 'VECT/VEL') THEN
201C--------------------------------------------------
202 IF (mlw == 151) THEN
203 DO i = 1, nel
204 evar(1,i) = multi_fvm%VEL(1, i + nft)
205 evar(2,i) = multi_fvm%VEL(2, i + nft)
206 evar(3,i) = multi_fvm%VEL(3, i + nft)
207 is_written_vector(i) = 1
208 ENDDO
209 ELSE
210 DO i=1,nel
211 IF(gbuf%G_MOM>0 .AND. alefvm_param%IEnabled > 0)THEN
212 evar(1,i) = gbuf%MOM(jj(1) + i) / gbuf%RHO(i)
213 evar(2,i) = gbuf%MOM(jj(2) + i) / gbuf%RHO(i)
214 evar(3,i) = gbuf%MOM(jj(3) + i) / gbuf%RHO(i)
215 is_written_vector(i) = 1
216 ENDIF
217 ENDDO
218 ENDIF
219 IF (jcvt == 0 .OR. isorth /= 0) THEN
220C OUTPUT TENSOR STORED IN GLOBAL SYSTEM TO BE TRANSFERRED IN THE ELEMENT LOCAL ONE
221 CALL qrota_vect(x,ixq(1,nft+1),jcvt,evar,gbuf%GAMA,nel)
222 ENDIF
223C--------------------------------------------------
224 ELSEIF (keyword == 'VECT/ACC') THEN
225C--------------------------------------------------
226 IF (mlw == 151 .AND. ALLOCATED(multi_fvm%ACC)) THEN
227 DO i = 1, nel
228 evar(1,i) = multi_fvm%ACC(1, i + nft)
229 evar(2,i) = multi_fvm%ACC(2, i + nft)
230 evar(3,i) = multi_fvm%ACC(3, i + nft)
231 is_written_vector(i) = 1
232 ENDDO
233 ENDIF
234C--------------------------------------------------
235 ENDIF ! KEYWORD
236C-----------------------------------------------
237 CALL h3d_write_vectors(iok_part,is_written_quad,quad_vector,nel,0,nft,evar,is_written_vector)
238C-----------------------------------------------
239 ENDIF ! ITY
240
241C-----------------------------------------------
242 ENDIF ! MLW /= 13
243 900 CONTINUE ! NG
244C-----------------------------------------------
245 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine h3d_write_vectors(iok_part, is_written, vector, nel, offset, nft, value, is_written_vector)
subroutine area(d1, x, x2, y, y2, eint, stif0)
type(alefvm_param_), target alefvm_param
Definition alefvm_mod.F:121
subroutine initbuf(iparg, ng, mtn, llt, nft, iad, ity, npt, jale, ismstr, jeul, jtur, jthe, jlag, jmult, jhbe, jivf, mid, jpor, jcvt, jclose, jpla, irep, iint, igtyp, israt, isrot, icsen, isorth, isorthg, ifailure, jsms)
Definition initbuf.F:261
integer, parameter ncharline100
subroutine qrota_vect(x, ixq, kcvt, vect, gama, nel)
Definition qrota_vect.F:31