1 #pragma once 2 3 #include "run/Job.h" 4 5 NAMESPACE_SPH_BEGIN 6 7 class SphJob : public IRunJob, public SharedToken { 8 protected: 9 RunSettings settings; 10 bool isResumed = false; 11 12 public: 13 explicit SphJob(const String& name, const RunSettings& overrides = EMPTY_SETTINGS); 14 15 static RunSettings getDefaultSettings(const String& name); 16 className()17 virtual String className() const override { 18 return "SPH run"; 19 } 20 getSlots()21 virtual UnorderedMap<String, ExtJobType> getSlots() const override { 22 return { { "particles", JobType::PARTICLES }, { "boundary", JobType::GEOMETRY } }; 23 } 24 25 virtual UnorderedMap<String, ExtJobType> requires()26 requires() const override { 27 UnorderedMap<String, ExtJobType> map{ { "particles", JobType::PARTICLES } }; 28 if (settings.get<BoundaryEnum>(RunSettingsId::DOMAIN_BOUNDARY) != BoundaryEnum::NONE) { 29 map.insert("boundary", JobType::GEOMETRY); 30 } 31 return map; 32 } 33 34 virtual VirtualSettings getSettings() override; 35 36 virtual AutoPtr<IRun> getRun(const RunSettings& overrides) const override; 37 }; 38 39 class SphStabilizationJob : public SphJob { 40 public: 41 using SphJob::SphJob; 42 className()43 virtual String className() const override { 44 return "SPH stabilization"; 45 } 46 47 virtual VirtualSettings getSettings() override; 48 49 virtual AutoPtr<IRun> getRun(const RunSettings& overrides) const override; 50 }; 51 52 class NBodyJob : public IRunJob, public SharedToken { 53 private: 54 RunSettings settings; 55 bool useSoft = false; 56 bool isResumed = false; 57 58 public: 59 explicit NBodyJob(const String& name, const RunSettings& overrides = EMPTY_SETTINGS); 60 61 static RunSettings getDefaultSettings(const String& name); 62 className()63 virtual String className() const override { 64 return "N-body run"; 65 } 66 getSlots()67 virtual UnorderedMap<String, ExtJobType> getSlots() const override { 68 return { { "particles", JobType::PARTICLES } }; 69 } 70 71 virtual VirtualSettings getSettings() override; 72 73 virtual AutoPtr<IRun> getRun(const RunSettings& overrides) const override; 74 }; 75 76 NAMESPACE_SPH_END 77