diff --git a/docs/user-guide/xml/xml-filters.tex b/docs/user-guide/xml/xml-filters.tex index 8537eb3464bd05ea86c4b29ec5b5e05536eb90cc..86b57cd53c89b081aeafa4511878fa736b947864 100644 --- a/docs/user-guide/xml/xml-filters.tex +++ b/docs/user-guide/xml/xml-filters.tex @@ -282,7 +282,7 @@ Filter \inltt{Electrogram} computes virtual unipolar electrograms at a \subsection{Error}\label{filters:Error} -This filter produces a CSV file containing the time-evolution of the $L_2$ and +This filter produces a file containing the time-evolution of the $L_2$ and $L_{inf}$ errors. By default this file is called \inltt{session.err} where \inltt{session} is the session name. diff --git a/library/SolverUtils/Filters/FilterError.cpp b/library/SolverUtils/Filters/FilterError.cpp index a51c2d4e319309e29d884c1951b51bd743e80358..bd5ffca8478690f76579fa5b2a1199806ce13fb3 100644 --- a/library/SolverUtils/Filters/FilterError.cpp +++ b/library/SolverUtils/Filters/FilterError.cpp @@ -64,10 +64,10 @@ FilterError::FilterError(const LibUtilities::SessionReaderSharedPtr &pSession, outName += ".err"; // Lock equation system pointer - m_equationShPtr = pEquation.lock(); - ASSERTL0(m_equationShPtr, "Weak pointer expired"); + auto equationSys = m_equ.lock(); + ASSERTL0(equationSys, "Weak pointer expired"); - m_numVariables = m_equationShPtr->GetNvariables(); + m_numVariables = equationSys->GetNvariables(); m_comm = pSession->GetComm(); if (m_comm->GetRank() == 0) @@ -79,9 +79,9 @@ FilterError::FilterError(const LibUtilities::SessionReaderSharedPtr &pSession, m_outFile << "Time"; for (size_t i = 0; i < m_numVariables; ++i) { - std::string varName = m_equationShPtr->GetVariable(i); - m_outFile << "," + varName + " L2" - << "," + varName + " Linf"; + std::string varName = equationSys->GetVariable(i); + m_outFile << " " + varName + "_L2" + << " " + varName + "_Linf"; } m_outFile << std::endl; @@ -125,19 +125,23 @@ void FilterError::v_Update( m_outFile << time; } + // Lock equation system pointer + auto equationSys = m_equ.lock(); + ASSERTL0(equationSys, "Weak pointer expired"); + for (size_t i = 0; i < m_numVariables; ++i) { - Array exactsoln(m_equationShPtr->GetTotPoints(), 0.0); + Array exactsoln(equationSys->GetTotPoints(), 0.0); // Evaluate "ExactSolution" function, or zero array - m_equationShPtr->EvaluateExactSolution(i, exactsoln, time); + equationSys->EvaluateExactSolution(i, exactsoln, time); - NekDouble vL2Error = m_equationShPtr->L2Error(i, exactsoln); - NekDouble vLinfError = m_equationShPtr->LinfError(i, exactsoln); + NekDouble vL2Error = equationSys->L2Error(i, exactsoln); + NekDouble vLinfError = equationSys->LinfError(i, exactsoln); if (m_comm->GetRank() == 0) { - m_outFile << "," << vL2Error << "," << vLinfError; + m_outFile << " " << vL2Error << " " << vLinfError; } } diff --git a/library/SolverUtils/Filters/FilterError.h b/library/SolverUtils/Filters/FilterError.h index 803a387293e5f2437d0cd1035cec8a7776bdbdb7..496716d5a1c488f4c18ee9514471750438b122bd 100644 --- a/library/SolverUtils/Filters/FilterError.h +++ b/library/SolverUtils/Filters/FilterError.h @@ -84,7 +84,6 @@ private: size_t m_numVariables; std::ofstream m_outFile; LibUtilities::CommSharedPtr m_comm; - std::shared_ptr m_equationShPtr; }; } // namespace SolverUtils } // namespace Nektar