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 40 of file h3d_quad_vector.F.

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