peclet.voro 1.0.4
Device-native moving-particle Voronoi dynamics
Loading...
Searching...
No Matches
tessellator.hpp File Reference
#include <array>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <Kokkos_Core.hpp>
#include <string>
#include <type_traits>
#include <vector>
#include "morton/morton.hpp"
#include "peclet/core/common/view.hpp"
#include "peclet/voro/convex_cell.hpp"
#include "peclet/voro/sdf.hpp"
#include "peclet/voro/tess_grid.hpp"
#include "peclet/voro/tessellation_view.hpp"
Include dependency graph for tessellator.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  peclet::voro::TessellatorResult< Real >
 
struct  peclet::voro::CellBuilder< Real, Weighted, Sdf, TrackAdj, MAXP, MAXT >
 

Namespaces

namespace  peclet
 
namespace  peclet::voro
 Device-native Voronoi tessellation, geometry and finite-volume physics.
 

Enumerations

enum  peclet::voro::StatusBit {
  peclet::voro::kOk = 0 , peclet::voro::kOverflow = 1 , peclet::voro::kEmpty = 2 , peclet::voro::kIncomplete = 4 ,
  peclet::voro::kNegOffset = 8 , peclet::voro::kBuried = 16 , peclet::voro::kReachExceeded = 32
}
 Per-cell status bits written by the build pass. More...
 

Functions

template<class Cell , int MAXF>
KOKKOS_INLINE_FUNCTION int peclet::voro::areaGradEnumerate (const Cell &c, const int *faces, int nf, unsigned char *part, unsigned char *pcnt, bool &full)
 
template<class Cell , int MAXF, class IView , class RView >
KOKKOS_INLINE_FUNCTION void peclet::voro::areaGradFill (const Cell &c, const int *faces, int nf, const unsigned char *part, const unsigned char *pcnt, int base, int ebase, const IView &oEdgeOff, const IView &oEdgeCnt, const IView &oEdgeFacet, const RView &oEdgeGrad, const RView &oEdgeLen)
 
template<class Real , bool Weighted, class Sdf = NoSdf, int MAXP = kMaxPlanes, int MAXT = kMaxTriangles>
TessellatorResult< Real > peclet::voro::buildTessellation (const Kokkos::View< Real *, peclet::core::MemSpace > &posFlat, const Kokkos::View< Real *, peclet::core::MemSpace > &weight, int N, const Real L[3], int sw=kSearchWindow, int densityCount=-1, Kokkos::View< long *, peclet::core::MemSpace > gid={}, Sdf sdf={}, bool withForceGeom=true, int nBuild=-1, Kokkos::View< int *, peclet::core::MemSpace > outNp={}, Kokkos::View< int *, peclet::core::MemSpace > outNt={}, Kokkos::View< int *, peclet::core::MemSpace > outPnbr={}, Kokkos::View< unsigned *, peclet::core::MemSpace > outTri={}, Kokkos::View< int *, peclet::core::MemSpace > outCand={}, Kokkos::View< int *, peclet::core::MemSpace > outCandCnt={}, int candCap=0, WorklistCache< Real > *wlc=nullptr, WallStore< Real > outWall={}, bool withAreaGrad=false, Kokkos::View< int *, peclet::core::MemSpace > outNear={}, Kokkos::View< int *, peclet::core::MemSpace > outNearCnt={}, int nearCap=0, Real nearMargin=Real(0), bool withWallFD=false, bool withMoments=false, bool profile=false)