Jet  v1.3.3
cubic_semi_lagrangian3.h
Go to the documentation of this file.
1 // Copyright (c) 2018 Doyub Kim
2 //
3 // I am making my contributions/submissions to this project solely in my
4 // personal capacity and am not conveying any rights to any intellectual
5 // property of any third parties.
6 
7 #ifndef INCLUDE_JET_CUBIC_SEMI_LAGRANGIAN3_H_
8 #define INCLUDE_JET_CUBIC_SEMI_LAGRANGIAN3_H_
9 
10 #include <jet/semi_lagrangian3.h>
11 
12 namespace jet {
13 
19 class CubicSemiLagrangian3 final : public SemiLagrangian3 {
20  public:
22 
23  protected:
30  std::function<double(const Vector3D&)> getScalarSamplerFunc(
31  const ScalarGrid3& source) const override;
32 
39  std::function<Vector3D(const Vector3D&)> getVectorSamplerFunc(
40  const CollocatedVectorGrid3& source) const override;
41 
48  std::function<Vector3D(const Vector3D&)> getVectorSamplerFunc(
49  const FaceCenteredGrid3& source) const override;
50 };
51 
52 typedef std::shared_ptr<CubicSemiLagrangian3> CubicSemiLagrangian3Ptr;
53 
54 } // namespace jet
55 
56 #endif // INCLUDE_JET_CUBIC_SEMI_LAGRANGIAN3_H_
jet::CubicSemiLagrangian3::getScalarSamplerFunc
std::function< double(const Vector3D &)> getScalarSamplerFunc(const ScalarGrid3 &source) const override
Returns spatial interpolation function object for given scalar grid.
jet::CollocatedVectorGrid3
Abstract base class for 3-D collocated vector grid structure.
Definition: collocated_vector_grid3.h:18
jet::CubicSemiLagrangian3::getVectorSamplerFunc
std::function< Vector3D(const Vector3D &)> getVectorSamplerFunc(const FaceCenteredGrid3 &source) const override
Returns spatial interpolation function object for given face-centered vector grid.
jet
Definition: advection_solver2.h:18
jet::SemiLagrangian3
Implementation of 3-D semi-Lagrangian advection solver.
Definition: semi_lagrangian3.h:26
jet::CubicSemiLagrangian3Ptr
std::shared_ptr< CubicSemiLagrangian3 > CubicSemiLagrangian3Ptr
Definition: cubic_semi_lagrangian3.h:52
jet::CubicSemiLagrangian3::CubicSemiLagrangian3
CubicSemiLagrangian3()
jet::FaceCenteredGrid3
3-D face-centered (a.k.a MAC or staggered) grid.
Definition: face_centered_grid3.h:26
jet::ScalarGrid3
Abstract base class for 3-D scalar grid structure.
Definition: scalar_grid3.h:21
jet::Vector3D
Vector3< double > Vector3D
Double-type 3D vector.
Definition: vector3.h:349
semi_lagrangian3.h
jet::Vector< T, 3 >
3-D vector class.
Definition: vector3.h:25
jet::CubicSemiLagrangian3::getVectorSamplerFunc
std::function< Vector3D(const Vector3D &)> getVectorSamplerFunc(const CollocatedVectorGrid3 &source) const override
Returns spatial interpolation function object for given collocated vector grid.
jet::CubicSemiLagrangian3
Implementation of 3-D cubic semi-Lagrangian advection solver.
Definition: cubic_semi_lagrangian3.h:19