PMDBtool takes one command-line argument, the name of a command script file. It parses the command file and does things like loading and paritioning meshes, load balancing, and computing our metric statistics.
- trace - trace <bool_val>Turn on or off trace output, depending on the boolean argument. A missing argument is taken to mean turn on tracing.
- compress <level>Set the output compression level. Valid compression levels are
none
, for uncompressed output,
compress
, for compression with UNIX compress
(.Z)
gzip
, for compression with gzip (.gz)
gzip9
, for compression with gzip -9
(.gz)
gzip
.
- indir "path" - outdir "path"Sets default input and output directories to the given string. The path string must be quoted. Any input or output files which are given on subsequent lines and which do not have a directory included in their filename will have this path prepended to them before opening. These can be issued multiple times in an execution of the program to change directories on the fly.
- model "file"Loads the model file in
"file.smd"
. This should be done
first, just as it usually is done in a Mesh Database/PMDB application.
This command will call GM_createFromFile()
to load the model file.
- part <type> "file"Load
"file.sms"
file and partition onto all the
processors. <type>
can be inertial or orthogonal.
This command will call pmdb_inertia_rb()
or
pmdb_ortho_rb()
.
- read_sms "file"Load saved PMDB files in
"file.procid.sms"
and
"file.procid.pmdb"
. This command will call
pmdb_read_msh_par()
.
- read_split_sms "file"Load split mesh files in
"file.procid.sms"
. This command
will call pmdb_load_split_sms()
. The interprocessor
links normally stored in the .pmdb
files are generated by
PMDB.
- write_sms "file"Write PMDB files
"file.procid.sms"
and
"file.procid.pmdb"
. This command will call
pmdb_write_msh_par()
.
- metrics "prefix" "infix"Print metric information about the current mesh and partition. This results in a call to
pmdb_metrics();
with the args here
passed as the prefix and infix strings.
- loads max/avg/local/globalPrint values of load (possibly weighted) and the number of regions in the current mesh and partition. Any combination of
max
,
avg
, local
, and global
can be
displayed, with multiple values separated by spaces. max
prints the maximum values on any processors, avg
the
average values, local
the local values from each
processor, and global
the overall totals.
- si max/avg/local/globalCompute and print values of surface index metrics in the current mesh and partition. Any combination of
max
, avg
,
local
, and global
can be displayed, with
multiple values separated by spaces. max
prints the
maximum value on any processor (MLSI), avg
the average
value, local
the local value from each processor, and
global
the overall total (GSI).
- disconn max/avg/local ent_typeCompute and print the number of disjoint connected components in the current mesh and partition. Any combination of
max
,
avg
, and local
can be displayed, with
multiple values separated by spaces. max
prints the
maximum number of components on any processor, avg
the
average count, and local
the local count from each
processor. ent_type
is the type of entity adjacency used
for the calculation, which could be face
,
edge
, or vertex
.
- adjacency max/avg/localCompute and print the number and percentage of partition adjacencies current mesh and partition. Any combination of
max
,
avg
, and local
can be displayed, with
multiple values separated by spaces. max
prints the
maximum number of processors adjacent to any processor,
avg
the average count, and local
the local
adjacency count from each processor.
- duplicates ent_typePrint the number of duplicated partition boundary entities in the current mesh and partition.
ent_type
is the type of
entity, which could be face
, edge
, or
vertex
.
- comm_matrixCompute and print the communication matrix for the current mesh and partition.
- int_matrixCompute and print the interface matrix for the current mesh and partition.
- centroids "file"Write the centroids of all mesh regions on each processor i in a file
file.i.cent
.
- dx <dx_opts> "file"Write Data Explorer files which represent the currently loaded mesh.
<dx_opts>
can include the tokens
color
, bw
, surface
,
3d
, or 2d
. The defaults are
color
and 3d
. Depending on the options
given, one of the following will be called:
pmdb_write_dx()
, pmdb_write_bw_dx()
,
pmdb_write_2d_dx()
, pmdb_write_2d_bw_dx()
,
pmdb_write_sur_dx()
, or
pmdb_write_bw_sur_dx()
.
- refine sphere (x,y,z) r - refine box (x1,y1,z1) (x2,y2,z2)Call the refdref library to refine at all vertices which fall within the given region. For a sphere refinement, (x,y,z) is the center of the sphere and r is the radius. For a box refinement, the 2 points given are the opposite corners of a box in which refinement is to take place. The files
refdref.inp
, which gives the
parameters to the refinement/derefinement library, and the file
meshname.xmt_txt
, which is the Parasolid model
description file, must exist in the working directory to use the
refinement operators.
- refine percentage pctCall the refdref library to mark for refinement a percentage of all vertices in the mesh. pct should be a value between 0 and 1 to indicate what portion of vertices should be marked for refinement. Note that this does not mean an increase by a factor of pct - in fact, the growth in mesh size will be several times greater.
- coarsen sphere (x,y,z) r - coarsen box (x1,y1,z1) (x2,y2,z2)Call the refdref library to mark for coarsening all vertices which fall within the given region. For a sphere refinement, (x,y,z) is the center of the sphere and r is the radius. For a box refinement, the 2 points given are the opposite corners of a box in which refinement is to take place.
- weight sphere (x,y,z) r n - weight box (x1,y1,z1) (x2,y2,z2) nSet the weights for all elements in the given region to
n
. These weights are used rather than the region count
to determine workloads during load balancing. Again, for a sphere
refinement, (x,y,z) is the center of the sphere and r is the radius.
For a box refinement, the 2 points given are the opposite corners of a
box in which refinement is to take place.
- checklinksCall the PMDB link validity-checking routines.
pmdb_check_links()
is called.
- checkmeshCall the MeshTools mesh validity-checking routines.
M_checkAdj()
is called.
Load balancing parameter setting:
- PMDB_LB_SEL_METHOD <method> - PMDB_LB_MAX_ITER <max_iter> - PMDB_LB_MAX_INTERNAL_ITER <max_iter> - PMDB_LB_DEBUG_LEVEL <level> - PMDB_LB_TOLERANCE <tol> - PMDB_LB_PRINT_MIGSTATS <boolean> - PMDB_LB_PRINT_ITBTIMES <boolean> - PMDB_LB_PRINT_ZOLTANTIMES <boolean>These commands set various paramters for PMDB's Iterative Tree Balancing algorithm or PMDB Zoltan interface. Each of these results in a call to
pmdb_set_load_balance_params()
. Valid
values for each are described in the PMDB User's
Manual.
- load_balanceDo Iterative Tree Balancing based on the previously set load balancing paramters. This command will result in a call to
pmdb_load_balance()
.
- repartitionCall Hugues DeCougny's parallel repartitioning function. This does a global, parallel repartitioning using Inertial Recursive Bisection.
- parmetis typeCall one of the ParMetis parallel repartitioning functions. The argument "type" specifies which of the methods to use. See the scorec2metis documentation for details.
- zoltan "param" "value" - zoltanThese use PMDB's interface to the Zoltan Dynamic Load Balancing Library. WIth two string arguments, this command sets the Zoltan parameter "param" to the value specified by "value". With no arguments, this command performs a Zoltan load balancing and PMDB migration to achieve the new distribution. By default, the PMDB Zoltan interface uses Octree Load Balancing with Hilbert indexing and a maintained octree structure.
- migstats [ reset | print | output filename ]
migstats reset
resets the PMDB internal migration stats
counters. It can be called before a refinement, load-balance, or
other operation which may include a migration step to obtain detailed
information about the time spent and number of messages transmitted
during migration.. migstats print
will print out the
stats since the last migstats reset
call. migstats
output filename
will write the stats since the last reset call
to a file filename
.
- modeler [ shapes | parasolid | smd | null]Select which modeler you wish to use.
smd
and
null
are always available, but provide limited or no real
information, respectively. The others require commercial modelers to
be linked, and are likely to be unavailable in many circumstances.
- sleep secondsPut the process to sleep for
seconds
seconds. This is
useful to attach a debugger to a process started in a parallel
environment.
- echo [ all | pid | master ] "message"Echo a message to standard output. The second argument indicates which processes are to perform the echo.
all
means all
processes should print, master
means only the master
process, and a process ID number means just that process. A missing
second argument indicates that the message should be printed by only
the master process.