Object: SamplingWeighting

under SamplingWeighting {
    Algorithm = algorithm-id;
    Solver = solver-id;
    SamplingTolerance = samplingtol-real;
    MaxSizeRatio = maxsizeratio-real;
    MaxItsRatio = maxitsratio-real;
    UseColumnScaling = usecolumnscaling-flag;
    UseRowScaling = userowscaling-flag;
    UseCentering = usecentering-flag;
    DecomposeBoundaryConditions = decomposeboundaryconditions-flag;
    UseGlobalTolerance = useglobaltol-flag;
    Projection = projection-id;
}

with

algorithm-id [NNLS]:
Controls which convex approximation of the mesh sampling problem to use.

NNLS
In this case, the problem is posed as a non-negative least squares problem with an accuracy constraint for early termination.

PFP
In this case, the polytope faces pursuit algorithm is used to solve the convex basis pursuit problem.

solver-id [CG]:
Controls which solver to use for solving the convex optimization algorithm given by Algorithm.

CG
In this case, a parallelized directional pursuit solver based on non-negative conjugate gradients is employed.

QR
In this case, a solver based on a parallelized, updatable QR factorization is employed. This method requires compilation with the ScaLAPACK libraries and is most similar to the original Lawson and Hanson algorithm.

samplingtol-real [1.0e-6]:
Relative sampling error tolerance for the mesh sampling problem.

maxsizeratio-real [1.0]:
The maximum cardinality of the sample entity set is given as $\min(m, \emph{maxsizeratio-real} \times n)$ where the ECSW training matrix $G$ is of dimension $m \times n$.

maxitsratio-real [3.0]:
The maximum number of iterations for the mesh sampling solver is given by $\emph{maxitsratio-real} \times n$, where $n$ is the number of columns in the ECSW training matrix $G$.

usecolumnscaling-flag [True]:
This flag controls the scaling each column of each column of the ECSW training matrix $G$ to have unit norm. Doing so usually results in faster convergence of the solver, but can lead to massively disparate sample weights so should be used with caution.

True
Scale the columns of $G$ to have unit norm.

False
Do not scale the columns of $G$.

userowscaling-flag [False]:
This flag controls the scaling of each row-wise block of $G$ corresponding to each training snapshot to have the same magnitude. That is, the row-wise block of $G$ corresponding to each snapshot is divided by the norm of the projected residual for that training snapshot to balance contributions between snapshots.

True
Scale the rows of $G$ to balance contributions of each training snapshot.

False
Do not scale the rows of $G$.

usecentering-flag [False]:
This flag controls whether to center the columns of $G$ such that they have zero mean.

True
Center the columns of $G$ to have zero mean.

False
Do not center the columns of $G$.

decomposeboundaryconditions-flag [False]:
Using this flag, the mesh sampling can be decomposed such that cells of the high-dimensional mesh corresponding to different boundary conditions are sampled independently. That is, the interior domain cells, wall boundary cells, and farfield cells are sampled independently to ensure that the reduced mesh contains at least one of each boundary condition class.

True
Decompose the mesh by boundary condition and perform the mesh sampling independently for each boundary condition class.

False
Do not decompose the mesh and sample the entire global mesh at one time.

useglobaltol-flag [False]:
This flag is relevant when DecomposeBoundaryConditions = True. It controls whether the converge tolerance should be adjusted to account for the relative contribution of each boundary condition class to the norm of the global residual.

True
In this case, the tolerance specified by samplingtol-real is used for sampling the mesh corresponding to each boundary condition.

False
In this case, the tolerance specified by samplingtol-real is adjusted such that the sum of the errors from sampling the mesh for each boundary condition independently can still be shown to be smaller than the tolerance specified by samplingtol-real, but generally is larger than if UseGlobalTolerance = True.

projection-id [LeastSquaresPetrovGalerkin]:
This flag is relevant training the hyperreduction approximation for an online hyperreduced ROM based on a Galerkin or Petrov-Galerkin projection.

LeastSquaresPetrovGalerkin
In this case, the training is performed for the left ROB $W$ constructed via the least-squares Petrov-Galerkin method.

Galerkin
In this case, the training is performed for the left ROB $W = V$ corresponding to a Galerkin projection.