Exemple #1
0
    def evaluate(self, coeffs, bvec):
        ppkernel = self.kernel.postprocess_at_target(
                self.kernel.get_expression(bvec), bvec)

        from sumpy.tools import mi_derivative
        result = sum(
                coeff * mi_derivative(ppkernel, bvec, mi)
                for coeff, mi in zip(coeffs, self.get_coefficient_identifiers()))
        return result
Exemple #2
0
    def translate_from(self, src_expansion, src_coeff_exprs, dvec):
        logger.info(
            "building translation operator: %s(%d) -> %s(%d): start"
            % (type(src_expansion).__name__, src_expansion.order, type(self).__name__, self.order)
        )

        from sumpy.tools import mi_derivative

        expr = src_expansion.evaluate(src_coeff_exprs, dvec)
        result = [mi_derivative(expr, dvec, mi) for mi in self.get_coefficient_identifiers()]

        logger.info("building translation operator: done")
        return result
Exemple #3
0
    def coefficients_from_source(self, avec, bvec):
        from sumpy.tools import mi_derivative

        ppkernel = self.kernel.postprocess_at_source(self.kernel.get_expression(avec), avec)
        return [mi_derivative(ppkernel, avec, mi) for mi in self.get_coefficient_identifiers()]