Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions src/pymor/algorithms/projection.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,8 +212,12 @@ def action_EmpiricalInterpolatedOperator(self, op):
def action_AffineOperator(self, op):
return self.apply(op.affine_shift + op.linear_part)

@match_class(LincombOperator, SelectionOperator)
def action_recurse(self, op):
@match_class(LincombOperator)
def action_LincombOperator(self, op):
return self.replace_children(op).with_(solver_options=None)

@match_class(SelectionOperator)
def action_SelectionOperator(self, op):
return self.replace_children(op)

@match_class(OperatorInterface)
Expand Down Expand Up @@ -278,7 +282,7 @@ def action_NumpyMatrixOperator(self, op):

@match_class(ConstantOperator)
def action_ConstantOperator(self, op):
dim_range, dim_source = self.dim_range, self.dim_srouce
dim_range, dim_source = self.dim_range, self.dim_source
source = op.source if dim_source is None else NumpyVectorSpace(dim_source, op.source.id)
value = op._value if dim_range is None else NumpyVectorSpace(op._value.to_numpy()[:, :dim_range], op.range.id)
return ConstantOperator(value, source, name=op.name)
Expand All @@ -303,7 +307,7 @@ def action_ProjectedEmpiciralInterpolatedOperator(self, op):

@match_class(ProjectedOperator)
def action_ProjectedOperator(self, op):
dim_range, dim_source = self.dim_range, self.dim_srouce
dim_range, dim_source = self.dim_range, self.dim_source
source_basis = op.source_basis if dim_source is None \
else op.source_basis[:dim_source]
range_basis = op.range_basis if dim_range is None \
Expand Down