POGS Version 20.6

Authors

William M. Chan, Andrew M. Chuen, and Shishir A. Pandya

Date

April, 2026.

Description

This tool starts with the discrete representation of the geometry surface faces and edges, the topological relationship between the surface faces and edges, and generates the overset structured grid system and input files needed to run the flow solver and component aerodynamic loads computation tool. The discrete faces and edges, and their topological relationship, currently should originate from a BREP solid representation of the geometry (output files from egads2srf). However, the scheme implemented in pogs does not rely on anything special about a BREP solid. If above files generated by egads2srf are available via alternative methods, it is possible to start the auto-meshing process with pogs using the "-nopro" option on the command line (see below).

Users are highly encouraged to work through the EPOGS tutorial under chimera3.0/tutorials/epogs.

Summary of Input Files

The input files needed by pogs include the following (all are auto-generated from running egads2srf). Files needed by the "-nopro" option are marked by (*).

Usage

There are three modes for running pogs:
  1. Generate meshes and input files for a single body.
  2. Assemble meshes and input files for multiple bodies with multiplicity.
  3. Split meshes and input files for a grid system where one or more grid block's x,y,z,ib data exceed 32-bits. Each mesh in the resulting split-grid system will fit inside a 32-bit record
  4. .

Generation of grid system and various input files for single body

  pogs [-arcse arc] [-mdvopt vopt] [-nopro] [-nosplitg] [-noautosplay] [-oflbox] [-genbox boxopt]  
       [-dcfmix] [-dcfpogs] [-dcfxry] [-xdfrac xf] [-newnamlst] [-start startloc] [-stop stoploc] < pogs.i


Assembly of grid system and various input files for multiple-bodies with multiplicity
 
  pogs -combinebods nbody -bodymult bmults -bodyname bnames


Splitting of meshes and input files for a grid system with large single grid block(s)
 
  pogs -splitsys -npmaxsp npsp

All arguments are optional. If omitted, the defaults in the following table are used. A log file called "pogs.log" is automatically generated that contains the most recent command line arguments.

Argument Description Default
arc Arc length for auto-activation of thin face logic (typically set to arc length of finite-thickness trailing edge) not activated
vopt Near-body volume grid normal marching distance option (1=constant, 2=variable) 2
nopro Deactivate projection to geometry defined in input stp, igs or egads file. Starting point does not require running egads2srf first provided the following files are supplied: rootname.{gcomp,i.tri,uvin,cur,topo,pogs.i} project to geometry
nosplitg Turn off automatic grid splitting of large single block grids with grid sizes exceeding 32-bit record marker limit. Write all volume grid files with unsplit grids in plot3d multiple grid binary format auto split
noautosplay Deactivate auto splay adjustment scheme in near-body volume grids to improve adjacent mesh overlap auto splay activated
oflbox Generate off-body Cartesian grids using OVERFLOW option not activated
boxopt Off-body Cartesian grid option (2=single box grid with uniform core and stretched outer region to far field, 4=one box grid for each component, 5=same as 4 plus single encompassing box grid, 6=same as 5 plus telescoping layers of box grids extending to far field 5
dcfmix Activate mixed-mode for domain connectivity: near-body connectivity performed in pogs (output XINTOUT/CINTOUT), off-body connectivity performed by flow solver activated
dcfpogs Domain connectivity performed by pogs for entire volume grid system (output XINTOUT/CINTOUT) not activated
dcfxry Domain connectivity to be performed manually using X-ray hole cut approach: X-ray maps have to be manually generated; first estimate of hole-cut instructions written to XRINFO blocks in OVERFLOW nameless input file not activated
xf Hole-cut offset distance for off-body grids = xf x local near-body volume grid marching distance (0.0 < xf < 1.0) 0.5
newnamlst Activate new namelist format with reduced input for auto-generated OVERFLOW nameless input file (version ? or newer) not activated
startloc Starting location for running pogs. Allowed options: volgen (needs go.sur, go.sub, go.bc), boxgen (needs, nb.vol, go.sub, go.bc), vdocona (needs go.vol, go.sub, go.bc) none-specified => starting from surface mesh generation
stoploc Stopping location for running pogs. Allowed options: edgearc, go.sur, nb.vol, go.vol, ga.vol. Advanced users: splitr.cur, fmrecon.sur, thinf.sur nm.sur, em2.cur, enm.sur, gs.sur minhole. none-specified => going to end of domain connectivity
nbody Number of disjoint bodies in configuration to be assembled. Files for each body assumed to be located in directories b1, b2, ... b[nbody] 1
bmults String containing nbody integers separated by commas for specifying multiplicity of each body (e.g., "1,4,4" for body 1 with multiplicity 1, bodies 2 and 3 with multiplicity 4) 1
bnames String containing nbody names separated by commas for specifying name of each body. Auto-generated grid names are based on the body names, body multiplicities and component names (e.g., "Mainbody,CCW-Blade,CW-Blade"). -
npsp Maximum number of grid points allowed in a single grid. Grid splitting will occur automatically if the number of grid points exceeds npsp. 32000000 (32 million)

Typical Workflow for Single Body

The pogs workflow for creating the grid system and input files for a single body is as follows ([n]=001 for body 1, ...).

1. Generate surface mesh system with iblanks (node, edge and face meshes) stored in go.sur by pogs [args] -stop go.sur < rootname.[n].pogs.i >! p.o 2. Generate near-body volume mesh system stored in nb.vol by restarting from surface grids step pogs [args] -start volgen -stop nb.vol < rootname.[n].pogs.i >! p.o 3. Perform repairs on mesh overlap or negative Jacobian by substituting manually repaired grids into nb.vol. Adjustments in the go.sub file may be needed if grid dimensions are altered.

4. Generate off-body volume mesh system by restarting from near-body volume grids step (near and off-body volume grid system stored in go.vol) pogs [args] -start boxgen -stop go.vol < rootname.[n].pogs.i >! p.o 5. Compute domain connectivity data by restarting from off-body volume grids step (final volume grid system with hole-cut blanks stored in ga.vol) pogs [args] -start vdocona -stop ga.vol < rootname.[n].pogs.i >! p.o

Typical Workflow for Multiple Bodies with Multiplicity

The pogs workflow for assembling the grid system and input files for multiple bodies with multiplicity is as follows.
 
     pogs -combinebods nbody -bodymult bmults -bodyname bnames

This option assumes there are nbody subdirectories named b1, b2, ... b[nbody] where each subdirectory contains a standalone run with results from egads2srf and pogs (or another tool like Bladegen) for a single body (BREP solid). Files needed in each subdirectory include

It is assumed the go.vol each subdirectory contains one off-body box grid in the last slot that will be removed in the combinebods process. This option will create the following files for the combined grid system.

Typical Workflow for Cases with Extremely Large Single Block Grids

For cases where extra-fine grids are to be generated, it is possible that the grid data for a single grid block exceeds the 32-bit record marker limit for a standard fortran unformatted file. By default, pogs will auto-detect such grid systems and write the grid file in binary format where no splitting is performed on the grids. All associated data and input files such as CINTOUT, fomoco.i, over.namelist are written for the unsplit grid system. Users of the LAVA flow solver can proceed normally from here. Users of OVERFLOW need to perform the splitsys step below to split the grid system.

Run pogs with the -splitsys option to create a split-grid system where all grids fit within a 32-bit record marker. The maximum number of grid points allowed in a single grid can be specified using the -npmaxsp command line input. Grid and input files for the split-grid system are named nb.sp.vol, go.sp.vol, ga.sp.vol, CINTOUT_NOGBOX.sp, fomoco.sp.i, over.sp.namelist.


      pogs -splitsys -npmaxsp npsp
    

Treatment of Input Files for OVERFLOW, LAVA, MIXSUR/OVERINT/USURP

The namelist input parameter file for the OVERFLOW flow solver and the boundary conditions input file for the LAVA flow solver are automatically created in over.namelist and go.bc, respectively. The DCF mode input blocks to the OVERFLOW namelist input are automatically written to over.namelist if the -dcfmix or -dcfxry options are activated. If the -dcfxry option is activated, a first guess at the hole cut instructions using X-ray maps is also provided. It is assumed an X-ray map is created for each component defined in the rootname.[n].gcomp file. The order of the X-ray maps is assumed to be the same as the order of the components defined in the .gcomp file.

The input file for FOMOCO forces/moments computation tools MIXSUR and OVERINT are created in fomoco.i. Default components are defined from the specified geometric components in rootname.[n].gcomp.

Useful data for manual hole-cutting using X-rays is provided in xrinfo.txt. Information includes list of grids belonging to each component, and list of collar grids connected to each component.

The volume mesh domain connectivity function in pogs creates both an XINTOUT and a CINTOUT file containing the domain connectivity iblanks, fringe points and donor stencils data. Newer versions of OVERFLOW accepts the CINTOUT format which is the same as the INTOUT format. These files are used when the -dcfmix or the -dcfpogs options are activated.

Summary of Output Files

Since EPOGS is partially considered a research code, a lot of files are created for diagnostic purposes. The relevant files for the general user are summarized below. The following files may be of interest to the advanced users for diagnostic purposes only.

File Formats of .topo Files

   *** Full-body (isym=0), filename: rootname.topo ***

   read(*,*) ism,nedge,nface,scale
   do i=1,nedge
      read(*,*) enum,face1,sense1,face2,sense2
   enddo


   *** Symmetric-body full-body topology (isym=11/12/13), filename: rootname.topo ***

   read(*,*) isym,nedge,nface,scale
   do i=1,nedge
      read(*,*) enum,face1,sense1,face2,sense2,etype,esymp
   enddo


   *** Symmetric-body half-body topology (isym=11/12/13), filename: rootname.half.topo ***

   read(*,*) isym,nedgeh,nfaceh,scale
   do i=1,nedgeh
      read(*,*) enum,face1,sense1,face2,sense2
   enddo
   read(*,*) nfaceh,nface
   do i=1,nfaceh
      read(*,*) idnew,idorig,fsymp
   enddo
   read(*,*) nopen
   do i=1,nopen
      read(*,*) eid, esym
   enddo

Variable Description
isym = 0 full-body
isym = 11/12/13 full-body with symmetric option for symmetry about x/y/z = 0
nedge number of non-degenerate edges on full-body
nedgeh number of non-degenerate edges on half-body
nface number of faces on full-body
nfaceh number of faces on half-body
scale scale factor (for unit conversion)
nopen number of open edges for isym=11/12/13 half-body
enum edge id
face1 face id on one side of edge (>0 : normal is pointing out, <0 : normal is pointing in)
sense1 sense of edge relative to face1 (1 = face1 is on left side of + directed edge, -1 = face1 is on left side of - directed edge)
face2 face id on the other side of edge (>0 : normal is pointing out, <0 : normal is pointing in)
sense2 sense of edge relative to face2 (1 = face2 is on left side of + directed edge, -1 = face2 is on left side of - directed edge)
etype = 0 edge lies along symmetry plane
etype = 1/2/3 edge lies completely on + side of x=0/y=0/z=0 symmetry plane
etype = -1/-2/-3 edge lies completely on - side of x=0/y=0/z=0 symmetry plane
esymp = 0 edge has no matching edge id on opposite side of symmetry plane
esymp > 0 edge id of matching edge on opposite side of symmetry plane
fsymp = 0 face has no matching face id on opposite side of symmetry plane
fsymp > 0 face id of matching face on opposite side of symmetry plane
eid > 0 edge id of open edge
esym > 0 symmetry plane where open edge lies (1: x=0, 2: y=0, 3: z=0)

Last modified: Mon Apr 27 13:00:00 PDT 2026