[Nek5000-users] Domain boundary visualization in VisIt

nek5000-users at lists.mcs.anl.gov nek5000-users at lists.mcs.anl.gov
Thu Feb 4 15:02:11 CST 2010


Hi all,

hoping not to have found a solution to a non-existing problem, I'd like to post
my idea about how to visualize domain boundaries based on their type in VisIt.
That'll come in handy when I want to generate a picture to describe with
colors/gray levels what boundary conditions were used in the simulation.

First, I add the following lines to the .usr file:
"
      real bcscal(lx1,ly1,lz1,lelt) !Scalar for boundary condition visualization
      integer e, f

      ntot   = nx1*ny1*nz1*nelv
      call rzero(t(1,1,1,1,2),ntot)
      call rzero(bcscal,ntot)

c-----Set scalar values for different boundaries
      nface = 2*ndim
      do e=1,nelv
      do f=1,nface
         if (cbc(f,e,1).eq.'P  ') then
            call facev(bcscal,e,f,1.0,lx1,ly1,lz1)
         endif
         if (cbc(f,e,1).eq.'O  ') then
            call facev(bcscal,e,f,2.0,lx1,ly1,lz1)
         endif
         if (cbc(f,e,1).eq.'W  ') then
            call facev(bcscal,e,f,3.0,lx1,ly1,lz1)
         endif
         if (cbc(f,e,1).eq.'v  ') then
            call facev(bcscal,e,f,4.0,lx1,ly1,lz1)
         endif
      enddo
      enddo

      call copy(t(1,1,1,1,2),bcscal,ntot)
"
This will assign different values (1 for periodic, 2 for outflow, ...) to faces
on boundaries of certain types.
"
      ifpsco(1) = .true.
      ifreguo = .false.
      call prepost(.true.,'bcs')
"
This will turn on output of scalar 1 (t(1,1,1,1,2)) and write it out on a GLL
mesh with filename prefix 'bcs'.

In VisIt, I then define equations (Controls->Expressions...) that create new
scalar
variables (wall, periodic, ...), for example for walls:
Variable name: walls
"
if(eq(s1,3), walls=1, walls=0)
"
I then use a "Contour" plot for each variable.

I'd be glad to hear some feedback,
Markus



More information about the Nek5000-users mailing list