Jet  v1.3.3
grid_diffusion_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_GRID_DIFFUSION_SOLVER2_H_
8 #define INCLUDE_JET_GRID_DIFFUSION_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 
30  public:
33 
36 
47  virtual void solve(
48  const ScalarGrid2& source,
49  double diffusionCoefficient,
50  double timeIntervalInSeconds,
51  ScalarGrid2* dest,
52  const ScalarField2& boundarySdf = ConstantScalarField2(kMaxD),
53  const ScalarField2& fluidSdf = ConstantScalarField2(-kMaxD)) = 0;
54 
65  virtual void solve(
66  const CollocatedVectorGrid2& source,
67  double diffusionCoefficient,
68  double timeIntervalInSeconds,
70  const ScalarField2& boundarySdf = ConstantScalarField2(kMaxD),
71  const ScalarField2& fluidSdf = ConstantScalarField2(-kMaxD)) = 0;
72 
83  virtual void solve(
84  const FaceCenteredGrid2& source,
85  double diffusionCoefficient,
86  double timeIntervalInSeconds,
87  FaceCenteredGrid2* dest,
88  const ScalarField2& boundarySdf = ConstantScalarField2(kMaxD),
89  const ScalarField2& fluidSdf = ConstantScalarField2(-kMaxD)) = 0;
90 };
91 
93 typedef std::shared_ptr<GridDiffusionSolver2> GridDiffusionSolver2Ptr;
94 
95 } // namespace jet
96 
97 #endif // INCLUDE_JET_GRID_DIFFUSION_SOLVER2_H_
jet::GridDiffusionSolver2::GridDiffusionSolver2
GridDiffusionSolver2()
Default constructor.
jet::GridDiffusionSolver2
Abstract base class for 2-D grid-based diffusion equation solver.
Definition: grid_diffusion_solver2.h:29
jet::GridDiffusionSolver2Ptr
std::shared_ptr< GridDiffusionSolver2 > GridDiffusionSolver2Ptr
Shared pointer type for the GridDiffusionSolver2.
Definition: grid_diffusion_solver2.h:93
jet::GridDiffusionSolver2::solve
virtual void solve(const ScalarGrid2 &source, double diffusionCoefficient, double timeIntervalInSeconds, ScalarGrid2 *dest, const ScalarField2 &boundarySdf=ConstantScalarField2(kMaxD), const ScalarField2 &fluidSdf=ConstantScalarField2(-kMaxD))=0
jet::GridDiffusionSolver2::solve
virtual void solve(const FaceCenteredGrid2 &source, double diffusionCoefficient, double timeIntervalInSeconds, FaceCenteredGrid2 *dest, const ScalarField2 &boundarySdf=ConstantScalarField2(kMaxD), const ScalarField2 &fluidSdf=ConstantScalarField2(-kMaxD))=0
jet::ScalarField2
Abstract base class for 2-D scalar field.
Definition: scalar_field2.h:18
jet::GridDiffusionSolver2::~GridDiffusionSolver2
virtual ~GridDiffusionSolver2()
Default destructor.
constant_scalar_field2.h
jet::FaceCenteredGrid2
2-D face-centered (a.k.a MAC or staggered) grid.
Definition: face_centered_grid2.h:26
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::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
jet::GridDiffusionSolver2::solve
virtual void solve(const CollocatedVectorGrid2 &source, double diffusionCoefficient, double timeIntervalInSeconds, CollocatedVectorGrid2 *dest, const ScalarField2 &boundarySdf=ConstantScalarField2(kMaxD), const ScalarField2 &fluidSdf=ConstantScalarField2(-kMaxD))=0
scalar_grid2.h
constants.h