예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
파일: projection.py 프로젝트: emamy/pymor
 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)
예제 #5
0
 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)
예제 #6
0
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
예제 #7
0
 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