-
Notifications
You must be signed in to change notification settings - Fork 63
chef partition control
split - increase part count
balance - balance the computational load while reducing inter process communications
pre-process - the creation of phasta input data structures
chef's execution is broken into two main stages, adaptation and pre-processing. During adaptation the mesh can be uniformly refined, tetrahedronized, or can be modified to satisfy a size field. After adaptation the mesh can be split to increase the number of parts. Lastly, the PHASTA pre-processor is executed to produce PHASTA inputs. Square brackets indicate an optional procedure.
|------------Adapt----------|--------------|-------Phasta--------|
[ UR ] ----> [ tet ] ------> [split] ----> pre-process
[ size field driven adapt]->
The following options will give users control over (1) the splitting method, (2) the balancing applied prior to and during uniform refinement, tetrahedronization and size-field driven adaptation, and (3) the balancing method applied before pre-processing. Default options are in bold. partitionMethod
and LocalPtn
already existed so we'll keep those names for backward compatibility. Note, rib
is SCOREC's RIB and zrib
is Zoltan's RIB.
partitionMethod
{graph,rib,zrib}
LocalPtn
{1=true,0=false}
preAdaptBalanceMethod
{graph,zrib,parma,none}
midAdaptBalanceMethod
{graph,parma,none}
prePhastaBalanceMethod
{graph,zrib,parma,parma-gap,none}
The chef preAdaptBalanceMethod
flag requires a new meshAdapt flag, shouldRunPreZoltanRib
= {true,false}. The meshAdapt logic will simply run both graph and rib pre-balancing if both shouldRunPreZoltanRib
and shouldRunPreZoltan
are true.
By default the graph and RIB balance and split methods will target a one percent element imbalance. ParMA's imbalance targets will be controlled through the parmaElementImbalance
and parmaVtxImbalance
. Imbalance is defined as maximum part load divided by the average part load. elementImbalance
and vtxImbalance
already exist as parameters.
The following parameters provide control over parma with prePhastaBalanceMethod
set to parma or parma-gap.
parmaLoops
- specify how many times ParMA balaning is applied - additional loops can increase quality at the expense of run time
parmaVerbosity
- specify the output level of parma - the higher the value the more output is produced