feec.pushforward#
Classes#
|
Class used to help push-forwarding several fields using the same mapping. |
Details#
- class Pushforward(grid, mapping=None, npts_per_cell=None, cell_indexes=None, grid_type=None, local_domain=None, global_ends=None, grid_local=None)[source]#
Bases:
object
Class used to help push-forwarding several fields using the same mapping. This class does not perform any checks on its arguments.
- Parameters:
- gridlist of arrays
Grid on which fields and other quantities will be evaluated. If it’s a regular tensor grid, then it is expected to be a list of 2-D arrays with number of cells as the first dimension.
- mappingSplineMapping or Mapping or None
Mapping used to push-forward. None is equivalent to the identity mapping.
- npts_per_celltuple of int or int, optional
Number of points per cell
- cell_indexeslist of arrays of int, optional
Cell indices of the points in grid for each direction.
- grid_typeint, optional
0 for irregular tensor grid, 1 for regular tensor grid, 2 for unstructured grid.
- local_domain2-tuple of tuple of int
Index of the first and last cell owned by the current process for each direction given as a tuple of starting index and a tuple of ending index. This is most commonly given by the attribute
TensorFemSpace.local_domain
.- global_endstuple of int
Index of the last cell of the domain for each direction. This is simply the tuple of
ncell - 1
in each direction.- grid_locallist of arrays
Grid that is local to the process. This is necessary when the mapping is an Analytical mapping that isn’t the identity. In serial this is the same as
grid
.
Notes
L2 and Hdiv push-forward algorithms use the metric determinant and not the jacobian determinant. For this reason, sign descrepancies can happen when comparing against algorithms which use the latter.