17 parameter(ifcont=.false.)
19 real visc(lx1,ly1,lz1,lelt)
22 common /scrmg/ r(lx1*ly1*lz1,lelt),
23 $ tx(lx1*ly1*lz1,lelt),
24 $ ty(lx1*ly1*lz1,lelt),
25 $ tz(lx1*ly1*lz1,lelt)
30 real hpf_op(lx1*lx1,ldimt1)
33 integer ibuild(ldimt1)
42 if (ix*iy*iz*e .ne. 1)
then
48 iffilter(ifield) = .false.
61 if (nid.eq.0)
write(6,*)
'avm not supported for ifield=1 !'
64 if (ibuild(ifield).eq.0)
then
67 ibuild(ifield) = ibuild(ifield) + 1
79 uavg =
gl2norm(t(1,1,1,1,ifield-1),n)
81 call sub2(tx,t(1,1,1,1,ifield-1),n)
83 if(uavg.gt.0) uinf =
glamax(tx, n)
92 vmax = sqrt(vx(i,1,1,ie)**2 + vy(i,1,1,ie)**2
94 vismax = c2 * h0max * vmax
95 visc(i,1,1,ie) = min(vismax, c1*h0**2 * abs(r(i,ie))*uinf)
101 vmax =
vlmax(visc(1,1,1,ie),nxyz)
102 call cfill(visc(1,1,1,ie),vmax,nxyz)
107 call dsop (visc,
'max',lx1,ly1,lz1)
109 viscc(1,ie) = visc(1 ,1 ,1 ,ie)
110 viscc(2,ie) = visc(lx1,1 ,1 ,ie)
111 viscc(3,ie) = visc(1 ,ly1,1 ,ie)
112 viscc(4,ie) = visc(lx1,ly1,1 ,ie)
114 viscc(5,ie) = visc(1 ,1 ,lz1,ie)
115 viscc(6,ie) = visc(lx1,1 ,lz1,ie)
116 viscc(7,ie) = visc(1 ,ly1,lz1,ie)
117 viscc(8,ie) = visc(lx1,ly1,lz1,ie)
122 if (mod(istep,10).eq.0)
then
125 visav =
glsc2(visc,bm1,n)/volvm1
126 if (nio.eq.0)
write(6,10) time,vismx,vismn,visav,ifield
127 10
format(1p4e12.4,
' AVM',i6)
144 real dx(lx1,ly1,lz1,lelt)
153 if (icalld.eq.0 .or. ifmvbd)
then
164 call cfill(dx(1,1,1,ie),dd,nxyz)
real function avm_vdiff(ix, iy, iz, e, c1, ncut)
real function deltaf(ix, iy, iz, iel)
subroutine dsop(u, op, nx, ny, nz)
subroutine build_hpf_fld(v, u, f, nx, nz)
subroutine hpf_trns_fcn(diag, kut)
subroutine build_hpf_mat(op_mat, f_filter, ifboyd)
real function vlmax(vec, n)
real function glamin(a, n)
real function glamax(a, n)
subroutine cfill(a, b, n)
real function gl2norm(a, n)
subroutine convop(conv, fi)
subroutine map_c_to_f_h1_bilin(uf, uc)