Loading...
Searching...
No Matches
CubicSemiLagrangian3.hpp
Go to the documentation of this file.
1// This code is based on Jet framework.
2// Copyright (c) 2018 Doyub Kim
3// CubbyFlow is voxel-based fluid simulation engine for computer games.
4// Copyright (c) 2020 CubbyFlow Team
5// Core Part: Chris Ohk, Junwoo Hwang, Jihong Sin, Seungwoo Yoo
6// AI Part: Dongheon Cho, Minseo Kim
7// We are making my contributions/submissions to this project solely in our
8// personal capacity and are not conveying any rights to any intellectual
9// property of any third parties.
10
11#ifndef CUBBYFLOW_CUBIC_SEMI_LAGRANGIAN3_HPP
12#define CUBBYFLOW_CUBIC_SEMI_LAGRANGIAN3_HPP
13
15
16namespace CubbyFlow
17{
24{
25 protected:
32 [[nodiscard]] std::function<double(const Vector3D&)> GetScalarSamplerFunc(
33 const ScalarGrid3& source) const override;
34
41 [[nodiscard]] std::function<Vector3D(const Vector3D&)> GetVectorSamplerFunc(
42 const CollocatedVectorGrid3& source) const override;
43
50 [[nodiscard]] std::function<Vector3D(const Vector3D&)> GetVectorSamplerFunc(
51 const FaceCenteredGrid3& source) const override;
52};
53
54using CubicSemiLagrangian3Ptr = std::shared_ptr<CubicSemiLagrangian3>;
55} // namespace CubbyFlow
56
57#endif
Abstract base class for N-D collocated vector grid structure.
Definition CollocatedVectorGrid.hpp:23
Implementation of 3-D cubic semi-Lagrangian advection solver.
Definition CubicSemiLagrangian3.hpp:24
std::function< double(const Vector3D &)> GetScalarSamplerFunc(const ScalarGrid3 &source) const override
Returns spatial interpolation function object for given scalar grid.
std::function< Vector3D(const Vector3D &)> GetVectorSamplerFunc(const CollocatedVectorGrid3 &source) const override
Returns spatial interpolation function object for given collocated vector grid.
std::function< Vector3D(const Vector3D &)> GetVectorSamplerFunc(const FaceCenteredGrid3 &source) const override
Returns spatial interpolation function object for given face-centered vector grid.
N-D face-centered (a.k.a MAC or staggered) grid.
Definition FaceCenteredGrid.hpp:32
Definition Matrix.hpp:30
Abstract base class for N-D scalar grid structure.
Definition ScalarGrid.hpp:25
Implementation of 3-D semi-Lagrangian advection solver.
Definition SemiLagrangian3.hpp:30
Definition pybind11Utils.hpp:21
Vector3< double > Vector3D
Definition Matrix.hpp:787
Matrix< T, Rows, 1 > Vector
Definition Matrix.hpp:738
std::shared_ptr< CubicSemiLagrangian3 > CubicSemiLagrangian3Ptr
Definition CubicSemiLagrangian3.hpp:54