Jet  v1.3.3
flip_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_FLIP_SOLVER3_H_
8 #define INCLUDE_JET_FLIP_SOLVER3_H_
9 
10 #include <jet/pic_solver3.h>
11 
12 namespace jet {
13 
25 class FlipSolver3 : public PicSolver3 {
26  public:
27  class Builder;
28 
31 
34  const Size3& resolution,
35  const Vector3D& gridSpacing,
36  const Vector3D& gridOrigin);
37 
39  virtual ~FlipSolver3();
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  Array3<float> _uDelta;
69  Array3<float> _vDelta;
70  Array3<float> _wDelta;
71 };
72 
74 typedef std::shared_ptr<FlipSolver3> FlipSolver3Ptr;
75 
76 
81  : public GridFluidSolverBuilderBase3<FlipSolver3::Builder> {
82  public:
84  FlipSolver3 build() const;
85 
88 };
89 
90 } // namespace jet
91 
92 #endif // INCLUDE_JET_FLIP_SOLVER3_H_
jet::GridFluidSolver3::resolution
Size3 resolution() const
Returns the resolution of the grid system data.
jet::FlipSolver3::Builder
Front-end to create FlipSolver3 objects step by step.
Definition: flip_solver3.h:81
jet::FlipSolver3::Builder::build
FlipSolver3 build() const
Builds FlipSolver3.
jet::FlipSolver3::Builder::makeShared
FlipSolver3Ptr makeShared() const
Builds shared pointer of FlipSolver3 instance.
jet::FlipSolver3::setPicBlendingFactor
void setPicBlendingFactor(double factor)
Sets the PIC blending factor.
jet::FlipSolver3::builder
static Builder builder()
Returns builder fox FlipSolver3.
jet::FlipSolver3Ptr
std::shared_ptr< FlipSolver3 > FlipSolver3Ptr
Shared pointer type for the FlipSolver3.
Definition: flip_solver3.h:74
jet::FlipSolver3::transferFromGridsToParticles
void transferFromGridsToParticles() override
Transfers velocity field from grids to particles.
jet
Definition: advection_solver2.h:18
jet::GridFluidSolver3::gridSpacing
Vector3D gridSpacing() const
Returns the grid spacing of the grid system data.
jet::GridFluidSolverBuilderBase3
Base class for grid-based fluid solver builder.
Definition: grid_fluid_solver3.h:300
jet::FlipSolver3::~FlipSolver3
virtual ~FlipSolver3()
Default destructor.
jet::FlipSolver3::FlipSolver3
FlipSolver3(const Size3 &resolution, const Vector3D &gridSpacing, const Vector3D &gridOrigin)
Constructs solver with initial grid size.
jet::Size3
3-D size class.
Definition: size3.h:19
jet::FlipSolver3::picBlendingFactor
double picBlendingFactor() const
Returns the PIC blending factor.
jet::GridFluidSolver3::gridOrigin
Vector3D gridOrigin() const
Returns the origin of the grid system data.
jet::FlipSolver3::transferFromParticlesToGrids
void transferFromParticlesToGrids() override
Transfers velocity field from particles to grids.
jet::PicSolver3
3-D Particle-in-Cell (PIC) implementation.
Definition: pic_solver3.h:26
jet::Vector< T, 3 >
3-D vector class.
Definition: vector3.h:25
jet::FlipSolver3::FlipSolver3
FlipSolver3()
Default constructor.
pic_solver3.h
jet::Array< T, 3 >
3-D array class.
Definition: array3.h:43
jet::FlipSolver3
3-D Fluid-Implicit Particle (FLIP) implementation.
Definition: flip_solver3.h:25