pymor.algorithms.scm

Module for the successive constraints method.

Module Contents

class pymor.algorithms.scm.LBSuccessiveConstraintsFunctional(operator, constraint_parameters, coercivity_constants, bounds, linprog_method='highs', linprog_options={}, M=None)[source]

Bases: pymor.parameters.functionals.ParameterFunctional

ParameterFunctional providing the lower bound from the successive constraints method.

See [HRSP07].

Parameters

operator

LincombOperator for which to provide a lower bound on the coercivity constant.

constraint_parameters

List of Parameters used to construct the constraints.

coercivity_constants

A list of coercivity constants for the constraint_parameters.

bounds

List of tuples containing lower and upper bounds for the design variables, i.e. the unknowns in the linear program.

linprog_method

Name of the algorithm to use for solving the linear program using scipy.optimize.linprog.

linprog_options

Dictionary of additional solver options passed to scipy.optimize.linprog.

M

Number of parameters to use for estimating the coercivity constant. The M closest parameters (with respect to the Euclidean distance) are chosen. If None, all parameters from constraint_parameters are used.

Methods

evaluate

Evaluate the functional for given parameter values mu.

evaluate(mu=None)[source]

Evaluate the functional for given parameter values mu.

class pymor.algorithms.scm.SuccessiveConstraintsSurrogate(operator, initial_parameter, bounds, product=None, linprog_method='highs', linprog_options={}, M=None)[source]

Bases: pymor.algorithms.greedy.WeakGreedySurrogate

Surrogate for constructing the functionals in a greedy algorithm.

This surrogate is used in a weak greedy algorithm to select the parameters used to compute the constraints for the lower and upper bounds derived by the successive constraints method.

Parameters

operator

LincombOperator for which to provide a bounds on the coercivity constant.

initial_parameter

Parameter used to initialize the surrogate for the greedy algorithm.

bounds

List of tuples containing lower and upper bounds for the design variables, i.e. the unknowns in the linear program.

product

Product with respect to which the coercivity constant should be estimated.

linprog_method

Name of the algorithm to use for solving the linear program using scipy.optimize.linprog.

linprog_options

Dictionary of additional solver options passed to scipy.optimize.linprog.

M

Number of parameters to use for estimating the coercivity constant. The M closest parameters (with respect to the Euclidean distance) are chosen. If None, all parameters are used.

Methods

evaluate

Evaluate the surrogate for given parameters.

extend

evaluate(mus, return_all_values=False)[source]

Evaluate the surrogate for given parameters.

Parameters

mus

List of parameters for which to estimate the approximation error. When parallelization is used, mus can be a RemoteObject.

return_all_values

See below.

Returns

If return_all_values is True, an NumPy array of the estimated errors. If return_all_values is False, the maximum estimated error as first return value and the corresponding parameter as second return value.

extend(mu)[source]
class pymor.algorithms.scm.UBSuccessiveConstraintsFunctional(operator, constraint_parameters, minimizers)[source]

Bases: pymor.parameters.functionals.ParameterFunctional

ParameterFunctional providing the upper bound from the successive constraints method.

See [HRSP07].

Parameters

operator

LincombOperator for which to provide an upper bound on the coercivity constant.

constraint_parameters

List of Parameters used to construct the constraints.

minimizers

List of minimizers associated to the coercivity constants of the operators in operator.

Methods

evaluate

Evaluate the functional for given parameter values mu.

evaluate(mu=None)[source]

Evaluate the functional for given parameter values mu.

pymor.algorithms.scm.construct_scm_functionals(operator, training_set, initial_parameter, atol=None, rtol=None, max_extensions=None, product=None, linprog_method='highs', linprog_options={}, M=None)[source]

Method to construct lower and upper bounds using the successive constraints method.

Parameters

operator

LincombOperator for which to provide a bounds on the coercivity constant.

training_set

Parameters used as training set for the greedy algorithm.

initial_parameter

Parameter used to initialize the surrogate for the greedy algorithm.

atol

If not None, stop the greedy algorithm if the maximum (estimated) error on the training set drops below this value.

rtol

If not None, stop the greedy algorithm if the maximum (estimated) relative error on the training set drops below this value.

max_extensions

If not None, stop the greedy algorithm after max_extensions extension steps.

product

Product with respect to which the coercivity constant should be estimated.

linprog_method

Name of the algorithm to use for solving the linear program using scipy.optimize.linprog.

linprog_options

Dictionary of additional solver options passed to scipy.optimize.linprog.

M

Number of parameters to use for estimating the coercivity constant. The M closest parameters (with respect to the Euclidean distance) are chosen. If None, all parameters selected in the greedy method are used.

Returns

Functional for a lower bound on the coercivity constant, functional for an upper bound on the coercivity constant, and the results returned by the weak greedy algorithm.