892
892
## purposes. They are subject to change and may not be in the final "release".
893
893
element zoltan_options {
894
894
## Select which partitioner to use during all but the last adapt iteration.
895
## Graph partitioners available are ParMETIS and Zoltan PHG. The Zoltan
896
## PHG hypergraph partitoner is also available.
897
## Default is the Zoltan PHG graph partitioner.
895
## Default is the Zoltan PHG graph partitioner which gives good results in
898
897
element partitioner {
899
## Use the ParMETIS graph partitioner. ParMETIS setup to match as
900
## closely as possible the setup used previously by Sam.
904
## Use the PT-Scotch graph partitioner.
908
## Use the Zoltan PHG partitioner.
910
## Select the partitioning method you would like used by Zoltan PHG.
911
## Currently hypergraph partitioning is the simplest implementation
912
## and can produce non-contiguous partitions for certain problems.
899
## Use the Zoltan PHG partitioner (recommended).
901
## Select the partitioning method you would like used by Zoltan PHG.
902
## For intermediate partitioning we recommend using 'graph' as 'hypergraph'
903
## ignores edge weighting.
908
## Use the ParMETIS graph partitioner. ParMETIS setup to match as
909
## closely as possible the setup used previously by Sam.
913
## Use the PT-Scotch graph partitioner.
918
## Choose whether to repartition or partition the mesh at each adapt iteration.
919
## Repartitioning results in a smaller amount of data migration between processes
920
## and hence is cheaper. The default option is
921
## to repartition the mesh each iteration and then fully partition the mesh on the
922
## final iteration to create a well balanced mesh.
923
element lb_approach {
924
"REPARTITION"|"PARTITION"
918
927
## Select which partitioner to use after the final adapt iteration.
919
## Graph partitioners available are ParMETIS and Zoltan PHG. The
920
## Zoltan PHG hypergraph partitoner is also available.
921
## Default is the ParMETIS graph partitioner.
928
## Default is the Zoltan PHG hypergraph partitioner which gives good results in most
922
930
element final_partitioner {
923
## Use the ParMETIS graph partitioner. ParMETIS setup to match as
924
## closely as possible the setup used previously by Sam.
928
## Use the PT-Scotch graph partitioner.
932
## Use the Zoltan PHG partitioner.
934
## Select the partitioning method you would like used by Zoltan PHG.
935
## Currently hypergraph partitioning is the simplest implementation
936
## and can produce non-contiguous partitions for certain problems.
932
## Use the Zoltan PHG partitioner (recommended).
934
## Select the partitioning method you would like used by Zoltan PHG.
935
## For final partitioning we recommend using 'hypergraph' which ignores edge
936
## weighting but can produce very well balanced partitions.
941
## Use the ParMETIS graph partitioner. ParMETIS setup to match as
942
## closely as possible the setup used previously by Sam.
946
## Use the PT-Scotch graph partitioner.
951
## Choose whether to repartition or partition the mesh at each the final adapt iteration.
952
## Repartitioning results in a smaller amount of data migration between processes
953
## and hence is cheaper. The default option is
954
## to repartition the mesh each iteration and then fully partition the mesh on the
955
## final iteration to create a well balanced mesh.
956
element lb_approach {
957
"PARTITION"|"REPARTITION"
942
960
## Element quality cut off.
943
961
## Elements with a quality greater than this will be liable to be
944
962
## on the parition boundary. Below this, they will be free to be adapted
945
## and improved. Range is 0 to 1, with default 0.6
963
## and improved. Range is 0 to 1, with default 0.1.
946
964
## This should be set to the same value as used for the quality option
947
## in libmba2d or libmba3d
965
## in libmba2d or libmba3d if using these libraries.
948
966
element element_quality_cutoff {
953
971
## The imbalance is computed as the maximum load divided by the average load.
954
972
## A value for load_imbalance_tol of 1.2 indicates that 20% imbalance is okay.
955
973
## A high value for this parameter (~1.5) could see Zoltan produce poorer partitions
956
## but be able to move the partition boundaries easier to allow adaption. For some
957
## problems where the partitioner creates empty partitions lowering this (~1.075) will
958
## force Zoltan to create more evenly balanced partitions (no empty ones) but may
959
## require more adapt iterations to produce a fully adapted final mesh.
974
## but be able to move the partition boundaries easier to allow adaption.
975
## The default value is 1.5.
960
976
element load_imbalance_tolerance {
979
## Final load imbalance tolerance.
980
## The amount of load imbalance the partitioning algorithm should deem acceptable on the
981
## final adapt iteration. It is assumed that the mesh is well adapted by the final partition
982
## and hence we no longer worry about locked nodes. The aim is to achieve a well balanced partition.
983
## A low value is recommended. The default value is 1.03.
984
element final_partition_load_imbalance_tolerance {
987
## Uncuttable edge fraction.
988
## The fraction of edges that are marked as uncuttable when partitioning with edge weighting. i.e.
989
## all but the final adapt. This value determines the range of edge weight values that are defined
990
## as being uncuttable, as a percentage of the worst value.
991
## Uncuttable elements are marked to allow elements with low element
992
## qualities, when measured against the metric, to adapt. Marking more elements uncuttable may allow the mesh
993
## to improve more quickly if Zoltan is capable of avoiding all of the edges, but could cause
994
## Zoltan to lock edges for many adapts due to too many elements being uncuttable. The default value is 0.10
995
element uncuttable_edge_fraction {
998
## Search levels for worst element quality.
999
## Number of levels of element connections to search through for element quality when setting the edge weights for partitioning. default is 2 and works fine for most situations.
1000
element worst_ele_search_levels {
963
1003
## Additional adapt iterations.
964
1004
## Zoltan returns the minimum element quality to adaptivity. By setting additional adapt
965
1005
## iterations to a value greater than zero we allow Zoltan to do adapt_iterations plus
1721
## Use a bounded Galerkin projection. Conservative, bounded in the
1722
## limit, and hopefully minimally dissipative. This algorithm starts with the
1723
## Galerkin projection and uses the optimisation library Algencan to bound
1724
## it by minimising a functional within constraints on boundedness and conservation.
1725
## Note well: this only works for linear fields.
1727
attribute name {"Algencan"},
1729
element functional {
1730
attribute name {"L2"},
1735
element functional {
1736
attribute name {"LumpedMassL2"},
1741
element functional {
1742
attribute name {"IntegralL2"},
1747
element functional {
1748
attribute name { string },
1754
## If the bounds on this field are known then they can be set here.
1755
## These can either further constrain the limits worked out by the
1756
## lumped version of the projection (i.e. to make sure that errors
1757
## don't accumulate with succesive interpolations) or if apply_globally
1758
## is set they are just made to be bounded within the bounds globally
1759
## (i.e. anything between those bounds is not smoothed).
1761
element upper_bound {
1763
## If this is set the upper_bound is used everywhere.
1764
## If left unset the upper_bound is only used to constrain
1765
## the smoothed bounds calculated by the code
1766
element apply_globally {
1769
## This field is to be considered as being coupled to another field
1770
## such that the sum of the two fields is constrained to be less than
1771
## the upper_bound specified above.
1773
## The relationships between fields are worked out according to their
1774
## priority ordering.
1776
## This method is akin to the coupled_cv advection method.
1781
element lower_bound {
1783
## If this is set the upper_bound is used everywhere.
1784
## If left unset the upper_bound is only used to constrain
1785
## the smoothed bounds calculated by the code
1786
element apply_globally {