41 "set-filter-checkpoint-start-number",
"",
42 "Set the starting number of the check point filter file number.");
50 const std::shared_ptr<EquationSystem> &pEquation,
const ParamMap &pParams)
51 :
Filter(pSession, pEquation)
54 std::string ext =
".chk";
58 auto it = pParams.find(
"OutputFrequency");
59 ASSERTL0(it != pParams.end(),
"Missing parameter 'OutputFrequency'.");
64 it = pParams.find(
"OutputStartTime");
65 if (it == pParams.end())
87 auto equationSys =
m_equ.lock();
88 if (equationSys->GetFieldMetaDataMap().count(
"FilterFileNum"))
91 atoi(equationSys->GetFieldMetaDataMap()[
"FilterFileNum"].c_str());
94 if (
m_session->DefinesCmdLineArgument(
"set-filter-checkpoint-start-number"))
97 "set-filter-checkpoint-start-number"));
118 std::string ext = fs::path(
m_outputFile).extension().string();
120 std::stringstream vTmpFilename;
121 std::string vOutputFilename;
122 vTmpFilename << fs::path(
m_outputFile).replace_extension(
"").string() <<
"_"
126 std::vector<LibUtilities::FieldDefinitionsSharedPtr> FieldDef =
127 pFields[0]->GetFieldDefinitions();
128 std::vector<std::vector<NekDouble>> FieldData(FieldDef.size());
131 for (
int j = 0; j < pFields.size(); ++j)
133 for (
int i = 0; i < FieldDef.size(); ++i)
136 FieldDef[i]->m_fields.push_back(
m_session->GetVariable(j));
137 pFields[0]->AppendFieldData(FieldDef[i], FieldData[i],
138 pFields[j]->UpdateCoeffs());
141 auto equationSys =
m_equ.lock();
143 equationSys->GetFieldMetaDataMap());
144 fieldMetaDataMap[
"FilterFileNum"] = std::to_string(
m_outputIndex);
145 m_fld->Write(vOutputFilename, FieldDef, FieldData, fieldMetaDataMap);
#define ASSERTL0(condition, msg)
NekDouble Evaluate() const
static std::shared_ptr< FieldIO > CreateDefault(const LibUtilities::SessionReaderSharedPtr session)
Returns an object for the default FieldIO method.
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
static std::string RegisterCmdLineArgument(const std::string &pName, const std::string &pShortName, const std::string &pDescription)
Registers a command-line argument with the session reader.
SOLVER_UTILS_EXPORT FilterCheckpoint(const LibUtilities::SessionReaderSharedPtr &pSession, const std::shared_ptr< EquationSystem > &pEquation, const ParamMap &pParams)
static FilterSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, const std::shared_ptr< EquationSystem > &pEquation, const std::map< std::string, std::string > &pParams)
Creates an instance of this class.
NekDouble m_outputStartTime
void v_Update(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time) override
bool v_IsTimeDependent() override
void v_Initialise(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time) override
LibUtilities::FieldIOSharedPtr m_fld
unsigned int m_outputFrequency
unsigned int m_outputIndex
void v_Finalise(const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields, const NekDouble &time) override
static std::string cmdSetStartFilterFileNum
static std::string className
Name of the class.
SOLVER_UTILS_EXPORT std::string SetupOutput(const std::string ext, const ParamMap &pParams)
LibUtilities::SessionReaderSharedPtr m_session
const std::weak_ptr< EquationSystem > m_equ
std::map< std::string, std::string > ParamMap
bool m_updateOnInitialise
std::map< std::string, std::string > FieldMetaDataMap
std::shared_ptr< SessionReader > SessionReaderSharedPtr
FilterFactory & GetFilterFactory()