36#ifndef D3Q27GRIDWINDINGINTERACTOR_H
37#define D3Q27GRIDWINDINGINTERACTOR_H
94 return boundaryResult_;
100 return boundaryResult_.
stats;
104 void rebuildNodeIndexMaps();
128 const BoundaryProcessingConfig &config = {});
135 double timeStep = 0.0,
138#if defined(VF_HAS_FAST_WINDING)
156 double timeStep = 0.0,
Abstract class of baundary conditions adapter.
A class provides an interface for boundary conditions in the calculation loop.
A class implements a block structure.
Interactor that can run CPU grid-winding based boundary diagnostics.
~D3Q27GridWindingInteractor() override=default
D3Q27GridWindingInteractor()=default
const vf::grid_winding::SubgridDistanceStats & getSubgridStats() const
Convenience access to the accumulated subgrid statistics.
const vf::grid_winding::cpu::BoundaryProcessingResult & getBoundaryResult() const
Access the last boundary-processing result.
A specialized class for grid generation.
A class implements block grid.
An abstract class for communication between processes in parallel computation.
std::shared_ptr< T > SPtr
void initInteractor(const real &timeStep=0) override
void computeSubgridDistancesStandalone(const SPtr< GbTriFaceMesh3D > &surface, const SPtr< Grid3D > &grid, const SPtr< BCSet > &bcSet, const std::vector< SPtr< BC > > &boundaryAdapters={}, const ::D3Q27Interactor *adapterInteractor=nullptr, double timeStep=0.0, vf::grid_winding::SubgridDistanceStats *stats=nullptr)
void computeBoundaryData(const SPtr< GbTriFaceMesh3D > &surface, const SPtr< Grid3D > &grid, const SPtr< BCSet > &bcSet, const std::vector< SPtr< BC > > &boundaryAdapters, double timeStep, const SPtr< vf::parallel::Communicator > &comm, const std::string &basePath, const vf::grid_winding::cpu::BoundaryProcessingConfig &config)
Compute subgrid distances and Q-values for the current geometry/grid setup.
void updateInteractor(const real ×tep=0) override
void setQs(const real &timeStep)
bool setDifferencesToGbObject3D(const SPtr< Block3D > block) override
void computeSubgridDistancesStandalone(const SPtr< GbTriFaceMesh3D > &surface, const SPtr< Grid3D > &grid, const SPtr< BCSet > &bcSet, const std::vector< SPtr< BC > > &boundaryAdapters, const ::D3Q27Interactor *adapterInteractor, double timeStep, SubgridDistanceStats *stats)
BoundaryProcessingResult processBoundaryData(const SPtr< GbTriFaceMesh3D > &surface, const SPtr< Grid3D > &grid, const SPtr< BCSet > &bcSet, const std::vector< SPtr< BC > > &boundaryAdapters, const ::D3Q27Interactor *adapterInteractor, double timeStep, const SPtr< vf::parallel::Communicator > &comm, const std::string &basePath, const BoundaryProcessingConfig &config)
constexpr float FastWindingDefaultAccuracyScale
Default fast-winding accuracy scale used in computeSolidAngle(...).
constexpr float FastWindingDefaultTolerance
Default comparison tolerance near the threshold.
constexpr float FastWindingDefaultThreshold
Default normalized threshold for solid classification.
vf::grid_winding::SubgridDistanceStats stats