|
Nektar++
|
#include <Equation.h>
Public Member Functions | |
| Equation (const Equation &)=default | |
| Equation () | |
| Equation (InterpreterSharedPtr evaluator, const std::string &expr="", const std::string &vlist="") | |
| Equation & | operator= (const Equation &src) |
| NekDouble | Evaluate () const |
| NekDouble | Evaluate (NekDouble x, NekDouble y=0, NekDouble z=0, NekDouble t=0) const |
| NekDouble | Evaluate (std::vector< NekDouble > point) const |
| void | Evaluate (const Array< OneD, const NekDouble > &x, const Array< OneD, const NekDouble > &y, const Array< OneD, const NekDouble > &z, Array< OneD, NekDouble > &result) const |
| void | Evaluate (const Array< OneD, const NekDouble > &x, const Array< OneD, const NekDouble > &y, const Array< OneD, const NekDouble > &z, const NekDouble t, Array< OneD, NekDouble > &result) const |
| void | Evaluate (const Array< OneD, const NekDouble > &x, const Array< OneD, const NekDouble > &y, const Array< OneD, const NekDouble > &z, const Array< OneD, const NekDouble > &t, Array< OneD, NekDouble > &result) const |
| void | Evaluate (const std::vector< Array< OneD, const NekDouble > > points, Array< OneD, NekDouble > &result) const |
| void | SetParameter (const std::string &name, NekDouble value) |
| void | SetConstants (const std::map< std::string, NekDouble > &constants) |
| std::string | GetExpression (void) const |
| std::string | GetVlist (void) const |
| NekDouble | GetTime () const |
| Returns time spend on expression evaluation at points (it does not include parse/pre-processing time). | |
Private Attributes | |
| std::string | m_vlist |
| std::string | m_expr |
| int | m_expr_id |
| InterpreterSharedPtr | m_evaluator |
This class stores a string form of a symbolic expression to be evaluated e.g. for the boundary conditions, the unique numeric ID of that expression and a reference to the unique static instance of the Interpreter.
The scenario is that for multiple copies of Equation class holding their symbolic expressions in the std::string form, there is a unique instance of Interpreter, which holds a set of pre-processed symbolic expressions in the form of sequential containers of execution functors, ready for fast evaluation.
The interpreter also keeps all constants and parameters specified in an XML file. There should be only one copy of Equation class per each symbolic expression specified in XML file, modulo possible bugs. Classes Equation and Interpreter are complementary in a sense that the expression ID stored in the Equation class is generated by the Interpreter which holds ordered container of pre-processed expressions.
Definition at line 67 of file Equation.h.
|
default |
| Nektar::LibUtilities::Equation::Equation | ( | ) |
Definition at line 46 of file BasicUtils/Equation.cpp.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), m_evaluator, m_expr, m_expr_id, and m_vlist.
| Nektar::LibUtilities::Equation::Equation | ( | InterpreterSharedPtr | evaluator, |
| const std::string & | expr = "", |
||
| const std::string & | vlist = "" |
||
| ) |
Definition at line 59 of file BasicUtils/Equation.cpp.
References Nektar::ErrorUtil::efatal, m_evaluator, m_expr, m_expr_id, m_vlist, and NEKERROR.
| NekDouble Nektar::LibUtilities::Equation::Evaluate | ( | ) | const |
Definition at line 109 of file BasicUtils/Equation.cpp.
References Nektar::ErrorUtil::efatal, m_evaluator, m_expr, m_expr_id, and NEKERROR.
Referenced by Evaluate(), Evaluate(), Evaluate(), Nektar::SolverUtils::ForcingMovingReferenceFrame::EvaluateExpression(), Nektar::SolverUtils::FilterAeroForces::FilterAeroForces(), Nektar::FilterAeroForcesSPM::FilterAeroForcesSPM(), Nektar::SolverUtils::FilterAverageFields::FilterAverageFields(), Nektar::FilterBenchmark::FilterBenchmark(), Nektar::SolverUtils::FilterBodyFittedVelocity::FilterBodyFittedVelocity(), Nektar::SolverUtils::FilterCheckpoint::FilterCheckpoint(), Nektar::FilterCheckpointCellModel::FilterCheckpointCellModel(), Nektar::FilterElectrogram::FilterElectrogram(), Nektar::SolverUtils::FilterEnergy::FilterEnergy(), Nektar::SolverUtils::FilterEnergy1D::FilterEnergy1D(), Nektar::SolverUtils::FilterError::FilterError(), Nektar::SolverUtils::FilterFieldConvert::FilterFieldConvert(), Nektar::FilterHilbertFFTPhase::FilterHilbertFFTPhase(), Nektar::SolverUtils::FilterHistoryPoints::FilterHistoryPoints(), Nektar::SolverUtils::FilterIntegral::FilterIntegral(), Nektar::SolverUtils::FilterMaxMinFields::FilterMaxMinFields(), Nektar::SolverUtils::FilterMean::FilterMean(), Nektar::SolverUtils::FilterModalEnergy::FilterModalEnergy(), Nektar::SolverUtils::FilterMovingAverage::FilterMovingAverage(), Nektar::FilterMovingBody::FilterMovingBody(), Nektar::FilterOffsetPhase::FilterOffsetPhase(), Nektar::SolverUtils::FilterReynoldsStresses::FilterReynoldsStresses(), Nektar::SolverUtils::FilterThresholdMax::FilterThresholdMax(), Nektar::SolverUtils::FilterThresholdMin::FilterThresholdMin(), Nektar::SpatialDomains::MeshGraph::ReadExpansionInfo(), Nektar::LibUtilities::SessionReader::ReadParameters(), Nektar::SpatialDomains::MeshGraph::ReadRefinementInfo(), and Nektar::SolverUtils::FilterLagrangianPoints::v_Initialise().
| void Nektar::LibUtilities::Equation::Evaluate | ( | const Array< OneD, const NekDouble > & | x, |
| const Array< OneD, const NekDouble > & | y, | ||
| const Array< OneD, const NekDouble > & | z, | ||
| Array< OneD, NekDouble > & | result | ||
| ) | const |
Definition at line 186 of file BasicUtils/Equation.cpp.
References Evaluate().
| void Nektar::LibUtilities::Equation::Evaluate | ( | const Array< OneD, const NekDouble > & | x, |
| const Array< OneD, const NekDouble > & | y, | ||
| const Array< OneD, const NekDouble > & | z, | ||
| const Array< OneD, const NekDouble > & | t, | ||
| Array< OneD, NekDouble > & | result | ||
| ) | const |
Definition at line 204 of file BasicUtils/Equation.cpp.
References Evaluate().
| void Nektar::LibUtilities::Equation::Evaluate | ( | const Array< OneD, const NekDouble > & | x, |
| const Array< OneD, const NekDouble > & | y, | ||
| const Array< OneD, const NekDouble > & | z, | ||
| const NekDouble | t, | ||
| Array< OneD, NekDouble > & | result | ||
| ) | const |
Definition at line 195 of file BasicUtils/Equation.cpp.
References Evaluate().
| void Nektar::LibUtilities::Equation::Evaluate | ( | const std::vector< Array< OneD, const NekDouble > > | points, |
| Array< OneD, NekDouble > & | result | ||
| ) | const |
Definition at line 218 of file BasicUtils/Equation.cpp.
References Nektar::ErrorUtil::efatal, m_evaluator, m_expr, m_expr_id, and NEKERROR.
| NekDouble Nektar::LibUtilities::Equation::Evaluate | ( | NekDouble | x, |
| NekDouble | y = 0, |
||
| NekDouble | z = 0, |
||
| NekDouble | t = 0 |
||
| ) | const |
Definition at line 135 of file BasicUtils/Equation.cpp.
References Nektar::ErrorUtil::efatal, m_evaluator, m_expr, m_expr_id, and NEKERROR.
Definition at line 161 of file BasicUtils/Equation.cpp.
References Nektar::ErrorUtil::efatal, m_evaluator, m_expr, m_expr_id, and NEKERROR.
| std::string Nektar::LibUtilities::Equation::GetExpression | ( | void | ) | const |
Definition at line 254 of file BasicUtils/Equation.cpp.
References m_expr.
Referenced by export_Equation().
| NekDouble Nektar::LibUtilities::Equation::GetTime | ( | ) | const |
Returns time spend on expression evaluation at points (it does not include parse/pre-processing time).
Definition at line 266 of file BasicUtils/Equation.cpp.
References m_evaluator.
Referenced by export_Equation().
| std::string Nektar::LibUtilities::Equation::GetVlist | ( | void | ) | const |
Definition at line 259 of file BasicUtils/Equation.cpp.
References m_vlist.
Referenced by export_Equation().
Definition at line 100 of file BasicUtils/Equation.cpp.
References m_evaluator, m_expr, m_expr_id, and m_vlist.
| void Nektar::LibUtilities::Equation::SetConstants | ( | const std::map< std::string, NekDouble > & | constants | ) |
Definition at line 249 of file BasicUtils/Equation.cpp.
References m_evaluator.
Definition at line 244 of file BasicUtils/Equation.cpp.
References m_evaluator.
Referenced by export_Equation().
|
private |
Definition at line 128 of file Equation.h.
Referenced by Equation(), Equation(), Evaluate(), Evaluate(), Evaluate(), Evaluate(), GetTime(), operator=(), SetConstants(), and SetParameter().
|
private |
Definition at line 126 of file Equation.h.
Referenced by Equation(), Equation(), Evaluate(), Evaluate(), Evaluate(), Evaluate(), GetExpression(), and operator=().
|
private |
Definition at line 127 of file Equation.h.
Referenced by Equation(), Equation(), Evaluate(), Evaluate(), Evaluate(), Evaluate(), and operator=().
|
private |
Definition at line 125 of file Equation.h.
Referenced by Equation(), Equation(), GetVlist(), and operator=().