diff --git a/Apps/Common/SIMSolverAdap.h b/Apps/Common/SIMSolverAdap.h index 4f612d7b..fc075f55 100644 --- a/Apps/Common/SIMSolverAdap.h +++ b/Apps/Common/SIMSolverAdap.h @@ -32,7 +32,7 @@ public: protected: //! \brief Assembles and solves the linearized FE equation system. - virtual bool assembleAndSolveSystem() + bool assembleAndSolveSystem() override { TimeStep dummy; model.init(dummy); @@ -44,6 +44,14 @@ protected: return true; } + //! \brief Saves point results to output file for a given time step. + //! \param[in] time Load/time step parameter + //! \param[in] step Load/time step counter + bool savePoints(double time, int iStep) const override + { + return model.savePoints(time, iStep); + } + T1& model; //!< Reference to the actual sim }; diff --git a/src/SIM/AdaptiveSIM.C b/src/SIM/AdaptiveSIM.C index 3e9dbc98..9f802171 100644 --- a/src/SIM/AdaptiveSIM.C +++ b/src/SIM/AdaptiveSIM.C @@ -174,6 +174,9 @@ bool AdaptiveSIM::solveStep (const char* inputfile, int iStep, bool withRF, model.getProcessAdm().cout,true,precision)) return failure(); + if (!this->savePoints(0.0, iStep)) + return failure(); + return true; } @@ -256,3 +259,9 @@ bool AdaptiveSIM::writeGlv (const char* infile, int iStep) // Write state information return model.writeGlvStep(iStep,iStep,1); } + + +bool AdaptiveSIM::savePoints(double time, int iStep) const +{ + return model.savePoints(solution.front(), time, iStep); +} diff --git a/src/SIM/AdaptiveSIM.h b/src/SIM/AdaptiveSIM.h index c91124ff..d9e62853 100644 --- a/src/SIM/AdaptiveSIM.h +++ b/src/SIM/AdaptiveSIM.h @@ -73,6 +73,12 @@ public: //! \param[in] elem The XML element to parse virtual bool parse(const TiXmlElement* elem); + //! \brief Saves point results to output file for a given time step. + //! \param[in] time Load/time step parameter + //! \param[in] step Load/time step counter + //! \details By default it just forwards to the underlying model + virtual bool savePoints(double time, int iStep) const; + protected: //! \brief Assembles and solves the linear FE equation system. virtual bool assembleAndSolveSystem();