|
|
|||||||||||||||||||||||||||
|
Reorder
Reorder takes meshes (Mesh.c3d) output by cubes and reorders them using a space-filling-curve based ordering. You should look at it as a backend for cubes. flowCart takes these re-ordered meshes and can partition them on-the-fly onto any number of processors. Even if you're going to run on a single CPU (unpartitioned domain) its worth reordering, since reordered meshes have better locality and will execute faster on cache-based machines. Reorder is the key for flowCart's domain-decomposition strategy Starting with release of Cart3d_v1.3, you can reorder automatically from within cubes using the "-reorder" command line option to cubes. This option tells cubes to do the reordering upon output of the mesh, and names the output mesh Mesh.R.c3d, just as if you ran reorder externally. Reordering from within cubes streamlines the meshing-simulation cycle somewhat, but doesn't offer all the choices as the standalone reorder code does, it also increases cubes' memory requirements somewhat. Do either, your choice. A "space-filling curve" is a curve which provides a map from a 2-D plane or a 3-D space to a 1-D interval. They have many interesting mathematical characteristics and there are some excellent resources on the web for getting acquainted with space-filling-curves. We have a paper on the various uses of space-filling-curves in Cart3D. Otherwise, a good place to start is:
Reorder takes both
the Mesh.c3d and the meta information in
Mesh.c3d.Info output by cubes, and
returns the reordered mesh to Mesh.R.c3d. It
usually runs pretty quick, since its runtime is
dominated by an internal call to qsort. The
usual unix command line is
simply:
top% reorder Command line options can be used to specify either a different Mesh.c3d.Info file (-m infoFileName) or a different mesh file (-i MeshFileName). By default, the output file name is "Mesh.R.c3d" to remind us that the mesh has been reordered and is ready for flowCart to do the domain-decomposition. You can also choose between Morton and Peano-Hilbert orderings, with Peano-Hilbert being used by default. After reorder executes, you can delete the original Mesh.c3d, since you wont need it anymore. Here is the full usage
statement:
|