-
Notifications
You must be signed in to change notification settings - Fork 78
CFmesh format for parallel I O
COOLFluiD has its own file format, named "CFmesh", for parallel I/O of mesh and solution. Only one CFmesh file is needed to start a simulation and only one CFmesh file will be created as output. This means that all info appearing in the file (e.g. counts, IDs) are global. In order to start a simulation from a different format (e.g. CGNS, Gmsh, GAMBIT, TECPLOT), suitable converters to the CFmesh format must be implemented (if not available yet).
The CFmesh format is available in two versions: ASCII and binary (recent addition). The latter is highly recommended for 3D simulations, since the corresponding I/O algorithms can be up to 3 orders of magnitude faster in parallel.
Here follows a detailed description of the ASCII format. The file works with keywords, all starting with a "!"
. The same string keywords and file structure (including spaces after keywords) is kept also in the binary format, while integer and flops are replaced by corresponding binary entries, instead.
The header includes some versioning info.
!COOLFLUID_VERSION 2013.9
(COOLFluiD version)
!COOLFLUID_SVNVERSION 15166M
(SVN revision number)
!CFMESH_FORMAT_VERSION 1.3
(CFmesh format version)
Then, some global counts follow.
!NB_DIM 2
(spatial dimension of the problem: can be 1,2 or 3)
!NB_EQ 4
(number of equations, i.e. number of independent variables)
!NB_NODES 1670 0
(number of mesh vertices and a "0" kept for backward compatibility)
!NB_STATES 3178 0
(number of state vectors and a "0" kept for backward compatibility)
!NB_ELEM 3178
(number of elements, i.e. cells)
Note: in a mesh with isoparametric elements (e.g. P1-P1 FEM), !NB_NODES
= !NB_STATES
, otherwise (e.g. in FVM), !NB_NODES
differs from !NB_STATES
.
Note: In a mesh for cell-centered FVM !NB_STATES
= !NB_ELEM 3178
.
!NB_ELEM_TYPES 1
(number of element types: it is >1 for hybrid 2D and 3D meshes)
!GEOM_POLYORDER 1
(order of the polynomials for the geometric representation)
!SOL_POLYORDER 1
(order of the polynomials for the solution representation)
Note: In a mesh for cell-centered FVM !SOL_POLYORDER 0
.
!ELEM_TYPES Triag
(list of the element type names: "Line", "Triag", "Quad", "Tetra", "Pyram", "Prism", "Hexa").
!NB_ELEM_PER_TYPE 3178
(list of numbers of elements per element type)
!NB_NODES_PER_TYPE 3
(list of numbers of nodes per element type)
!NB_STATES_PER_TYPE 3
(list of numbers of state vectors per element type)
Note: In a mesh for cell-centered FVM !NB_STATES_PER_TYPE 1
.
Connectivity data for elements follow.
!LIST_ELEM
(list of element-node and element-state connectivities)
38 39 40 0
(node IDs followed by state IDs in each line, 3 + 1 in this FVM example)
0 158 159 1
(node IDs followed by state IDs in each line, 3 + 1 in this FVM example)
...
Then, data for Topological Region Sets (TRS) and Topological Regions (TR) are provided.
!NB_TRSs 2
(number of boundary super patches, a.k.a. TRSs, in the mesh)
!TRS_NAME SuperOutlet
(name of the first TRS coming from the original mesh generator file)
!NB_TRs 3
(number of boundary patches, a.k.a. TRs, in which current TRS is divided)
!NB_GEOM_ENTS
40 40 40 (list of numbers of geometric entities per TR)
!GEOM_TYPE Face
(type of the geometric entity)
!LIST_GEOM_ENT
(list of geometric entity connectivities)
2 1 0 159 1
(number of nodes -2- and number of states -1- for this face, node IDs followed by state IDs in each line)
2 1 1 0 7
(number of nodes -2- and number of states -1- for this face, node IDs followed by state IDs in each line)
...
!TRS_NAME SuperInlet
(second TRS coming from the original mesh generator file)
!NB_TRs 1
!NB_GEOM_ENTS 40
!GEOM_TYPE Face
!LIST_GEOM_ENT
...
Note: in the case of a FVM mesh (as in the example), the single state ID which is provided for boundary faces is the neighboring cell ID.
Note: in the case of a P1-P1 FEM mesh, 2 node IDs and 2 state IDs must be provided for each face. The previous example becomes:
2 2 0 159 0 159
2 2 1 0 1 0
Coordinates of mesh vertices.
!LIST_NODE
(list of the node coordinates: !NB_DIM
entries per line)
2.50000000000000e-02 0.00000000000000e+00
(x,y for nodeID 0)
5.00000000000000e-02 0.00000000000000e+00
(x,y for nodeID 1)
...
Values of the state entries, i.e. solution unknowns from which a simulation can be restarted.
!LIST_STATE 0
(list of the states followed by an integer: 0 means without solution, 1 means with solution)
Only if !LIST_STATE 1
is given, the solution follows (!NB_EQ
entries per line):
3.50000000000e-01 5.00000000000e+02 0.00000000000e+00 1.00000000000e-03
3.80000000000e-01 5.10000000000e+02 0.00000000000e+00 1.00000000000e-03
...
The files always ends with the !END
keyword.
The COOLFluiD team is involved and open to new collaborations in Horizon2020, ESA and other research projects dealing with complex multi-disciplinary problems and computational challenges.
Training sessions and consulting services can also be provided on demand.
For any request or suggestions please contact [email protected]
Parallel mesh decomposition
High-performance computing (strong scaling on NASA Pleiades for 1/2 billion-cells 3D grid)
Chemically reacting flows and plasma
Complex all-speed flow simulations