packages.sbatch-tui: always set memory

This commit is contained in:
2025-03-30 12:27:55 +08:00
parent 3f7dfae108
commit e325c99beb
3 changed files with 6 additions and 6 deletions

View File

@@ -23,8 +23,8 @@ namespace sbatch
// 用于注册程序
private: static inline std::map<std::string, std::function<std::unique_ptr<Program>()>> Factories_;
public: static std::unique_ptr<Program> create(std::string name) { return Factories_[name](); }
protected: template<typename T> static inline int register_child_()
{ Factories_[nameof::nameof_short_type<T>().str()] = []{ return std::make_unique<T>(); }; return 0; }
protected: template<typename T> [[gnu::constructor]] static inline void register_child_()
{ Factories_[nameof::nameof_short_type<T>().str()] = []{ return std::make_unique<T>(); }; }
};
// 为组件增加标题栏

View File

@@ -130,7 +130,7 @@ namespace sbatch
auto mem_string = [&]
{
if (State_.MemorySchemeSelected == 0) return recommended.Memory ? " --mem={}G"_f(*recommended.Memory) : "";
else if (State_.MemorySchemeSelected == 1) return ""s;
else if (State_.MemorySchemeSelected == 1) return " --mem=0"s;
else if (State_.MemorySchemeSelected == 2) return " --mem={}G"_f(State_.Memory);
else std::unreachable();
}();
@@ -148,6 +148,6 @@ namespace sbatch
State_.JobName, State_.OutputFile, srun_string, State_.VaspEntries[State_.VaspSelected]
);
}
private: [[gnu::constructor]] static void dummy_() { register_child_<VaspCpu>(); }
};
template void Program::register_child_<VaspCpu>();
}

View File

@@ -154,7 +154,7 @@ namespace sbatch
auto mem_string = [&]
{
if (State_.MemorySchemeSelected == 0) return " --mem=24G"s;
else if (State_.MemorySchemeSelected == 1) return ""s;
else if (State_.MemorySchemeSelected == 1) return " --mem=0"s;
else if (State_.MemorySchemeSelected == 2) return " --mem={}G"_f(State_.Memory);
else std::unreachable();
}();
@@ -164,6 +164,6 @@ namespace sbatch
State_.JobName, State_.OutputFile, State_.VaspEntries[State_.VaspSelected]
);
}
private: [[gnu::constructor]] static void dummy_() { register_child_<VaspGpu>(); }
};
template void Program::register_child_<VaspGpu>();
}