pymor.reductors.parabolic

Module Contents

Classes

ParabolicRBReductor

Reduced Basis Reductor for parabolic equations.

ParabolicRBEstimator

Instantiated by ParabolicRBReductor.

class pymor.reductors.parabolic.ParabolicRBReductor(fom, RB=None, product=None, coercivity_estimator=None, check_orthonormality=None, check_tol=None)[source]

Bases: pymor.reductors.basic.InstationaryRBReductor

Reduced Basis Reductor for parabolic equations.

This reductor uses InstationaryRBReductor for the actual RB-projection. The only addition is the assembly of an error estimator which bounds the discrete l2-in time / energy-in space error similar to [GP05], [HO08] as follows:

\[\left[ C_a^{-1}(\mu)\|e_N(\mu)\|^2 + \sum_{n=1}^{N} \Delta t\|e_n(\mu)\|^2_e \right]^{1/2} \le \left[ C_a^{-2}(\mu)\Delta t \sum_{n=1}^{N}\|\mathcal{R}^n(u_n(\mu), \mu)\|^2_{e,-1} + C_a^{-1}(\mu)\|e_0\|^2 \right]^{1/2}\]

Here, \(\|\cdot\|\) denotes the norm induced by the problem’s mass matrix (e.g. the L^2-norm) and \(\|\cdot\|_e\) is an arbitrary energy norm w.r.t. which the space operator \(A(\mu)\) is coercive, and \(C_a(\mu)\) is a lower bound for its coercivity constant. Finally, \(\mathcal{R}^n\) denotes the implicit Euler timestepping residual for the (fixed) time step size \(\Delta t\),

\[\mathcal{R}^n(u_n(\mu), \mu) := f - M \frac{u_{n}(\mu) - u_{n-1}(\mu)}{\Delta t} - A(u_n(\mu), \mu),\]

where \(M\) denotes the mass operator and \(f\) the source term. The dual norm of the residual is computed using the numerically stable projection from [BEOR14].

Parameters

fom

The InstationaryModel which is to be reduced.

RB

VectorArray containing the reduced basis on which to project.

product

The energy inner product Operator w.r.t. which the reduction error is estimated and RB is orthonormalized.

coercivity_estimator

None or a ParameterFunctional returning a lower bound \(C_a(\mu)\) for the coercivity constant of fom.operator w.r.t. product.

assemble_error_estimator(self)[source]
assemble_error_estimator_for_subbasis(self, dims)[source]
class pymor.reductors.parabolic.ParabolicRBEstimator(residual, residual_range_dims, initial_residual, initial_residual_range_dims, coercivity_estimator)[source]

Bases: pymor.core.base.ImmutableObject

Instantiated by ParabolicRBReductor.

Not to be used directly.

estimate_error(self, U, mu, m, return_error_sequence=False)[source]
restricted_to_subbasis(self, dim, m)[source]