Difference between revisions of "Sig Turbomachinery Utilities CGNS Converters"

From OpenFOAMWiki
m (foamToCGNS)
(foamToCGNS)
Line 174: Line 174:
 
|-
 
|-
 
| -allowuserdefinedfields
 
| -allowuserdefinedfields
|  
+
| Allow the conversion of non-supported OpenFOAM fields as CGNS user-defined fields
 
|-
 
|-
 
| -case dir
 
| -case dir
Line 180: Line 180:
 
|-
 
|-
 
| -constant
 
| -constant
|  
+
| Explicitly includes the constant directory in the time list
 
|-
 
|-
 
| -doc
 
| -doc
Line 186: Line 186:
 
|-
 
|-
 
| -exportcyclics
 
| -exportcyclics
|  
+
| Export cyclic boundary conditions as periodic CGNS patch.<br>: If the option is not present the cyclic BC will be split into two separate CGNS patches.
 
|-
 
|-
 
| -help  
 
| -help  
Line 192: Line 192:
 
|-
 
|-
 
| -latestTime
 
| -latestTime
|  
+
| Restrict the conversion to the latest available time
 
|-
 
|-
 
| -noZero
 
| -noZero
|  
+
| Explicitly excludes the 0 directory from the time list.
 
|-
 
|-
 
| -rho value   
 
| -rho value   
Line 203: Line 203:
 
| Not supported.
 
| Not supported.
 
|-
 
|-
| -time
+
| -time time
|  
+
| Restrict the conversion to the data available for time 'time'
 
|-
 
|-
 
|}
 
|}
  
 
= Use cases =
 
= Use cases =

Revision as of 20:33, 8 November 2008

1 Introduction

The CFD General Notation System (CGNS) file converters cgnsToFoam and foamToCGNS allow for the conversion back and forth between OpenFOAM cases and files in CGNS format.

The converters support:

  • import and export of grid information
    • importing structured and unstructured grid from CGNS format file
    • exporting OpenFOAM grid format to unstructured grid CGNS format
  • import and export of boundary conditions information, including periodic or cyclic BCs
  • import and export of flow solutions


Using CGNS files, one can easily transfer CFD information like mesh and flow solutions between OpenFOAM and many commercial CFD applications (mesh generators, solvers, etc).

For more information on the CGNS file format, visit the following site: http://cgns.sourceforge.net/

2 Installing the CGNS converters

The CGNS file converters are available from the SourceForge.NET site http://openfoam-extend.wiki.sourceforge.net/ through a Subversion source code repository.

The converters source code currently resides in the Breeder section of the repository, under the TurboMachinery OpenFOAM Special Interest Group (OSIG) section.

For more information on the structure of the Subversion repository for the openfoam-extend project on SourceForge.NET, see the following presentation from the 2nd OpenFOAM Workshop: Open Subversion Repository Access For OpenFOAM

For browsing the openfoam-extend Subversion repository, follow this URL: http://openfoam-extend.svn.sourceforge.net/viewvc/openfoam-extend/

The CGNS converters are based on the following components:

  • cgnslib_2.5  : CGNS Mid-Level library
  • cgnstools_2.5 : optional package from http://cgns.sourceforge.net/. Tools for viewing and editing CGNS files
  • libcgnsoo_3.0 : C++ wrapper for the CGNS Mid-Level library
  • cgnsToFoam  : CGNS file conversion to OpenFOAM
  • foamToCGNS  : OpenFOAM conversion to CGNS file


2.1 Downloading the CGNS converters and companion libraries

The easiest way to retrieve the CGNS converters source code is to download the whole TurboMachinery section of the Breeder from the openfoam-extend Subversion repository.

  • For OpenFOAM 1.5
cd $WM_PROJECT_USER_DIR
svn checkout https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Breeder_1.5/OSIG/TurboMachinery
  • For OpenFOAM 1.4.1
cd $WM_PROJECT_USER_DIR
svn checkout https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Breeder/OSIG/TurboMachinery


It is also possible to download the converters, companion libraries and tutorial individually. Take note however that if the relative installation locations of the different converters components are modified, the files Make/options for cgnsToFoam and foamToCGNS will need to be adjusted accordingly.

For example, for OpenFOAM 1.5:

  • The CGNS converters:
svn checkout https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Breeder_1.5/OSIG/TurboMachinery/applications
  • The companion libraries:
svn checkout https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Breeder_1.5/OSIG/TurboMachinery/src
  • The test cases:
svn checkout https://openfoam-extend.svn.sourceforge.net/svnroot/openfoam-extend/trunk/Breeder_1.5/OSIG/TurboMachinery/tutorials


NB: For the remaining of this document, we will assume that the whole TurboMachinery section of the Breeder_1.5 was download in the directory $WM_PROJECT_USER_DIR

2.2 Compiling the companion libraries

cd $WM_PROJECT_USER_DIR/TurboMachinery/src
./Allclean
./Allwmake

2.3 Compiling the CGNS converters

cd $WM_PROJECT_USER_DIR/TurboMachinery/applications
./Allclean
./Allwmake

3 Testing the CGNS converters

cd $WM_PROJECT_USER_DIR/TurboMachinery/tutorials/cgnsConverters
./Allclean
./Allrun

3.1 Test case: test1

A cgsnsToFoam test case

3.2 Test case: test2

A foamToCGNS test case.

An example for converting periodic boundary conditions

3.3 Test case: test3

Reusing a foamToCGNS output as an inpput for a cgsnsToFoam test case.

An example for converting periodic boundary conditions

4 Basic documentation

4.1 cgnsToFoam

% cgnsToFoam --help

  Usage: cgnsToFoam <CGNS file> [-saveSolutions] [-cyclicRotX value] [-cyclicRotY value] [-cyclicRotZ value] [-mergeTolerance value] [-debug] 
                                [-dryrun] [-case dir] [-cfxCompatibility] [-cyclicMatchFaceTolFactor value] [-matchCyclicBC bc1_name:bc2_name] 
                                [-separatePatches] [-rho value] [-noMeshValidation] [-use2DElementsAsPatches]  [-help] [-doc] [-srcDoc]

Command-line options for cgnsToFoam:

<CGNS file> CGNS filename
-case dir Case directory
-cfxCompatibility Activate the support of specific syntax for ANSYS CFX CGNS field names
-cyclicMatchFaceTolFactor value Tolerance factor for matching cyclic faces. Fraction of the smallest edge length.
Default value= 0.1
-cyclicRotX value Rotation angle for matching cyclic or periodic faces. Rotation about the X axis.
Value in degree.
-cyclicRotY value Rotation angle for matching cyclic or periodic faces. Rotation about the Y axis.
Value in degree.
-cyclicRotZ value Rotation angle for matching cyclic or periodic faces. Rotation about the Z axis.
Value in degree.
-debug Generate more verbose runtime information messages.
-doc Not supported.
-dryrun Process the CGNS file, but do not modify any files from the case.
-help Print usage.
-matchCyclicBC bc1_name:bc2_name Create a cyclic boundary condition using the patches named 'bc1_name' and 'bc2_name'
-mergeTolerance value Tolerance factor for merging duplicate nodes. Fraction of the mesh smallest edge.
Default value=0.1
-noMeshValidation Disable the converter internal mesh validation (checkMesh)
-rho value Value for the volumic density Rho.
: If present, the pressure field will be scaled by '1/value'.
Default value=1.0
-saveSolutions Extract and convert the solutions stored in the CGNS file as OpenFOAM fields
-separatePatches For multi-zones CGNS files:
: If option present: save each zone boundary conditions as a separate boundary condition.
: If option not present: merge all boundary conditions sharing the same name.
-srcDoc Not supported.
-use2DElementsAsPatches Lose all the boundary condition type information


4.2 foamToCGNS

% foamToCGNS -help

  Usage: foamToCGNS [-noZero] [-allowuserdefinedfields] [-exportcyclics] [-case dir] [-constant] 
                    [-rho value] [-latestTime] [-time time]  [-help] [-doc] [-srcDoc]

Command-line options for foamToCGNS:

-allowuserdefinedfields Allow the conversion of non-supported OpenFOAM fields as CGNS user-defined fields
-case dir Case directory
-constant Explicitly includes the constant directory in the time list
-doc Not supported.
-exportcyclics Export cyclic boundary conditions as periodic CGNS patch.
: If the option is not present the cyclic BC will be split into two separate CGNS patches.
-help Print usage.
-latestTime Restrict the conversion to the latest available time
-noZero Explicitly excludes the 0 directory from the time list.
-rho value Value for the volumic density Rho.
: If present, the pressure field will be scaled by 'value'.
Default value=1.0
-srcDoc Not supported.
-time time Restrict the conversion to the data available for time 'time'

5 Use cases