11 #ifndef CUBBYFLOW_CUDA_WC_SPH_SOLVER2_HPP 12 #define CUBBYFLOW_CUDA_WC_SPH_SOLVER2_HPP 14 #ifdef CUBBYFLOW_USE_CUDA 36 class CUDAWCSPHSolver2 :
public CUDASPHSolverBase2
46 CUDAWCSPHSolver2(
float targetDensity,
float targetSpacing,
47 float relativeKernelRadius);
50 CUDAWCSPHSolver2(
const CUDAWCSPHSolver2&) =
delete;
53 CUDAWCSPHSolver2(CUDAWCSPHSolver2&&) noexcept = delete;
56 ~CUDAWCSPHSolver2() override = default;
59 CUDAWCSPHSolver2& operator=(const CUDAWCSPHSolver2&) = delete;
62 CUDAWCSPHSolver2& operator=(CUDAWCSPHSolver2&&) noexcept = delete;
65 [[nodiscard]]
float EOSExponent() const;
74 void SetEOSExponent(
float newEosExponent);
77 static Builder GetBuilder();
81 void OnAdvanceTimeStep(
double timeStepInSeconds) override;
84 float m_eosExponent = 7.0f;
88 using CUDAWCSPHSolver2Ptr = std::shared_ptr<CUDAWCSPHSolver2>;
93 class CUDAWCSPHSolver2::Builder final
94 : public CUDASPHSolverBuilderBase2<CUDAWCSPHSolver2::Builder>
98 [[nodiscard]] CUDAWCSPHSolver2 Build()
const;
101 [[nodiscard]] CUDAWCSPHSolver2Ptr MakeShared()
const;
Definition: pybind11Utils.hpp:20