CubicSemiLagrangian3.h
Go to the documentation of this file.
1 /*************************************************************************
2 > File Name: CubicSemiLagrangian3.h
3 > Project Name: CubbyFlow
4 > Author: Chan-Ho Chris Ohk
5 > Purpose: Implementation of 3-D cubic semi-Lagrangian advection solver.
6 > Created Time: 2017/08/08
7 > Copyright (c) 2018, Chan-Ho Chris Ohk
8 *************************************************************************/
9 #ifndef CUBBYFLOW_CUBIC_SEMI_LAGRANGIAN3_H
10 #define CUBBYFLOW_CUBIC_SEMI_LAGRANGIAN3_H
11 
13 
14 namespace CubbyFlow
15 {
22  {
23  public:
25 
26  protected:
32  std::function<double(const Vector3D&)> GetScalarSamplerFunc(const ScalarGrid3& source) const override;
33 
40  std::function<Vector3D(const Vector3D&)> GetVectorSamplerFunc(const CollocatedVectorGrid3& source) const override;
41 
48  std::function<Vector3D(const Vector3D&)> GetVectorSamplerFunc(const FaceCenteredGrid3& source) const override;
49  };
50 
51  using CubicSemiLagrangian3Ptr = std::shared_ptr<CubicSemiLagrangian3>;
52 }
53 
54 #endif
Abstract base class for 3-D collocated vector grid structure.
Definition: CollocatedVectorGrid3.h:19
Implementation of 3-D semi-Lagrangian advection solver.
Definition: SemiLagrangian3.h:27
3-D face-centered (a.k.a MAC or staggered) grid.
Definition: FaceCenteredGrid3.h:25
Definition: pybind11Utils.h:24
Implementation of 3-D cubic semi-Lagrangian advection solver.
Definition: CubicSemiLagrangian3.h:21
Abstract base class for 3-D scalar grid structure.
Definition: ScalarGrid3.h:21
std::shared_ptr< CubicSemiLagrangian3 > CubicSemiLagrangian3Ptr
Definition: CubicSemiLagrangian3.h:51
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.