Пример #1
0
 def laplace(self, physical_units=True):
     if not physical_units:
         return math.laplace(self.data,
                             padding=_pad_mode(self.extrapolation))
     else:
         if not np.allclose(self.dx, np.mean(self.dx)):
             raise NotImplementedError('Only cubic cells supported.')
         laplace = math.laplace(self.data,
                                padding=_pad_mode(self.extrapolation))
         return laplace / self.dx[0]**2
Пример #2
0
 def test_vector_laplace(self):
     meshgrid = math.meshgrid(x=(0, 1, 2, 3), y=(0, -1))
     cases = dict(padding=(extrapolation.ZERO, extrapolation.ONE, extrapolation.BOUNDARY, extrapolation.PERIODIC, extrapolation.SYMMETRIC),
                  dx=(0.1, 1),
                  dims=(None, ('x',), ('y',), ('x', 'y')))
     for case_dict in [dict(zip(cases, v)) for v in product(*cases.values())]:
         laplace = math.laplace(meshgrid, **case_dict)
Пример #3
0
 def laplace(self, physical_units=True, axes=None):
     if not physical_units:
         data = math.laplace(self.data,
                             padding=_pad_mode(self.extrapolation),
                             axes=axes)
     else:
         if not self.has_cubic_cells:
             raise NotImplementedError('Only cubic cells supported.')
         laplace = math.laplace(self.data,
                                padding=_pad_mode(self.extrapolation),
                                axes=axes)
         data = laplace / self.dx[0]**2
     extrapolation = map_for_axes(_gradient_extrapolation,
                                  self.extrapolation, axes, self.rank)
     return self.copied_with(data=data,
                             extrapolation=extrapolation,
                             flags=())
Пример #4
0
def laplace(field: GridType, axes=None) -> GridType:
    """ Finite-difference laplace operator for Grids. See `phi.math.laplace()`. """
    result = field._op1(lambda tensor: math.laplace(
        tensor, dx=field.dx, padding=field.extrapolation, dims=axes))
    return result
Пример #5
0
def laplace(field: Grid, axes=None):
    result = field._op1(lambda tensor: math.laplace(
        tensor, dx=field.dx, padding=field.extrapolation, dims=axes))
    return result