Jet  v1.3.3
grid_diffusion_solver3.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_SOLVER3_H_
8 #define INCLUDE_JET_GRID_DIFFUSION_SOLVER3_H_
9 
12 #include <jet/constants.h>
14 #include <jet/scalar_grid3.h>
15 #include <limits>
16 #include <memory>
17 
18 namespace jet {
19 
29 
31  public:
34 
37 
48  virtual void solve(
49  const ScalarGrid3& source,
50  double diffusionCoefficient,
51  double timeIntervalInSeconds,
52  ScalarGrid3* dest,
53  const ScalarField3& boundarySdf = ConstantScalarField3(kMaxD),
54  const ScalarField3& fluidSdf = ConstantScalarField3(-kMaxD)) = 0;
55 
66  virtual void solve(
67  const CollocatedVectorGrid3& source,
68  double diffusionCoefficient,
69  double timeIntervalInSeconds,
71  const ScalarField3& boundarySdf = ConstantScalarField3(kMaxD),
72  const ScalarField3& fluidSdf = ConstantScalarField3(-kMaxD)) = 0;
73 
84  virtual void solve(
85  const FaceCenteredGrid3& source,
86  double diffusionCoefficient,
87  double timeIntervalInSeconds,
88  FaceCenteredGrid3* dest,
89  const ScalarField3& boundarySdf = ConstantScalarField3(kMaxD),
90  const ScalarField3& fluidSdf = ConstantScalarField3(-kMaxD)) = 0;
91 };
92 
94 typedef std::shared_ptr<GridDiffusionSolver3> GridDiffusionSolver3Ptr;
95 
96 } // namespace jet
97 
98 #endif // INCLUDE_JET_GRID_DIFFUSION_SOLVER3_H_
jet::GridDiffusionSolver3::solve
virtual void solve(const FaceCenteredGrid3 &source, double diffusionCoefficient, double timeIntervalInSeconds, FaceCenteredGrid3 *dest, const ScalarField3 &boundarySdf=ConstantScalarField3(kMaxD), const ScalarField3 &fluidSdf=ConstantScalarField3(-kMaxD))=0
scalar_grid3.h
jet::ScalarField3
Abstract base class for 3-D scalar field.
Definition: scalar_field3.h:18
jet::GridDiffusionSolver3Ptr
std::shared_ptr< GridDiffusionSolver3 > GridDiffusionSolver3Ptr
Shared pointer type for the GridDiffusionSolver3.
Definition: grid_diffusion_solver3.h:94
jet::CollocatedVectorGrid3
Abstract base class for 3-D collocated vector grid structure.
Definition: collocated_vector_grid3.h:18
jet
Definition: advection_solver2.h:18
jet::GridDiffusionSolver3
Abstract base class for 3-D grid-based diffusion equation solver.
Definition: grid_diffusion_solver3.h:30
jet::GridDiffusionSolver3::GridDiffusionSolver3
GridDiffusionSolver3()
Default constructor.
jet::FaceCenteredGrid3
3-D face-centered (a.k.a MAC or staggered) grid.
Definition: face_centered_grid3.h:26
jet::ConstantScalarField3
3-D constant scalar field.
Definition: constant_scalar_field3.h:15
jet::GridDiffusionSolver3::solve
virtual void solve(const CollocatedVectorGrid3 &source, double diffusionCoefficient, double timeIntervalInSeconds, CollocatedVectorGrid3 *dest, const ScalarField3 &boundarySdf=ConstantScalarField3(kMaxD), const ScalarField3 &fluidSdf=ConstantScalarField3(-kMaxD))=0
jet::GridDiffusionSolver3::~GridDiffusionSolver3
virtual ~GridDiffusionSolver3()
Default destructor.
jet::kMaxD
constexpr double kMaxD
Max double.
Definition: constants.h:88
jet::GridDiffusionSolver3::solve
virtual void solve(const ScalarGrid3 &source, double diffusionCoefficient, double timeIntervalInSeconds, ScalarGrid3 *dest, const ScalarField3 &boundarySdf=ConstantScalarField3(kMaxD), const ScalarField3 &fluidSdf=ConstantScalarField3(-kMaxD))=0
constant_scalar_field3.h
jet::ScalarGrid3
Abstract base class for 3-D scalar grid structure.
Definition: scalar_grid3.h:21
constants.h
face_centered_grid3.h
collocated_vector_grid3.h