8#ifndef FMToptimizationparser_Hm_included
9#define FMToptimizationparser_Hm_included
18#include <boost/regex.hpp>
85 std::vector<Core::FMTConstraint>
read(
const std::vector<Core::FMTTheme>& p_themes,
86 const std::vector<Core::FMTAction>& p_actions,
88 const std::vector<Core::FMTOutput>& p_outputs,
90 std::vector<Core::FMTAction>& p_excluded,
91 const std::string& pm_location);
105 const std::vector<Core::FMTOutput>& p_outputs,
106 const std::vector<Core::FMTTheme>& p_themes,
107 const std::vector<Core::FMTAction>& p_actions);
114 void write(
const std::vector<Core::FMTConstraint>& p_constraints,
115 const std::string& pm_location)
const;
122 const static boost::regex m_rxsections;
123 const static boost::regex m_rxobjectives;
124 const static boost::regex m_rxexclude;
125 const static boost::regex m_rxconstraints;
126 const static boost::regex m_rxequations;
127 const static boost::regex m_m_ENDing;
128 const static boost::regex m_rxoutput;
129 const static boost::regex m_rxpenalty;
130 const static boost::regex m_rxspecialoutput;
131 const static boost::regex m_rxspatial;
132 const static boost::regex m_rxspecialobjective;
133 const static boost::regex m_rxstartwithoperator;
148 const std::vector<Core::FMTOutput>& p_outputs,
149 const std::vector<Core::FMTTheme>& p_themes);
175 Core::FMTOutput _resumeOutput(
const std::map<std::string, double>& nodes,
176 const std::vector<Core::FMTOutput>& outputs,
177 const std::vector<Core::FMTTheme>& themes,
188 std::queue<FMTParser::FMTLineInfo>_getOptline(std::ifstream& stream,
const std::vector<Core::FMTTheme>& themes,
199 std::queue<std::string> _getEachLines(
const std::string& line,
const Core::FMTConstants& constants,
const std::vector<Core::FMTOutput>& outputs,
const std::vector<Core::FMTTheme>& themes)
const;
210 std::map<std::string, double>_getEquation(
const std::string& pm_line,
const Core::FMTConstants& p_constants,
211 const Core::FMTYields& p_yields,
const std::vector<Core::FMTOutput>& p_outputs,
212 size_t p_lhssize = std::numeric_limits<size_t>::max());
230 void _fillBounds(
const std::string& operatorvalue,
const double& rhs,
double& lower,
double& upper)
const;
245 const boost::smatch& p_match,
const std::string& pm_line,
248 const std::vector<Core::FMTAction>& p_actions,
249 const std::vector<Core::FMTOutput>& p_outputs,
250 const std::vector<Core::FMTTheme>& p_themes);
257 std::vector<std::vector<double>>_getReplicateChanges(
const std::string& replicateargument);
#define FMTEXPORT
Definition: FMTutility.h:125
Class holding the constants defined in the constants section of a model, used by the parsers.
Definition: FMTConstants.h:28
Representation of a line in the optimize section, an objective being considered a constraint.
Definition: FMTConstraint.h:52
Class letting the user formulate a constraint in the optimize section or collect data across the grap...
Definition: FMTOutput.h:37
FMTList containing multiple yield handlers as seen in the yield section, holding the information rela...
Definition: FMTYields.h:44
Parser reading and writing optimization sections into constraints and objectives.
Definition: FMTOptimizationParser.h:53
std::vector< Core::FMTConstraint > read(const std::vector< Core::FMTTheme > &p_themes, const std::vector< Core::FMTAction > &p_actions, const Core::FMTConstants &p_constants, const std::vector< Core::FMTOutput > &p_outputs, const Core::FMTYields &p_yields, std::vector< Core::FMTAction > &p_excluded, const std::string &pm_location)
Read an optimization file.
~FMTOptimizationParser()=default
Default destructor for FMTOptimizationParser.
FMTOptimizationParser()
Default constructor for FMTOptimizationParser.
std::vector< Core::FMTConstraint > getConstraints(const std::string &pm_line, const Core::FMTConstants &p_constants, const Core::FMTYields &p_yields, const std::vector< Core::FMTOutput > &p_outputs, const std::vector< Core::FMTTheme > &p_themes, const std::vector< Core::FMTAction > &p_actions)
Read a line and get the constraints.
void write(const std::vector< Core::FMTConstraint > &p_constraints, const std::string &pm_location) const
Write the constraints into an optimization file.
FMTOptimizationParser(const FMTOptimizationParser &rhs)=default
Copy constructor for FMTOptimizationParser.
Main parent class of all the parsers in FMT.
Definition: FMTParser.h:72
The Core namespace provides classes for simulating stands/strata growth/harvest through time.
Definition: FMTAction.h:34
Namespace handling all FMT's parsers. Everything related to I/O should be located in this namespace.
Definition: FMTActionParser.h:27
FMToptimizationsection
Enumerator of the sections of an optimization file.
Definition: FMTOptimizationParser.h:40
@ exclude
Definition: FMTOptimizationParser.h:42
@ constraints
Definition: FMTOptimizationParser.h:43
@ none
Definition: FMTOptimizationParser.h:45
@ format
Definition: FMTOptimizationParser.h:44
@ objective
Definition: FMTOptimizationParser.h:41