|
template<typename BoundaryHandling_T , bool ForceBoundary> |
void | consistentlySetBoundary (StructuredBlockStorage &blocks, Block &block, const BlockDataID &boundaryHandlingId, const FlagUID &flag, const std::function< bool(const Vector3< real_t > &) > &isBoundary, const std::function< shared_ptr< BoundaryConfiguration >(const Cell &, const Vector3< real_t > &) > ¶meter=internal::defaultBoundaryConfiguration) |
| Function for consistently setting boundaries across block borders (even if there is a level transition) More...
|
|
template<typename BoundaryHandling_T > |
void | consistentlySetBoundary (StructuredBlockStorage &blocks, Block &block, const BlockDataID &boundaryHandlingId, const FlagUID &flag, const std::function< bool(const Vector3< real_t > &) > &isBoundary, const std::function< shared_ptr< BoundaryConfiguration >(const Cell &, const Vector3< real_t > &) > ¶meter=internal::defaultBoundaryConfiguration) |
| For documentation see function "template< typename BoundaryHandling_T, bool ForceBoundary > void consistentlySetBoundary(...)". More...
|
|
template<typename BoundaryHandling_T > |
void | consistentlyForceBoundary (StructuredBlockStorage &blocks, Block &block, const BlockDataID &boundaryHandlingId, const FlagUID &flag, const std::function< bool(const Vector3< real_t > &) > &isBoundary, const std::function< shared_ptr< BoundaryConfiguration >(const Cell &, const Vector3< real_t > &) > ¶meter=internal::defaultBoundaryConfiguration) |
| For documentation see function "template< typename BoundaryHandling_T, bool ForceBoundary > void consistentlySetBoundary(...)". More...
|
|
template<typename LatticeModel_T , typename BoundaryHandling_T , typename Sweep_T > |
shared_ptr< TimeStep< LatticeModel_T, Sweep_T, BoundaryHandling_T > > | makeTimeStep (weak_ptr< StructuredBlockForest > blocks, shared_ptr< Sweep_T > &sweep, const BlockDataID &pdfFieldId, const BlockDataID &boundaryHandlingId, const Set< SUID > &requiredBlockSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleBlockSelectors=Set< SUID >::emptySet()) |
|
template<typename LatticeModel_T , typename BoundaryHandling_T , typename Sweep_T > |
shared_ptr< TimeStep< LatticeModel_T, Sweep_T, BoundaryHandling_T > > | makeTimeStep (weak_ptr< StructuredBlockForest > blocks, shared_ptr< Sweep_T > &sweep, const BlockDataID &pdfFieldId, const BlockDataID &boundaryHandlingId, const shared_ptr< TimeStepPdfPackInfo > &pdfPackInfo, const Set< SUID > &requiredBlockSelectors=Set< SUID >::emptySet(), const Set< SUID > &incompatibleBlockSelectors=Set< SUID >::emptySet()) |
|
template<typename BoundaryHandling_T , bool ForceBoundary>
Function for consistently setting boundaries across block borders (even if there is a level transition)
Boundaries are set not just in the inside of the block that is passed to this function, but also in the block's ghost layers. The user must provide a callback function "isBoundary": For any point in the 3D simulation space, this function must either return true or false. Returning true means at this point in space, a boundary of type "flag" must be set. If the boundary requires a corresponding boundary configuration parameter, a second callback function "parameter" must be provided: If a boundary is set at a certain cell, this cell is passed to the callback function together with the point in the 3D simulation space that, prior to that, was passed to "isBoundary". The function then must return a shared pointer to a BoundaryConfiguration object.
- Parameters
-
blocks | block storage data structure |
block | block for which boundaries of type "flag" will be set |
boundaryHandlingId | block data ID for the boundary handling object |
flag | flag UID that corresponds to the boundary which will be set |
isBoundary | callback function for determining if for a certain point in the 3D simulation space a boundary corresponding to "flag" must be set |
parameter | callback function for retrieving boundary configuration parameters |