Users are highly encouraged to work through the EPOGS tutorial under chimera3.0/tutorials/epogs.
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) |
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
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.
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
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.
*** 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) |