def action_ConstantOperator(self, op): range_basis, source_basis = self.range_basis, self.source_basis if range_basis is not None: projected_value = NumpyVectorSpace.make_array(range_basis.dot(op.value).T) else: projected_value = op.value if source_basis is None: return ConstantOperator(projected_value, op.source, name=op.name) else: return ConstantOperator(projected_value, NumpyVectorSpace(len(source_basis)), name=op.name)
def action_ConstantOperator(self, op): range_basis, source_basis, product = self.range_basis, self.source_basis, self.product if range_basis is not None: projected_value = NumpyVectorSpace.make_array( range_basis.inner(op._value, product).T, op.range.id) else: projected_value = op._value if source_basis is None: return ConstantOperator(projected_value, op.source, name=op.name) else: return ConstantOperator(projected_value, NumpyVectorSpace(len(source_basis), op.source.id), name=op.name)
def action_ConstantOperator(self, op): dim_range, dim_source = self.dim_range, self.dim_source source = op.source if dim_source is None else NumpyVectorSpace( dim_source) value = op.value if dim_range is None else NumpyVectorSpace( op.value.to_numpy()[:, :dim_range]) return ConstantOperator(value, source, name=op.name)
def action_ConstantOperator(self, op): dim_range, dim_source = self.dim_range, self.dim_srouce 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.data[:, :dim_range], op.range.id) return ConstantOperator(value, source, name=op.name)
def action_ConstantOperator(self, op, range_basis, source_basis, product=None): if range_basis is not None: if product: projected_value = NumpyVectorSpace.make_array( product.apply2(range_basis, op._value).T, op.range.id) else: projected_value = NumpyVectorSpace.make_array( range_basis.dot(op._value).T, op.range.id) else: projected_value = op._value if source_basis is None: return ConstantOperator(projected_value, op.source, name=op.name) else: return ConstantOperator(projected_value, NumpyVectorSpace(len(source_basis), op.source.id), name=op.name)
def thermalblock_constant_factory(xblocks, yblocks, diameter, seed): from pymor.operators.constructions import ConstantOperator _, _, U, V, sp, rp = thermalblock_factory(xblocks, yblocks, diameter, seed) return ConstantOperator(V[0], U.space), None, U, V, sp, rp
def make_diffusion_integral(f): op = ConstantOperator(L2ProductFunctionalP1(grid, f, order=1).apply(ones), source=operator.source) op.unlock() inject_sid(op, 'cell_problem_diffusion_integral', f, grid) return op