UG_IO SimSys VGRID 3D Grid File Type
A VGRID file contains a tria face boundary surface grid and (optionally) a tetrahedral element volume grid. Multiple output files are written named case_name.mapbc, case_name.bc, and case_name.cogsg. Additional information on VGRID file formats may be available at The Geometry Laboratory at NASA Langley Research Center.
The UG_IO implementation of the VGRID file type assumes three separate file types with fixed file formats.
1) case_name.mapbc: patch/flow-boundary-condition file, ASCII formatted
2) case_name.bc: patch/surface-triangle file, ASCII formatted
3) case_name.cogsg: x,y,z coordinates of the grid nodes and tetrahedral node
connectivity, FORTRAN unformatted real*8 file format with big endian
ordering
The following file descriptions were taken from a FUN3D sample case description.
1) case_name.mapbc: Patch/flow-boundary-condition file
----------------------------
parameter(mpatch=***)
c
integer bcpch(mpatch)
character*1 text(80)
c
open(13,file='case1_u.mapbc',form='formatted')
c
read(13,900)text
read(13,900)text
read(13,900)text
read(13,900)text
do ipatch=1,npatch
read(13,*)jpatch,bcpch(ipatch),idum1,idum2,idum3
enddo
c
900 format(80a1)
c
----------------------------
where
text = text line
npatch = number of surface patches defining the geometry
jpatch = surface patch index
bcpch = flow boundary condition assigned to surface patch "jpatch"
idum1 = dummy variables
idum2 = dummy variables
idum3 = dummy variables
2) case_name.bc: patch/surface-triangle file
----------------------------
c
parameter(mbf=***)
c
integer fapch(mbf),fnode(mbf,3)
character*1 text(80)
c
open(unit=12,file='case1_u.bc',form='formatted')
c
read(12,*)nbf,nbc,npatch,igrid
read(12,900)text
do if=1,nbf
read(12,*)jf,fapch(if),fnode(if,in),in=1,3)
enddo
900 format(80a1)
c
----------------------------
where
nbf = number of boundary triangular faces
nbc = number of surface grid nodes along patch boundaries (curves)
npatch = number of surface patches
igrid = 1 for inviscid grids; 2 for viscous grids
text = text line
jf = triangle index
fapch(if) = surface patch index containing surface triangle "if"
fnode(if,in) = node "in" of triangle "if"
Note: triangle connectivities are according to the right-hand rule with
the outward normals pointing into the computational domain.
3) case_name.cogsg: x,y,z coordinates of the grid nodes and tetrahedral
node connectivity
----------------------------
c
parameter(mp=***, mc=***)
c
real*8 crd(mp,3),t
integer cnode(mc,4)
c
open(10,file='case1_u.cogsg',form='unformatted',iostat=ios,
& err=555,status='old')
c
read(10)inew,nc,npo,nbn,npv,nev,t,
& ((cnode(ic,in),ic=1,nc),in=1,4)
read(10)(crd(ip,1),ip=1,npo),
& (crd(ip,2),ip=1,npo),
& (crd(ip,3),ip=1,npo)
read(10)izero
c
555 continue
c
----------------------------
where
inew = a dummy variable (integer)
nc = number of tetrahedral cells
npo = total number of grid nodes (including nbn)
nbn = number of grid nodes on the boundaries (including nbc)
npv = number of grid points in the viscous layers (=0 for Euler grids)
ncv = number of cells in the viscous layers (=0 for Euler grids)
t = a dummy variable (real - double)
cnode(ic,in) = node "in" of the tetrahedral cell "ic"
crd = x, y, and z coordinates
izero = 0, indicating the end of the file
Note 1: the first "nbn" coordinates listed in this file are those of
the boundary nodes.
Note 2: tetrahedral cell connectivities are given according to the
right-hand rule (3 nodes of the base in the counter-clockwise
direction followed by the 4th node.)