Sculpt Process Control

Options for controlling the execution of Sculpt. Sculpt is a parallel application that uses MPI to distribute and build the hex mesh on multiple processors. The -j or num_procs option is normally used to specify the number of processors to use. Sculpt will write a separate exodus file for each processor, which can be joined into a single file using the epu utility. While any number of processors may be used, you would normally use a -j value less than or equal to the number of cores available on your hardware.

Sculpt options can be specified directly from the command line using the "short" commands, or from an input file where the longer forms of the commands are used. Since an input file can be commented and modified, it is generally the recomended method for running Sculpt.


Process Control 		--process 	-pc
  --num_procs,		-j <args>	Number of processors requested
  --input_file,		-i <args>	File containing user input data
  --debug_processor,	-D <args>	Sleep to attach to processor for debug
  --quiet,		-qt		Supress output                        
  --print_input,	-pi		Print input values and defaults then stop
  --version,		-vs		Print version number and exit
  --threads_process,	-tpp <args>	Number of threads per process
  --iproc,		-ip <args>	Number of processors in I direction
  --jproc,		-jp <args>	Number of processors in J direction
  --kproc,		-kp <args>	Number of processors in K direction
  --build_ghosts,	-bg		Write ghost layers to exodus files for debug

Sculpt Command Summary

Number of Processors

Command: num_procs     Number of processors requested

Long Name:     --num_procs 
Short Name:     -j 
Argument Type:   integer > 0 
Command Description:

The number of processors that Sculpt will use to generate the mesh. The Cartesian domain will be divided into roughly equal sizes based on this value and the mesh for each portion of the domain generated independently. Continuity across processor boundaries is maintained with MPI (Message Passing Interface). Each processor will write a separate Exodus II file to disk containing its portion of the domain. The Sandia SEACAS tool, "EPU" can be used to join parallel files into a single file.

If not specified on the command line, the number of processors used will be 1. For additional control on the arrangement of processor domains see arguments iproc, jproc, kproc.


Input File

Command: input_file     File containing user input data

Long Name:     --input_file 
Short Name:     -i 
Argument Type:   file name with path 
Command Description:

Rather than specifying a complicated series of arguments on the command line, an input file may also be used. An input file is a simple text file containing all arguments and parameters to be used in the current sculpt run. Input files are normally expected to have a ".i" extension. Arguments used in the input file are limited to the Long Names indicated for each command. User comments can also be made anywhere in the file but must follow a "$" sign. The argument assignments that are intended to be read must be contained within a "begin sculpt" and "end sculpt" block. All arguments may use upper or lower case and can optionally use "=" between the command and its parameter. The following is an example input file:

      BEGIN SCULPT
        stl_file = "mygeom.stl"
        cell_size = 0.5
        exodus_file = "mymesh"
        mesh_void = true  $TRUE or ON is optional for this command
      END SCULPT

    

The following is an example of using an input file with sculpt:

  sculpt -j 4 -i myinput.i
    

Note that the number of processors (-j) should always be used on the command line and cannot be included in the input file. Relative or absolute paths for files may also be used.


Debug Processor

Command: debug_processor     Sleep to attach to processor for debug

Long Name:     --debug_processor 
Short Name:     -D 
Argument Type:   integer >= 0 
Command Description:

Used for debugging. All processes will sleep until the designated process is attached to a debugger. Note: value of 0 corresponds to first processor, 1 to second, etc.


Quiet

Command: quiet     Supress output                        

Long Name:     --quiet 
Short Name:     -qt 
Argument Type:   no argument 
Command Description:

Suppress any output to the command line from Sculpt as it is running.


Print Input

Command: print_input     Print input values and defaults then stop

Long Name:     --print_input 
Short Name:     -pi 
Argument Type:   no argument 
Command Description:

Display all input parameters and defaults used in the current Sculpt run to the output window and then stop. No mesh (or volume fractions) will be generated.


Version

Command: version     Print version number and exit

Long Name:     --version 
Short Name:     -vs 
Argument Type:   no argument 
Command Description:

Prints Sculpt version information and exits.


Threads Per Processor

Command: threads_process     Number of threads per process

Long Name:     --threads_process 
Short Name:     -tpp 
Argument Type:   integer > 0 
Command Description:

This option is currently experimental and under development. Sculpt may use shared memory parallelism to improve performance. When built with the Kokkos library, some algorithms in sculpt will use shared memory parallel threads in addition to MPI distributed memory parallelism (MPI+X). Currently this option is implemented only for surface and volume Laplacian smoothing algorithms. This option may not be available requiring a custom build of sculpt to be used. Check with developers if you would like to use this option.


Number of processors in I

Command: iproc     Number of processors in I direction

Long Name:     --iproc 
Short Name:     -ip 
Argument Type:   integer > 0 
Command Description:

Arguments iproc, jproc and kproc provide user control over the processor decomposition in I, J, and K directions respectively. iproc * jproc * kproc must equal the number of processors specified on the command line using the -j option.


Number of processors in J

Command: jproc     Number of processors in J direction

Long Name:     --jproc 
Short Name:     -jp 
Argument Type:   integer > 0 
Command Description:

Arguments iproc, jproc and kproc provide user control over the processor decomposition in I, J, and K directions respectively. iproc * jproc * kproc must equal the number of processors specified on the command line using the -j option.


Number of processors in K

Command: kproc     Number of processors in K direction

Long Name:     --kproc 
Short Name:     -kp 
Argument Type:   integer > 0 
Command Description:

Arguments iproc, jproc and kproc provide user control over the processor decomposition in I, J, and K directions respectively. iproc * jproc * kproc must equal the number of processors specified on the command line using the -j option.


Write the ghost layers for debug

Command: build_ghosts     Write ghost layers to exodus files for debug

Long Name:     --build_ghosts 
Short Name:     -bg 
Argument Type:   no argument 
Command Description:

If set, this option will dump the ghost hexes at the boundaries of processor domains to the exodus files. This is used only for debugging.