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

Go to the source code of this file.

Namespaces

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

Functions

void toolbox::blockstructured::clearHaloLayerAoS (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, double *values)
 Clear halo layer of face.
 
void toolbox::blockstructured::clearCell (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, double *values)
 
void toolbox::blockstructured::restrictInnerHalfOfHaloLayer_AoS_inject (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, double *fineGridValues, double *coarseGridValues, bool swapInsideOutside=false)
 Restrict data by injection.
 
void toolbox::blockstructured::restrictHaloLayer_AoS_inject (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, double *fineGridValues, double *coarseGridValues)
 Restrict data by injection.
 
void toolbox::blockstructured::restrictCell_AoS_inject (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, double *fineGridValues, double *coarseGridValues)
 
void toolbox::blockstructured::restrictCellIntoOverlappingCell_inject (int numberOfDoFsPerAxisInSourcePatch, int numberOfDoFsPerAxisInDestinationPatch, int unknowns, double *sourceValues, double *destinationValues)
 This routine should be used if a cell hosts two sets of unknowns.
 
void toolbox::blockstructured::restrictCellIntoOverlappingCell_inject_and_average (int numberOfDoFsPerAxisInSourcePatch, int numberOfDoFsPerAxisInDestinationPatch, int unknowns, double *sourceValues, double *destinationValues, double weightOfInjectedValue=0.5)
 Flavour of restrictCellIntoOverlappingCell_inject() where we inject the solution but then take the average between the original value in destinationValues an the injected value.
 
void toolbox::blockstructured::restrictCell_AoS_averaging (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, double *fineGridValues, double *coarseGridValues)
 This routine is used when we delete a cell due to dynamic AMR.
 
void toolbox::blockstructured::restrictHaloLayer_AoS_averaging (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, double *fineGridValues, double *coarseGridValues)
 Consult commend on interpolation that clarifies why we need two different halo layer restrictions, i.e.
 
void toolbox::blockstructured::restrictInnerHalfOfHaloLayer_AoS_averaging (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, double *fineGridValues, double *coarseGridValues, bool swapInsideOutside=false)
 Restrict with averaging.
 
void toolbox::blockstructured::restrictCell_AoS_tensor_product (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ tangentialRestrictionMatrix1d, double *fineGridValues, double *coarseGridValues)
 
void toolbox::blockstructured::restrictCell_AoS_matrix (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, const double *__restrict__ restrictionData, const int *__restrict__ columnIndices, const int *__restrict__ rowIndices, double *fineGridValues, double *coarseGridValues)
 
void toolbox::blockstructured::restrictCell_AoS_second_order (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, double *fineGridValues, double *coarseGridValues)
 
void toolbox::blockstructured::restrictCell_AoS_third_order (const peano4::datamanagement::CellMarker &marker, int numberOfDoFsPerAxisInPatch, int unknowns, double *fineGridValues, double *coarseGridValues)
 
void toolbox::blockstructured::restrictHaloLayer_AoS_tensor_product (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ normalRestrictionMatrix1d, const double *__restrict__ tangentialRestrictionMatrix1d, double *fineGridValues, double *coarseGridValues)
 Restrict whole halo layer.
 
void toolbox::blockstructured::restrictHaloLayer_AoS_matrix (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ restrictionData, const int *__restrict__ columnIndices, const int *__restrict__ rowIndices, int dataOffset, int rowIndicesOffset, double *fineGridValues, double *coarseGridValues)
 
void toolbox::blockstructured::restrictHaloLayer_AoS_second_order (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, double *fineGridValues, double *coarseGridValues)
 
void toolbox::blockstructured::restrictHaloLayer_AoS_third_order (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, double *fineGridValues, double *coarseGridValues)
 
void toolbox::blockstructured::restrictInnerHalfOfHaloLayer_AoS_tensor_product (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ normalRestrictionMatrix1d, const double *__restrict__ tangentialRestrictionMatrix1d, double *fineGridValues, double *coarseGridValues, bool swapInsideOutside=false)
 Restrict inner halo half of face data.
 
void toolbox::blockstructured::restrictInnerHalfOfHaloLayer_AoS_matrix (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, const double *__restrict__ restrictionMatrixData, const int *__restrict__ columnIndices, const int *__restrict__ rowIndices, int dataOffset, int rowIndicesOffset, double *fineGridValues, double *coarseGridValues, bool swapInsideOutside=false)
 
void toolbox::blockstructured::restrictInnerHalfOfHaloLayer_AoS_second_order (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, double *fineGridValues, double *coarseGridValues, bool swapInsideOutside=false)
 
void toolbox::blockstructured::restrictInnerHalfOfHaloLayer_AoS_third_order (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, double *fineGridValues, double *coarseGridValues, bool swapInsideOutside=false)
 
void toolbox::blockstructured::internal::clearHalfOfHaloLayerAoS (const peano4::datamanagement::FaceMarker &marker, int numberOfDoFsPerAxisInPatch, int overlap, int unknowns, bool clearInnerPart, double *values)
 Clear half of a halo layer.
 
void toolbox::blockstructured::internal::projectCells_AoS (const peano4::datamanagement::CellMarker &fineGridCellMarker, int numberOfDoFsPerAxisInPatch, std::function< void(tarch::la::Vector< Dimensions, int > coarseVolume, tarch::la::Vector< Dimensions, int > fineVolume, tarch::la::Vector< Dimensions, double > coarseVolumeCentre, tarch::la::Vector< Dimensions, double > fineVolumeCentre, double coarseVolumeH, double fineVolumeH)> update)
 Helper function.