Peano
Loading...
Searching...
No Matches
Interpolation.h File Reference
Include dependency graph for Interpolation.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  toolbox::blockstructured::internal::FaceInterpolationOperatorKey
 
struct  toolbox::blockstructured::internal::CellInterpolationOperatorKey
 

Namespaces

namespace  toolbox
 
namespace  toolbox::blockstructured
 
namespace  toolbox::blockstructured::internal
 

Typedefs

typedef std::map< FaceInterpolationOperatorKey, tarch::la::DynamicMatrix * > toolbox::blockstructured::internal::FaceInterpolationMap
 
typedef std::map< CellInterpolationOperatorKey, tarch::la::DynamicMatrix * > toolbox::blockstructured::internal::CellInterpolationMap
 A cell interpolation is a huge matrix.
 

Functions

void toolbox::blockstructured::interpolateHaloLayer_AoS_tensor_product (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ normalInterpolationMatrix1d, const double *__restrict__ tangentialInterpolationMatrix1d, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 Take the coarse grid values and interpolate them onto the fine grid.
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_tensor_product (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ normalInterpolationMatrix1d, const double *__restrict__ tangentialInterpolationMatrix1d, const double *__restrict__ coarseGridCellValues, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_matrix (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ interpolationData, const int *__restrict__ columnIndices, const int *__restrict__ rowIndices, const double *__restrict__ coarseGridCellValues, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_second_order (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridCellValues, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_second_order (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_third_order (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridCellValues, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_third_order (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_matrix (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ interpolationData, const int *__restrict__ columnIndices, const int *__restrict__ rowIndices, int dataStart, int rowIndicesStart, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateCell_AoS_tensor_product (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ interpolationMatrix1d, const double *__restrict__ coarseGridCellValues, double *__restrict__ fineGridCellValues)
 
void toolbox::blockstructured::interpolateCell_AoS_matrix (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ interpolationData, const int *__restrict__ columnIndices, const int *__restrict__ rowIndices, const double *__restrict__ coarseGridCellValues, double *__restrict__ fineGridCellValues)
 
void toolbox::blockstructured::interpolateCell_AoS_second_order (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ coarseGridCellValues, double *__restrict__ fineGridCellValues)
 
void toolbox::blockstructured::interpolateCell_AoS_third_order (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ coarseGridCellValues, double *__restrict__ fineGridCellValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_piecewise_constant (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 Interpolate the overlap of a coarse face onto a hanging face.
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_piecewise_constant (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridCellValues, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 This is the routine for creating a new persistent face.
 
void toolbox::blockstructured::interpolateCell_AoS_piecewise_constant (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ coarseGridCellValues, double *__restrict__ fineGridCellValues)
 This routine is called if we create a new cell (dynamic AMR)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_linear_with_constant_extrapolation (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 Interpolate the overlap of a coarse face linearly onto a hanging face.
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_linear_with_constant_extrapolation (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridCellValues, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateCell_AoS_linear_with_constant_extrapolation (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ coarseGridCellValues, double *__restrict__ fineGridCellValues)
 Interpolate the patch of a coarse cell d-linearly into one of its 3^d children.
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_linear_with_linear_extrapolation (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_linear_with_linear_extrapolation (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridCellValues, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateCell_AoS_linear_with_linear_extrapolation (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ coarseGridCellValues, double *__restrict__ fineGridCellValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_linear_with_constant_extrapolation_and_linear_normal_interpolation (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_linear_with_constant_extrapolation_and_linear_normal_interpolation (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridCellValues, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateCell_AoS_linear_with_constant_extrapolation_and_linear_normal_interpolation (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ coarseGridCellValues, double *__restrict__ fineGridCellValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_linear_with_linear_extrapolation_and_linear_normal_interpolation (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateHaloLayer_AoS_linear_with_linear_extrapolation_and_linear_normal_interpolation (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ coarseGridCellValues, const double *__restrict__ coarseGridFaceValues, double *__restrict__ fineGridFaceValues)
 
void toolbox::blockstructured::interpolateCell_AoS_linear_with_linear_extrapolation_and_linear_normal_interpolation (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ coarseGridCellValues, double *__restrict__ fineGridCellValues)
 
void toolbox::blockstructured::interpolateCellDataAssociatedToVolumesIntoOverlappingCell_matrix (int numberOfDoFsPerAxisInSourcePatch, int numberOfDoFsPerAxisInDestinationPatch, int haloSourcePatch, int haloDestinationPatch, int unknowns, const double *__restrict__ interpolationData, const int *__restrict__ columnIndices, const int *__restrict__ rowIndices, const double *__restrict__ sourceValues, double *__restrict__ destinationValues, ::peano4::utils::LoopPlacement parallelisation)
 This interpolation should be used if a cell hosts two sets of unknowns.
 
void toolbox::blockstructured::interpolateCellDataAssociatedToVolumesIntoOverlappingCell_secondOrder (int numberOfDoFsPerAxisInSourcePatch, int numberOfDoFsPerAxisInDestinationPatch, int haloSourcePatch, int haloDestinationPatch, int unknowns, const double *__restrict__ sourceValues, double *__restrict__ destinationValues, ::peano4::utils::LoopPlacement parallelisation)
 
void toolbox::blockstructured::interpolateCellDataAssociatedToVolumesIntoOverlappingCell_linear (int numberOfDoFsPerAxisInSourcePatch, int numberOfDoFsPerAxisInDestinationPatch, int haloSourcePatch, int haloDestinationPatch, int unknowns, const double *__restrict__ sourceValues, double *__restrict__ destinationValues, ::peano4::utils::LoopPlacement parallelisation)
 
void toolbox::blockstructured::interpolateCellDataAssociatedToVolumesIntoOverlappingCell_fourthOrder (int numberOfDoFsPerAxisInSourcePatch, int numberOfDoFsPerAxisInDestinationPatch, int haloSourcePatch, int haloDestinationPatch, int unknowns, const double *__restrict__ sourceValues, double *__restrict__ destinationValues, ::peano4::utils::LoopPlacement parallelisation)
 
int toolbox::blockstructured::internal::getCoarseLayerOfFineLayerInOverlap (int fineLayer, int overlap)
 Coarse layer of a face overlap which contains a fine layer.
 
tarch::la::DynamicMatrix * toolbox::blockstructured::internal::createLinearInterpolationMatrix (int numberOfDoFsPerAxisInPatch, int normal, bool extrapolateLinearly, bool interpolateLinearlyAlongNormal)
 The realisation relies on the following observations/follows these steps:
 
tarch::la::DynamicMatrix * toolbox::blockstructured::internal::createLinearInterpolationMatrix (int numberOfDoFsPerAxisInPatch, bool extrapolateLinearly)
 This is a volumetric version of the interpolation.
 
tarch::la::DynamicMatrix * toolbox::blockstructured::internal::createLinearInterpolationMatrix (int numberOfDoFsPerAxisInInputPatch, int numberOfDoFsPerAxisInOutputPatch, bool extrapolateLinearly)
 
tarch::la::DynamicMatrix * toolbox::blockstructured::internal::createPiecewiseConstantInterpolationMatrix (int numberOfDoFsPerAxisInPatch, int normal, int overlap)
 Create piecewise constant interpolation matrix.
 
tarch::la::DynamicMatrix * toolbox::blockstructured::internal::createPiecewiseConstantInterpolationMatrix (int numberOfDoFsPerAxisInPatch)
 This is a volumetric version of the interpolation.
 
tarch::la::DynamicMatrix * toolbox::blockstructured::internal::createInterpolationMatrixFrom1dTemplateByInsertingZeroColsAndRows (const tarch::la::DynamicMatrix &P1d, int numberOfDoFsPerAxisInPatch, int normal)
 This routine accepts a \( 3k \times k \) matrix as input.
 
tarch::la::DynamicMatrix * toolbox::blockstructured::internal::createInterpolationMatrixFrom1dTemplateByLinearInterpolationAlongNormal (const tarch::la::DynamicMatrix &P1d, int numberOfDoFsPerAxisInPatch, int normal)
 This is an extension of createInterpolationMatrixFrom1dTemplateByInsertingZeroColsAndRows().
 
void toolbox::blockstructured::internal::projectInterpolatedFineCellsOnHaloLayer_AoS (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ fineGridCellValuesLeft, const double *__restrict__ fineGridCellValuesRight, double *fineGridFaceValues)
 This routine assumes that you have the whole patch data of hte left and right adjacent patch at hands.
 
void toolbox::blockstructured::internal::interpolateCell_AoS_piecewise_constant (const tarch::la::Vector< Dimensions, int > &relativePositionWithinFatherCell, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ fineGridValues, double *__restrict__ coarseGridValues)
 
void toolbox::blockstructured::internal::interpolateCell_AoS_linear (const tarch::la::Vector< Dimensions, int > &relativePositionWithinFatherCell, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ fineGridValues, double *__restrict__ coarseGridValues, bool extrapolateLinearly)