11 #ifndef CUBBYFLOW_CUDA_WC_SPH_SOLVER3_HPP 12 #define CUBBYFLOW_CUDA_WC_SPH_SOLVER3_HPP 14 #ifdef CUBBYFLOW_USE_CUDA 36 class CUDAWCSPHSolver3 :
public CUDASPHSolverBase3
46 CUDAWCSPHSolver3(
float targetDensity,
float targetSpacing,
47 float relativeKernelRadius);
50 CUDAWCSPHSolver3(
const CUDAWCSPHSolver3&) =
delete;
53 CUDAWCSPHSolver3(CUDAWCSPHSolver3&&) noexcept = delete;
56 ~CUDAWCSPHSolver3() override = default;
59 CUDAWCSPHSolver3& operator=(const CUDAWCSPHSolver3&) = delete;
62 CUDAWCSPHSolver3& operator=(CUDAWCSPHSolver3&&) 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 CUDAWCSPHSolver3Ptr = std::shared_ptr<CUDAWCSPHSolver3>;
93 class CUDAWCSPHSolver3::Builder final
94 : public CUDASPHSolverBuilderBase3<CUDAWCSPHSolver3::Builder>
98 [[nodiscard]] CUDAWCSPHSolver3 Build()
const;
101 [[nodiscard]] CUDAWCSPHSolver3Ptr MakeShared()
const;
Definition: pybind11Utils.hpp:20