| ML
    Version of the Day
    | 
#include <ml_aggregate.h>

definition of the aggregate structure
| int* ML_Aggregate_Struct::aggr_count | 
no. aggregates at each level
| int** ML_Aggregate_Struct::aggr_info | 
node to aggregate map
| void* ML_Aggregate_Struct::aggr_options | 
option about METIS and ParMETIS
| void* ML_Aggregate_Struct::aggr_viz_and_stats | 
information about the aggregates only if the user explicitely < requires them
| int ML_Aggregate_Struct::attach_scheme | 
aggregate shape control
| int ML_Aggregate_Struct::begin_level | 
finest grid level
| int ML_Aggregate_Struct::block_scaled_SA | 
= 1 indicates that the prolongator smoother should use block diagonal scaling (blocksize = num_PDE_eqns)
| int ML_Aggregate_Struct::coarsen_partial_dirichlet_dofs | 
interpolate Dirichlet directions in multiple PDEs per node case
| int ML_Aggregate_Struct::coarsen_scheme | 
Uncoupled, Coupled, MIS
| int ML_Aggregate_Struct::cur_level | 
temporary variable
| double ML_Aggregate_Struct::curr_threshold | 
adjusted for levels
| int ML_Aggregate_Struct::do_qr | 
should we do a qr?
| double ML_Aggregate_Struct::drop_tol_for_smoothing | 
self-explanatory
| double ML_Aggregate_Struct::fine_complexity | 
nnz of the finest A
| int ML_Aggregate_Struct::keep_agg_information | 
1: keep aggr_info otherwise: free it
| int ML_Aggregate_Struct::keep_P_tentative | 
keeping tentative prolongator
| int ML_Aggregate_Struct::max_coarse_size | 
maximum size of coarsest grid
| int ML_Aggregate_Struct::max_levels | 
maximum number of levels
| int ML_Aggregate_Struct::max_neigh_already_selected | 
complexity control
| int ML_Aggregate_Struct::min_nodes_per_aggregate | 
aggregate size control
| double** ML_Aggregate_Struct::nodal_coord | 
Coordinates of fine-grid nodes
and aggregates
| int ML_Aggregate_Struct::nullspace_corrupted | 
indicates whether fine grid nullspace has been overwritten
| int ML_Aggregate_Struct::nullspace_dim | 
self-explanatory
| double* ML_Aggregate_Struct::nullspace_vect | 
for null space vectors
| int ML_Aggregate_Struct::num_PDE_eqns | 
block size
| int ML_Aggregate_Struct::nvblocks | 
for variable blocks (finest)
| double ML_Aggregate_Struct::operator_complexity | 
sum of nnz for all A's
| int ML_Aggregate_Struct::ordering | 
natural, random, graph
| struct ML_Operator_Struct** ML_Aggregate_Struct::P_tentative | 
so it can be reused later.
| double ML_Aggregate_Struct::phase3_agg_creation | 
Steers how the MIS and Uncoupled handle phase 3 of aggregation. Values near 0 create few additional aggregates.Large values create many additional aggregates. Convergence can be improve convergence by new aggregates but nonzero fill-in increases on coarse meshes. Default: .5
| int ML_Aggregate_Struct::Restriction_smoothagg_transpose | 
smoothed aggregation on A^T
| double ML_Aggregate_Struct::rowsum_threshold | 
for dropping sub-CFL rows in reaction-diffusion
| int ML_Aggregate_Struct::smooth_existing_P_tentative | 
already have P tent, don't create it
| double ML_Aggregate_Struct::smoothP_damping_factor | 
for prolongator smoother
| int* ML_Aggregate_Struct::smoothP_damping_sweeps | 
#prolongator smoother sweeps
| int ML_Aggregate_Struct::smoothP_type | 
point, block
| double ML_Aggregate_Struct::threshold | 
for pruning matrix
| int ML_Aggregate_Struct::use_transpose | 
Used to build restriction by doing
| void* ML_Aggregate_Struct::vblock_data | 
holds data structure aggr_vblock
| int* ML_Aggregate_Struct::vblock_info | 
for variable blocks (finest)
 1.8.5
 1.8.5