Jet  v1.3.3
advection_solver2.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_ADVECTION_SOLVER2_H_
8 #define INCLUDE_JET_ADVECTION_SOLVER2_H_
9 
12 #include <jet/constants.h>
14 #include <jet/scalar_grid2.h>
15 #include <limits>
16 #include <memory>
17 
18 namespace jet {
19 
27  public:
29 
30  virtual ~AdvectionSolver2();
31 
50  virtual void advect(
51  const ScalarGrid2& input,
52  const VectorField2& flow,
53  double dt,
54  ScalarGrid2* output,
55  const ScalarField2& boundarySdf
57 
76  virtual void advect(
77  const CollocatedVectorGrid2& input,
78  const VectorField2& flow,
79  double dt,
80  CollocatedVectorGrid2* output,
81  const ScalarField2& boundarySdf
83 
103  virtual void advect(
104  const FaceCenteredGrid2& input,
105  const VectorField2& flow,
106  double dt,
107  FaceCenteredGrid2* output,
108  const ScalarField2& boundarySdf
110 };
111 
113 typedef std::shared_ptr<AdvectionSolver2> AdvectionSolver2Ptr;
114 
115 } // namespace jet
116 
117 #endif // INCLUDE_JET_ADVECTION_SOLVER2_H_
jet::AdvectionSolver2::advect
virtual void advect(const CollocatedVectorGrid2 &input, const VectorField2 &flow, double dt, CollocatedVectorGrid2 *output, const ScalarField2 &boundarySdf=ConstantScalarField2(kMaxD))
Solves advection equation for given collocated vector grid.
jet::ScalarField2
Abstract base class for 2-D scalar field.
Definition: scalar_field2.h:18
constant_scalar_field2.h
jet::FaceCenteredGrid2
2-D face-centered (a.k.a MAC or staggered) grid.
Definition: face_centered_grid2.h:26
jet::AdvectionSolver2
Abstract based class for 2-D grid-based advection solver.
Definition: advection_solver2.h:26
jet::AdvectionSolver2::AdvectionSolver2
AdvectionSolver2()
jet
Definition: advection_solver2.h:18
jet::ScalarGrid2
Abstract base class for 2-D scalar grid structure.
Definition: scalar_grid2.h:21
jet::ConstantScalarField2
2-D constant scalar field.
Definition: constant_scalar_field2.h:15
jet::AdvectionSolver2Ptr
std::shared_ptr< AdvectionSolver2 > AdvectionSolver2Ptr
Shared pointer type for the 2-D advection solver.
Definition: advection_solver2.h:113
jet::AdvectionSolver2::~AdvectionSolver2
virtual ~AdvectionSolver2()
jet::AdvectionSolver2::advect
virtual void advect(const ScalarGrid2 &input, const VectorField2 &flow, double dt, ScalarGrid2 *output, const ScalarField2 &boundarySdf=ConstantScalarField2(kMaxD))=0
Solves advection equation for given scalar grid.
jet::CollocatedVectorGrid2
Abstract base class for 2-D collocated vector grid structure.
Definition: collocated_vector_grid2.h:18
collocated_vector_grid2.h
jet::kMaxD
constexpr double kMaxD
Max double.
Definition: constants.h:88
face_centered_grid2.h
scalar_grid2.h
constants.h
jet::VectorField2
Abstract base class for 2-D vector field.
Definition: vector_field2.h:18
jet::AdvectionSolver2::advect
virtual void advect(const FaceCenteredGrid2 &input, const VectorField2 &flow, double dt, FaceCenteredGrid2 *output, const ScalarField2 &boundarySdf=ConstantScalarField2(kMaxD))
Solves advection equation for given face-centered vector grid.