Jet  v1.3.3
flip_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_FLIP_SOLVER2_H_
8 #define INCLUDE_JET_FLIP_SOLVER2_H_
9 
10 #include <jet/pic_solver2.h>
11 
12 namespace jet {
13 
25 class FlipSolver2 : public PicSolver2 {
26  public:
27  class Builder;
28 
31 
34  const Size2& resolution,
35  const Vector2D& gridSpacing,
36  const Vector2D& gridOrigin);
37 
39  virtual ~FlipSolver2();
40 
42  double picBlendingFactor() const;
43 
54  void setPicBlendingFactor(double factor);
55 
57  static Builder builder();
58 
59  protected:
62 
65 
66  private:
67  double _picBlendingFactor = 0.0;
68  Array2<float> _uDelta;
69  Array2<float> _vDelta;
70 };
71 
73 typedef std::shared_ptr<FlipSolver2> FlipSolver2Ptr;
74 
75 
80  : public GridFluidSolverBuilderBase2<FlipSolver2::Builder> {
81  public:
83  FlipSolver2 build() const;
84 
87 };
88 
89 } // namespace jet
90 
91 #endif // INCLUDE_JET_FLIP_SOLVER2_H_
jet::FlipSolver2
2-D Fluid-Implicit Particle (FLIP) implementation.
Definition: flip_solver2.h:25
jet::GridFluidSolver2::gridSpacing
Vector2D gridSpacing() const
Returns the grid spacing of the grid system data.
jet::FlipSolver2::Builder::build
FlipSolver2 build() const
Builds FlipSolver2.
jet::FlipSolver2::setPicBlendingFactor
void setPicBlendingFactor(double factor)
Sets the PIC blending factor.
pic_solver2.h
jet::PicSolver2
2-D Particle-in-Cell (PIC) implementation.
Definition: pic_solver2.h:26
jet::GridFluidSolver2::gridOrigin
Vector2D gridOrigin() const
Returns the origin of the grid system data.
jet::FlipSolver2::transferFromGridsToParticles
void transferFromGridsToParticles() override
Transfers velocity field from grids to particles.
jet::FlipSolver2::~FlipSolver2
virtual ~FlipSolver2()
Default destructor.
jet::Array< T, 2 >
2-D array class.
Definition: array2.h:42
jet::FlipSolver2::picBlendingFactor
double picBlendingFactor() const
Returns the PIC blending factor.
jet
Definition: advection_solver2.h:18
jet::Vector< T, 2 >
2-D vector class.
Definition: vector2.h:24
jet::FlipSolver2::FlipSolver2
FlipSolver2()
Default constructor.
jet::FlipSolver2Ptr
std::shared_ptr< FlipSolver2 > FlipSolver2Ptr
Shared pointer type for the FlipSolver2.
Definition: flip_solver2.h:73
jet::FlipSolver2::Builder
Front-end to create FlipSolver2 objects step by step.
Definition: flip_solver2.h:80
jet::FlipSolver2::builder
static Builder builder()
Returns builder fox FlipSolver2.
jet::Size2
2-D size class.
Definition: size2.h:19
jet::FlipSolver2::Builder::makeShared
FlipSolver2Ptr makeShared() const
Builds shared pointer of FlipSolver2 instance.
jet::FlipSolver2::FlipSolver2
FlipSolver2(const Size2 &resolution, const Vector2D &gridSpacing, const Vector2D &gridOrigin)
Constructs solver with initial grid size.
jet::GridFluidSolver2::resolution
Size2 resolution() const
Returns the resolution of the grid system data.
jet::FlipSolver2::transferFromParticlesToGrids
void transferFromParticlesToGrids() override
Transfers velocity field from particles to grids.
jet::GridFluidSolverBuilderBase2
Base class for grid-based fluid solver builder.
Definition: grid_fluid_solver2.h:300