Peano
Loading...
Searching...
No Matches
MultiscaleTransitions.h
Go to the documentation of this file.
1// This file is part of the Peano project. For conditions of distribution and
2// use, please see the copyright notice at www.peano-framework.org
3#pragma once
4
5#include <tuple>
6
7#include "particles.h"
8#include "internal.h"
11
12
13namespace toolbox {
14 namespace particles {
16
19
135 template <typename Particle>
137
142 bool isLocal, double searchRadius, const tarch::la::Vector<Dimensions, double>& x, const peano4::datamanagement::VertexMarker marker
143 );
144
227 template <typename Particle>
228 bool sieveParticle(const Particle& particle, const peano4::datamanagement::VertexMarker& marker);
229
230 bool sieveParticle(double searchRadius, const tarch::la::Vector<Dimensions, double>& x, const peano4::datamanagement::VertexMarker& marker);
231
232 template <typename Particle>
233 bool dropParticle(const Particle& particle, const peano4::datamanagement::VertexMarker& marker);
234
241 bool dropParticle(double searchRadius, const tarch::la::Vector<Dimensions, double>& x, const peano4::datamanagement::VertexMarker& marker);
242
295 template <typename Particle>
296 bool particleWillBeDroppedFurther(const Particle& particle, const peano4::datamanagement::CellMarker& marker);
297
298 bool particleWillBeDroppedFurther(double searchRadius, const peano4::datamanagement::CellMarker& marker);
299
311 template <typename Particle>
312 bool particleWillBeDroppedFurther(const Particle& particle, const peano4::datamanagement::VertexMarker& marker);
313
314 bool particleWillBeDroppedFurther(double searchRadius, const peano4::datamanagement::VertexMarker& marker);
315
326 double relativeSpatialOwnershipTolerance(const ::peano4::datamanagement::CellMarker& marker);
327
352 template <typename Particle>
354 const Particle& p, const peano4::datamanagement::CellMarker& marker, int numberOfVertexWithinCell
355 );
356
358 bool isLocal, double searchRadius, const tarch::la::Vector<Dimensions, double>& x, const peano4::datamanagement::CellMarker& marker, int numberOfVertexWithinCell
359 );
360
380 } // namespace particles
381} // namespace toolbox
382
bool particleWillBeDroppedFurther(const Particle &particle, const peano4::datamanagement::CellMarker &marker)
Will the particle be dropped further throughout the traversal.
constexpr int ParticleReassociationInstruction_SieveGlobally
ParticleReassociationInstruction getParticleReassociationInstructionWithinCellWithIntraCellReassignment(const Particle &p, const peano4::datamanagement::CellMarker &marker, int numberOfVertexWithinCell)
If you use this operation, you can be sure that every particle is associated to the right vertex afte...
bool sieveParticle(const Particle &particle, const peano4::datamanagement::VertexMarker &marker)
A particle is to be sieved into a vertex if.
bool dropParticle(const Particle &particle, const peano4::datamanagement::VertexMarker &marker)
double relativeSpatialOwnershipTolerance(const ::peano4::datamanagement::CellMarker &marker)
Ownership tolerance.
ParticleReassociationInstruction liftParticleAssociatedWithVertex(const Particle &p, const peano4::datamanagement::VertexMarker marker)
Take particle from current vertex and lift it or keep it local.
std::bitset< TwoPowerD > getAdjacentCellsOwningParticle(const tarch::la::Vector< Dimensions, double > &x, const peano4::datamanagement::VertexMarker &marker)
Find out which adjacent cell will hold a particle.
constexpr int ParticleReassociationInstruction_Keep
Vertex marker to provide information about selected vertex.
Simple vector class.
Definition Vector.h:150