Skip to content

Getting Started

David Appelhans edited this page Feb 5, 2019 · 3 revisions

Welcome to the UMT wiki!

Compiling UMT is covered in the README.

To get started running a problem, you must create an appropriate input grid file. This file is supplied as an argument when you execute UMT and has the .cmg ending.

The cmg file specifies the XYZ mpi processor decomposition and the starting number of local zones per MPI process as well as several inputs that are either derived from the mpi decomposition or that users will not often be changing. The .cmg file itself is cumbersome to edit, so when generating new layouts please use the provided mkcmg.sh script to generate a cmg file.

Using the script to generate a 8x8x4 MPI layout with 323232 zones per rank looks like this

  1. Edit the first few lines of the mkcmg.sh script to your desired MPI layout, e.g.
px=8
py=8
pz=4
  1. Run mkcmg.sh, supplying a number of zones for each mpi rank and directing the output to a file named *.cmg

mkcmg.sh 32 > 8x8x4_32.cmg

For example, the following cmg file would be be generated (suitable for running with 64 nodes with 4 mpi processes per node (256 total MPI processes) ).

#processor block decomposition
sms(8,8,4)
#Always specify blocks in block base numbering
blk(on,0:7,0:7,0:3)

# tag boundary faces
tag("xMinFaces",face,(0:0,0:8,0:4))
tag("xMaxFaces",face,(8:8,0:8,0:4))
tag("yMinFaces",face,(0:8,0:0,0:4))
tag("yMaxFaces",face,(0:8,8:8,0:4))
tag("zMinFaces",face,(0:8,0:8,0:0))
tag("zMaxFaces",face,(0:8,0:8,4:4))

# define number of zones in each axis
numzones(32,32,32)

#Hex subdivisions
sub(10%,0:7, 0:7, 0:3,(7,0,0,0)) #7 hex
seed(10)

The sms() line gives the MPI decomposition as 8x8x4 and the numzones(x,y,z) line gives the local number of zones in the x,y, and z directions. The tag faces and block boundary faces can be derived from the mpi decomposition, which is why it is easier to leave this to the mkcmg.sh script.

The hex subdivision line controls the amount of artificial refinement done on zones to create an "unstructured mesh" benchmark. For this reason the number of zones actually use per MPI rank will be greater than 323232.

Clone this wiki locally