(GridTool, VGRID, POSTGRID, PREFACE, USM3D, and ViGPLOT). **************************************************************************** **************************************************************************** 1) project.mapbc (created by GridTool): Patch/flow-boundary-condition file ---------------------------- parameter(mpatch=***) c integer bcpch(mpatch) character*1 text(80) c open(13,file='project.mapbc',form='formatted') c rewind 13 read(13,900)text read(13,900)text read(13,900)text read(13,900)text do 1 ipatch=1,npatch read(13,*)ipatch,bcpch(ipatch) 1 continue c 900 format(80a1) ---------------------------- where: npatch = number of surface patches defining the geometry bcpch = flow boundary condition assigned to each surface patch **************************************************************************** **************************************************************************** 2) project.bc (created by VGRID/POSTGRID): patch/surface-triangle file ---------------------------- parameter(mbf=***) c integer kfac2(mf),kfac3(mf) integer kfac4(mf),kfac5(mf) c open(unit=12,file='project.bc',form='formatted') c write(12,91)nbf,nb1,npatch,igrid write(12,*)'Triangle Surface Patch Nodes' do 92 if=1,nbf write(12,93)if,kfac2(if),kfac3(if),kfac4(if),kfac5(if) 92 continue 91 format(4i8) 93 format(5i8) ---------------------------- where: nbf = number of boundary triangular faces nb1 = number of surface grid points along patch boundaries (sum of NOTE 2a and 2b for project.cogsg description) npatch = number of surface patches igrid = 1 for inviscid grids; 2 for viscous grids kfac2(if) = surface patch number kfac3(if) = node 1 of face if kfac4(if) = node 2 of face if kfac5(if) = node 3 of face if **************************************************************************** **************************************************************************** 3) project.cogsg (created by VGRID/POSTGRID): grid coordinates and connectivity file created on SGI ---------------------------- parameter(mp=***, me=***) c integer int(me,4) real*8 crd(mp,3),t c open(10,file='proj.cogrd',form='unformatted',iostat=ios, & err=555,status='old') c write(10)inew,ne,np,nb,npv,nev,t, & ((int(ie,in),ie=1,ne),in=1,4) write(10)(crd(ip,1),ip=1,np), & (crd(ip,2),ip=1,np), & (crd(ip,3),ip=1,np) c 555 continue ---------------------------- where: int = connectivity array crd = coordinates array ne = total number of cells (tetrahedra) np = total number of grid points (including nb) inew = a dummy variable (= 0) nb = number of grid points on the boundaries npv = number of grid points in the viscous layers (for Euler grids = 0) nev = number of cells in the viscous layers (for Euler grids = 0) t = a dummy variable NOTE: Sequence of point numbers in (crd(..),ip=1,np) are important 1. Boundary points are written first a. Points at corners of 3- and 4-sided patches listed first b. Points on patch edges follow second c. Points interior to patches follow third 2. Remaining interior volume grid points are listed next. **************************************************************************** **************************************************************************** 4) project.iface (created by PREFACE): triangular-face file used by USM3D ---------------------------- parameter(mf=***) c integer kfac1(mf),kfac2(mf),kfac3(mf) integer kfac4(mf),kfac5(mf) c open(4,file='proj.iface',form='unformatted') rewind 4 write(4)nf,nfb,(kfac1(if),if=1,nf), & (kfac2(if),if=1,nface), & (kfac3(if),if=1,nface), & (kfac4(if),if=1,nface), & (kfac5(if),if=1,nface) write(4) (dmin(nc),nc=1,ncell) ---------------------------- where: nf = total number of triangular faces (including surface and interior) nbf = number of boundary triangular faces For if = 1 to nbf, <== boundary faces kfac1(if) = tetrahedral cell number adjacent to face if kfac2(if) = surface patch number kfac3(if) = node 1 of face if kfac4(if) = node 2 of face if kfac5(if) = node 3 of face if For if = nbf+1 to nf, <== interior faces kfac1(if) = "left" cell adjacent to face if kfac2(if) = "right" cell adjacent to face if kfac3(if) = node 1 of face if kfac4(if) = node 2 of face if kfac5(if) = node 3 of face if dmin(nc) = minimum distances from cell "nc" to nearest viscous surface *Note: boundary faces are listed first in this file.