GridBlockedBoundaryConditionSolver2.hpp
Go to the documentation of this file.
1 // This code is based on Jet framework.
2 // Copyright (c) 2018 Doyub Kim
3 // CubbyFlow is voxel-based fluid simulation engine for computer games.
4 // Copyright (c) 2020 CubbyFlow Team
5 // Core Part: Chris Ohk, Junwoo Hwang, Jihong Sin, Seungwoo Yoo
6 // AI Part: Dongheon Cho, Minseo Kim
7 // We are making my contributions/submissions to this project solely in our
8 // personal capacity and are not conveying any rights to any intellectual
9 // property of any third parties.
10 
11 #ifndef CUBBYFLOW_GRID_BLOCKED_BOUNDARY_CONDITION_SOLVER2_HPP
12 #define CUBBYFLOW_GRID_BLOCKED_BOUNDARY_CONDITION_SOLVER2_HPP
13 
15 
16 namespace CubbyFlow
17 {
29 {
30  public:
33 
36  const GridBlockedBoundaryConditionSolver2&) = delete;
37 
40  GridBlockedBoundaryConditionSolver2&&) noexcept = delete;
41 
43  ~GridBlockedBoundaryConditionSolver2() override = default;
44 
47  const GridBlockedBoundaryConditionSolver2&) = delete;
48 
51  GridBlockedBoundaryConditionSolver2&&) noexcept = delete;
52 
60  void ConstrainVelocity(FaceCenteredGrid2* velocity,
61  unsigned int extrapolationDepth = 5) override;
62 
64  [[nodiscard]] const Array2<char>& GetMarker() const;
65 
66  protected:
68  void OnColliderUpdated(const Vector2UZ& gridSize,
69  const Vector2D& gridSpacing,
70  const Vector2D& gridOrigin) override;
71 
72  private:
73  Array2<char> m_marker;
74 };
75 
78  std::shared_ptr<GridBlockedBoundaryConditionSolver2>;
79 } // namespace CubbyFlow
80 
81 #endif
GridBlockedBoundaryConditionSolver2 & operator=(const GridBlockedBoundaryConditionSolver2 &)=delete
Deleted copy assignment operator.
GridBlockedBoundaryConditionSolver2()=default
Default constructor.
void OnColliderUpdated(const Vector2UZ &gridSize, const Vector2D &gridSpacing, const Vector2D &gridOrigin) override
Invoked when a new collider is set.
void ConstrainVelocity(FaceCenteredGrid2 *velocity, unsigned int extrapolationDepth=5) override
const Array2< char > & GetMarker() const
Returns the marker which is 1 if occupied by the collider.
Fractional 2-D boundary condition solver for grids.
Definition: GridFractionalBoundaryConditionSolver2.hpp:28
Definition: Matrix.hpp:27
Definition: pybind11Utils.hpp:20
Definition: Array-Impl.hpp:19
Blocked 2-D boundary condition solver for grids.
Definition: GridBlockedBoundaryConditionSolver2.hpp:27
N-D face-centered (a.k.a MAC or staggered) grid.
Definition: FaceCenteredGrid.hpp:31
~GridBlockedBoundaryConditionSolver2() override=default
Default virtual destructor.
std::shared_ptr< GridBlockedBoundaryConditionSolver2 > GridBlockedBoundaryConditionSolver2Ptr
Shared pointer type for the GridBlockedBoundaryConditionSolver2.
Definition: GridBlockedBoundaryConditionSolver2.hpp:78