diff --git a/include/parameter.hpp b/include/parameter.hpp index 3d2390f4..31f18b12 100644 --- a/include/parameter.hpp +++ b/include/parameter.hpp @@ -76,6 +76,7 @@ class FilenameParam : public IntegerParam virtual void SetParam(const int ¶m_index, InputParser &parser) override; virtual void SetRandomParam(InputParser &parser) override; + void ParseFilenames(std::vector &filenames); }; #endif diff --git a/src/main_workflow.cpp b/src/main_workflow.cpp index 1726ecc6..7a59b61e 100644 --- a/src/main_workflow.cpp +++ b/src/main_workflow.cpp @@ -157,6 +157,13 @@ void TrainROM(MPI_Comm comm) std::vector file_list = config.GetOptionFromDict>( "snapshot_files", std::vector(0), basis_list[p]); + YAML::Node snapshot_format = config.FindNodeFromDict("snapshot_format", basis_list[p]); + if (snapshot_format) + { + FilenameParam snapshot_param("", snapshot_format); + snapshot_param.ParseFilenames(file_list); + } + if (file_list.size() == 0) { std::string filename = sample_generator->GetBaseFilename(sample_generator->GetSamplePrefix(), basis_tag); diff --git a/src/parameter.cpp b/src/parameter.cpp index a8d29ddf..73378a17 100644 --- a/src/parameter.cpp +++ b/src/parameter.cpp @@ -136,4 +136,11 @@ void FilenameParam::SetRandomParam(InputParser &parser) std::string filename = string_format(format, val); parser.SetOption(key, filename); +} + +void FilenameParam::ParseFilenames(std::vector &filenames) +{ + for (int k = minval; k <= maxval; k++) + filenames.push_back(string_format(format, k)); + return; } \ No newline at end of file