CubicSemiLagrangian2.h
Go to the documentation of this file.
1 /*************************************************************************
2 > File Name: CubicSemiLagrangian2.h
3 > Project Name: CubbyFlow
4 > Author: Chan-Ho Chris Ohk
5 > Purpose: Implementation of 2-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_LAGRANGIAN2_H
10 #define CUBBYFLOW_CUBIC_SEMI_LAGRANGIAN2_H
11 
13 
14 namespace CubbyFlow
15 {
22  {
23  public:
25 
26  protected:
32  std::function<double(const Vector2D&)> GetScalarSamplerFunc(const ScalarGrid2& source) const override;
33 
40  std::function<Vector2D(const Vector2D&)> GetVectorSamplerFunc(const CollocatedVectorGrid2& source) const override;
41 
48  std::function<Vector2D(const Vector2D&)> GetVectorSamplerFunc(const FaceCenteredGrid2& source) const override;
49  };
50 
51  using CubicSemiLagrangian2Ptr = std::shared_ptr<CubicSemiLagrangian2>;
52 }
53 
54 #endif
std::function< double(const Vector2D &)> GetScalarSamplerFunc(const ScalarGrid2 &source) const override
Returns spatial interpolation function object for given scalar grid.
Implementation of 2-D semi-Lagrangian advection solver.
Definition: SemiLagrangian2.h:27
std::shared_ptr< CubicSemiLagrangian2 > CubicSemiLagrangian2Ptr
Definition: CubicSemiLagrangian2.h:51
Abstract base class for 2-D collocated vector grid structure.
Definition: CollocatedVectorGrid2.h:19
2-D face-centered (a.k.a MAC or staggered) grid.
Definition: FaceCenteredGrid2.h:25
Definition: pybind11Utils.h:24
Implementation of 2-D cubic semi-Lagrangian advection solver.
Definition: CubicSemiLagrangian2.h:21
std::function< Vector2D(const Vector2D &)> GetVectorSamplerFunc(const CollocatedVectorGrid2 &source) const override
Returns spatial interpolation function object for given collocated vector grid.
Abstract base class for 2-D scalar grid structure.
Definition: ScalarGrid2.h:21