pymor.algorithms.lincomb

Module Contents

Classes

AssembleLincombRules

Define algorithm by a table of match conditions and corresponding actions.

Functions

assemble_lincomb

Try to assemble a linear combination of the given operators.

pymor.algorithms.lincomb.assemble_lincomb(operators, coefficients, solver_options=None, name=None)[source]

Try to assemble a linear combination of the given operators.

Returns a new Operator which represents the sum

c_1*O_1 + ... + c_N*O_N

where O_i are Operators and c_i scalar coefficients.

This function is called in the assemble method of LincombOperator and is not intended to be used directly.

To form the linear combination of backend Operators (containing actual matrix data), _assemble_lincomb will be called on the first Operator in the linear combination.

Parameters

operators

List of Operators O_i whose linear combination is formed.

coefficients

List of the corresponding linear coefficients c_i.

solver_options

solver_options for the assembled operator.

name

Name of the assembled operator.

Returns

The assembled Operator.

class pymor.algorithms.lincomb.AssembleLincombRules(coefficients, solver_options, name)[source]

Bases: pymor.algorithms.rules.RuleTable

Define algorithm by a table of match conditions and corresponding actions.

RuleTable manages a table of rules, stored in the rules attributes, which can be applied to given objects.

A new table is created by subclassing RuleTable and defining new methods which are decorated with match_class, match_generic or another rule subclass. The order of the method definitions determines the order in which the defined rules are applied.

Parameters

use_caching

If True, cache results of apply.

rules[source]

list of all defined rules.

action_zero_coeff(self, ops)[source]
action_ZeroOperator(self, ops)[source]
action_IdentityOperator(self, ops)[source]
action_BlockSpaceIdentityOperator(self, ops)[source]
action_VectorArrayOperator(self, ops)[source]
action_SecondOrderModelOperator(self, ops)[source]
action_BlockDiagonalOperator(self, ops)[source]
action_BlockOperatorBase(self, ops)[source]
action_merge_low_rank_operators(self, ops)[source]
action_merge_into_low_rank_updated_operator(self, ops)[source]
action_call_assemble_lincomb_method(self, ops)[source]
action_return_lincomb(self, ops)[source]