[Nek5000-users] blending coefficient in 3D

nek5000-users at lists.mcs.anl.gov nek5000-users at lists.mcs.anl.gov
Tue Feb 27 09:13:53 CST 2018


Hi, 

In order to make a smooth blending coefficient for mesh motion, I made a code below, it works fine for a 2D case in my computer but it does not work as expected for a 3D case (I run 3D case in server with 1024 pocessors). Could you please tell me is there anything wrong? (The error is the volume that i am getting is some wrong values i think) and is it right way to make Dirichlet B.C on boundaries also calling hmholtz function to make a blending velocity gradient? Because I took that part from the NEK example which is 2D. So do i have to change anything to make working in 3D? 

subroutine my_base_meshv(basev,h1,h2,rhs,msk,tmp) 
include 'SIZE' 
include 'TOTAL' 
real basev(lx1,ly1,lz1,lelt),tmp(lx1,ly1,lz1,lelt) 
real h1(1),h2(1),rhs(1),msk(1) 
real m1,denom,volume(nx1*ny1*nz1*nelv) 
integer e,f 

n = nx1*ny1*nz1*nelv 
nxyz = nx1*ny1*nz1 


do e=1,n 
volume(e) = vlsum(bm1(e,1,1,1),nxyz) 
enddo 
a=glmax(volume,n) 
b=glmin(volume,n) 



do i=1,n 
denom = 1/a 
h1(i) = ((1-(b/a))/(denom*volume(i))) 
enddo 


do i=1,n 
open (unit=10,file="h.dat") 
write (10,7020) h1(i),volume(i),a,b 
7020 format(7f20.8) 
enddo 


m1 = -1. 
z0 = 0. 

nface = 2*ndim 
do e=1,nelv 
do f=1,nface 

c Set Dirichlet for mesh velocity on all boundaries 

if (cbc(f,e,1).ne.'E ') call facev(msk,e,f,z0,nx1,ny1,nz1) 

c Inhomogeneous Dirichlet on cylinder only 

if (cbc(f,e,1).eq.'mv ') then 
call fcaver(xavg,xm1,e,f) 
if (xavg.gt.-1.2) call facev(tmp,e,f,m1,nx1,ny1,nz1) 
endif 
enddo 
enddo 
call axhelm (rhs,tmp,h1,h2,1,1) 

tol = 1.e-4 
imsh = 1 
ifield = 1 
call hmholtz('mshv',basev,rhs,h1,h2,msk,vmult,imsh,tol,200,1) 
call sub2(basev,tmp,n) 

c call outpost(basev,basev,basev,basev,basev,' ') 
c stop 

return 
end 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20180227/7b65e3c0/attachment.html>


More information about the Nek5000-users mailing list