GridBlockedBoundaryConditionSolver3.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_SOLVER3_HPP
12 #define CUBBYFLOW_GRID_BLOCKED_BOUNDARY_CONDITION_SOLVER3_HPP
13 
15 
16 namespace CubbyFlow
17 {
29 {
30  public:
33 
36  const GridBlockedBoundaryConditionSolver3&) = delete;
37 
40  GridBlockedBoundaryConditionSolver3&&) noexcept = delete;
41 
43  ~GridBlockedBoundaryConditionSolver3() override = default;
44 
47  const GridBlockedBoundaryConditionSolver3&) = delete;
48 
51  GridBlockedBoundaryConditionSolver3&&) noexcept = delete;
52 
60  void ConstrainVelocity(FaceCenteredGrid3* velocity,
61  unsigned int extrapolationDepth = 5) override;
62 
64  [[nodiscard]] const Array3<char>& GetMarker() const;
65 
66  protected:
68  void OnColliderUpdated(const Vector3UZ& gridSize,
69  const Vector3D& gridSpacing,
70  const Vector3D& gridOrigin) override;
71 
72  private:
73  Array3<char> m_marker;
74 };
75 
78  std::shared_ptr<GridBlockedBoundaryConditionSolver3>;
79 } // namespace CubbyFlow
80 
81 #endif
GridBlockedBoundaryConditionSolver3()=default
Default constructor.
Fractional 3-D boundary condition solver for grids.
Definition: GridFractionalBoundaryConditionSolver3.hpp:28
std::shared_ptr< GridBlockedBoundaryConditionSolver3 > GridBlockedBoundaryConditionSolver3Ptr
Shared pointer type for the GridBlockedBoundaryConditionSolver3.
Definition: GridBlockedBoundaryConditionSolver3.hpp:78
Blocked 3-D boundary condition solver for grids.
Definition: GridBlockedBoundaryConditionSolver3.hpp:27
Definition: Matrix.hpp:27
Definition: pybind11Utils.hpp:20
Definition: Array-Impl.hpp:19
void OnColliderUpdated(const Vector3UZ &gridSize, const Vector3D &gridSpacing, const Vector3D &gridOrigin) override
Invoked when a new collider is set.
const Array3< char > & GetMarker() const
Returns the marker which is 1 if occupied by the collider.
N-D face-centered (a.k.a MAC or staggered) grid.
Definition: FaceCenteredGrid.hpp:31
GridBlockedBoundaryConditionSolver3 & operator=(const GridBlockedBoundaryConditionSolver3 &)=delete
Deleted copy assignment operator.
~GridBlockedBoundaryConditionSolver3() override=default
Default virtual destructor.
void ConstrainVelocity(FaceCenteredGrid3 *velocity, unsigned int extrapolationDepth=5) override