OMSimulatorLib
The OMSimulator project is a FMI-based co-simulation environment.
Classes | Static Public Member Functions | Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
oms::Flags Class Reference

#include <Flags.h>

Classes

struct  Flag
 

Static Public Member Functions

static FlagsGetInstance ()
 
static oms_status_enu_t SetCommandLineOption (const std::string &cmd)
 
static bool AddParametersToCSV ()
 
static bool DefaultModeIsCS ()
 
static bool DeleteTempFiles ()
 
static bool DirectionalDerivatives ()
 
static bool DumpAlgLoops ()
 
static bool EmitEvents ()
 
static bool IgnoreInitialUnknowns ()
 
static bool InputExtrapolation ()
 
static bool ProgressBar ()
 
static bool RealTime ()
 
static bool SkipCSVHeader ()
 
static bool SolverStats ()
 
static bool StripRoot ()
 
static bool SuppressPath ()
 
static bool WallTime ()
 
static bool ZeroNominal ()
 
static double InitialStepSize ()
 
static double MaximumStepSize ()
 
static double MinimumStepSize ()
 
static double StartTime ()
 
static double StopTime ()
 
static double Timeout ()
 
static double Tolerance ()
 
static int CVODEMaxErrTestFails ()
 
static int CVODEMaxNLSFailures ()
 
static int CVODEMaxNLSIterations ()
 
static int CVODEMaxSteps ()
 
static oms_alg_solver_enu_t AlgLoopSolver ()
 
static oms_solver_enu_t MasterAlgorithm ()
 
static oms_solver_enu_t Solver ()
 
static std::string ResultFile ()
 
static unsigned int Intervals ()
 
static unsigned int MaxEventIteration ()
 
static unsigned int MaxLoopIteration ()
 
static unsigned int NumProcs ()
 

Public Attributes

Flag FlagFilename {"", "", "", "", "FMU or SSP file to be loaded", re_filename, Flags::Filename, false, false, false}
 
Flag FlagAddParametersToCSV {"--addParametersToCSV", "", "", "false", "Export parameters to a .csv file", re_bool, nullptr, false, false, false}
 
Flag FlagAlgLoopSolver {"--algLoopSolver", "", "", "kinsol", "Specifies the loop solver method (fixedpoint, kinsol) used for algebraic loops spanning multiple components.", re_default, nullptr, false, false, false}
 
Flag FlagClearAllOptions {"--clearAllOptions", "", "", "", "Reset all flags to their default values", re_void, Flags::ClearAllOptions, false, false, false}
 
Flag FlagCVODEMaxErrTestFails {"--CVODEMaxErrTestFails", "", "", "100", "Maximum number of error test failures for CVODE", re_number, nullptr, false, false, false}
 
Flag FlagCVODEMaxNLSFailures {"--CVODEMaxNLSFailures", "", "", "100", "Maximum number of nonlinear convergence failures for CVODE", re_number, nullptr, false, false, false}
 
Flag FlagCVODEMaxNLSIterations {"--CVODEMaxNLSIterations", "", "", "5", "Maximum number of nonlinear solver iterations for CVODE", re_number, nullptr, false, false, false}
 
Flag FlagCVODEMaxSteps {"--CVODEMaxSteps", "", "", "1000", "Maximum number of steps for CVODE", re_number, nullptr, false, false, false}
 
Flag FlagDeleteTempFiles {"--deleteTempFiles", "", "", "true", "Delete temporary files as soon as they are no longer needed", re_bool, nullptr, false, false, false}
 
Flag FlagDirectionalDerivatives {"--directionalDerivatives", "", "", "true", "Use directional derivatives to calculate the Jacobian for algebraic loops", re_bool, nullptr, false, false, false}
 
Flag FlagDumpAlgLoops {"--dumpAlgLoops", "", "", "false", "Dump information for algebraic loops", re_bool, nullptr, false, false, false}
 
Flag FlagEmitEvents {"--emitEvents", "", "", "true", "Emit events during simulation", re_bool, nullptr, false, false, false}
 
Flag FlagHelp {"--help", "-h", "", "", "Display the help text", re_void, Flags::Help, true, false, false}
 
Flag FlagIgnoreInitialUnknowns {"--ignoreInitialUnknowns", "", "", "false", "Ignore initial unknowns from the modelDescription.xml", re_bool, nullptr, false, false, false}
 
Flag FlagInitialStepSize {"--initialStepSize", "", "", "1e-6", "Specify the initial step size", re_double, nullptr, false, false, false}
 
Flag FlagInputExtrapolation {"--inputExtrapolation", "", "", "false", "Enable input extrapolation using derivative information", re_bool, nullptr, false, false, false}
 
Flag FlagIntervals {"--intervals", "-i", "", "500", "Specify the number of communication points (arg > 1)", re_number, nullptr, false, false, false}
 
Flag FlagLogFile {"--logFile", "-l", "", "", "Specify the log file (stdout is used if no log file is specified)", re_default, nullptr, false, false, false}
 
Flag FlagLogLevel {"--logLevel", "", "", "0", "Set the log level (0: default, 1: debug, 2: debug+trace)", re_number, nullptr, false, false, false}
 
Flag FlagMasterAlgorithm {"--master", "", "", "ma", "Specify the master algorithm (ma)", re_default, nullptr, false, false, false}
 
Flag FlagMaxEventIteration {"--maxEventIteration", "", "", "100", "Specify the maximum number of iterations for handling a single event", re_number, nullptr, false, false, false}
 
Flag FlagMaxLoopIteration {"--maxLoopIteration", "", "", "10", "Specify the maximum number of iterations for solving algebraic loops between system-level components. Internal algebraic loops of components are not affected.", re_number, nullptr, false, false, false}
 
Flag FlagMinimumStepSize {"--minimumStepSize", "", "", "1e-12", "Specify the minimum step size", re_double, nullptr, false, false, false}
 
Flag FlagMode {"--mode", "-m", "", "me", "Force a certain FMI mode if the FMU provides both cs and me (cs, me)", re_mode, nullptr, false, false, false}
 
Flag FlagNumProcs {"--numProcs", "-n", "", "1", "Specify the maximum number of processors to use (0=auto, 1=default)", re_number, nullptr, false, false, false}
 
Flag FlagProgressBar {"--progressBar", "", "", "false", "Show a progress bar for the simulation progress in the terminal", re_bool, nullptr, false, false, false}
 
Flag FlagRealTime {"--realTime", "", "", "false", "Enable experimental feature for (soft) real-time co-simulation", re_bool, nullptr, false, false, false}
 
Flag FlagResultFile {"--resultFile", "-r", "", "<default>", "Specify the name of the output result file", re_default, nullptr, false, false, false}
 
Flag FlagSkipCSVHeader {"--skipCSVHeader", "", "", "true", "Skip exporting the CSV delimiter in the header", re_bool, nullptr, false, false, false}
 
Flag FlagSolver {"--solver", "", "", "cvode", "Specify the integration method (euler, cvode)", re_solver, nullptr, false, false, false}
 
Flag FlagSolverStats {"--solverStats", "", "", "false", "Add solver stats to the result file, e.g., step size; not supported for all solvers", re_bool, nullptr, false, false, false}
 
Flag FlagStartTime {"--startTime", "-s", "", "0", "Specify the start time", re_double, nullptr, false, false, false}
 
Flag FlagStepSize {"--stepSize", "", "", "1e-3", "Specify the (maximum) step size", re_double, nullptr, false, false, false}
 
Flag FlagStopTime {"--stopTime", "-t", "", "1", "Specify the stop time", re_double, nullptr, false, false, false}
 
Flag FlagStripRoot {"--stripRoot", "", "", "false", "Remove the root system prefix from all exported signals", re_bool, nullptr, false, false, false}
 
Flag FlagSuppressPath {"--suppressPath", "", "", "false", "Suppress path information in info messages; especially useful for testing", re_bool, nullptr, false, false, false}
 
Flag FlagTempDir {"--tempDir", "", "", ".", "Specify the temporary directory", re_default, nullptr, false, true, false}
 
Flag FlagTimeout {"--timeout", "", "", "0", "Specify the maximum allowed time in seconds for running a simulation (0 disables)", re_number, nullptr, false, false, false}
 
Flag FlagTolerance {"--tolerance", "", "", "1e-4", "Specify the relative tolerance", re_double, nullptr, false, false, false}
 
Flag FlagVersion {"--version", "-v", "", "", "Display version information", re_void, Flags::Version, false, false, false}
 
Flag FlagWallTime {"--wallTime", "", "", "false", "Add wall time information to the result file", re_bool, nullptr, false, false, false}
 
Flag FlagWorkingDir {"--workingDir", "", "", ".", "Specify the working directory", re_default, nullptr, false, true, false}
 
Flag FlagZeroNominal {"--zeroNominal", "", "", "false", "Accept FMUs with invalid nominal values and replace the invalid nominal values with 1.0", re_bool, nullptr, false, false, false}
 

Private Member Functions

 Flags ()
 
 ~Flags ()
 
void setDefaults ()
 
 Flags (Flags const &)
 not implemented More...
 
Flagsoperator= (Flags const &)
 not implemented More...
 

Static Private Member Functions

static oms_status_enu_t SetFlag (size_t flag_id, const std::string &value)
 
static oms_status_enu_t ClearAllOptions (const std::string &value)
 
static oms_status_enu_t Filename (const std::string &value)
 
static oms_status_enu_t Help (const std::string &value)
 
static oms_status_enu_t Version (const std::string &value)
 

Private Attributes

std::map< std::string, unsigned int > lookup
 
std::vector< std::string > files
 
const std::string re_void = ""
 
const std::string re_default = ".+"
 
const std::string re_bool = "(true|false)"
 
const std::string re_mode = "(me|cs)"
 
const std::string re_double = "((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?"
 
const std::string re_number = "[[:digit:]]+"
 
const std::string re_filename = ".+(\\.fmu|\\.ssp|\\.lua)"
 
const std::string re_solver = "(euler|cvode)"
 
std::array< Flag *, 43 > flags
 

Constructor & Destructor Documentation

◆ Flags() [1/2]

oms::Flags::Flags ( )
private

◆ ~Flags()

oms::Flags::~Flags ( )
private

◆ Flags() [2/2]

oms::Flags::Flags ( Flags const &  )
private

not implemented

Member Function Documentation

◆ AddParametersToCSV()

static bool oms::Flags::AddParametersToCSV ( )
inlinestatic

◆ AlgLoopSolver()

oms_alg_solver_enu_t oms::Flags::AlgLoopSolver ( )
static

◆ ClearAllOptions()

oms_status_enu_t oms::Flags::ClearAllOptions ( const std::string &  value)
staticprivate

◆ CVODEMaxErrTestFails()

static int oms::Flags::CVODEMaxErrTestFails ( )
inlinestatic

◆ CVODEMaxNLSFailures()

static int oms::Flags::CVODEMaxNLSFailures ( )
inlinestatic

◆ CVODEMaxNLSIterations()

static int oms::Flags::CVODEMaxNLSIterations ( )
inlinestatic

◆ CVODEMaxSteps()

static int oms::Flags::CVODEMaxSteps ( )
inlinestatic

◆ DefaultModeIsCS()

static bool oms::Flags::DefaultModeIsCS ( )
inlinestatic

◆ DeleteTempFiles()

static bool oms::Flags::DeleteTempFiles ( )
inlinestatic

◆ DirectionalDerivatives()

static bool oms::Flags::DirectionalDerivatives ( )
inlinestatic

◆ DumpAlgLoops()

static bool oms::Flags::DumpAlgLoops ( )
inlinestatic

◆ EmitEvents()

static bool oms::Flags::EmitEvents ( )
inlinestatic

◆ Filename()

oms_status_enu_t oms::Flags::Filename ( const std::string &  value)
staticprivate

◆ GetInstance()

oms::Flags & oms::Flags::GetInstance ( )
static

◆ Help()

oms_status_enu_t oms::Flags::Help ( const std::string &  value)
staticprivate

◆ IgnoreInitialUnknowns()

static bool oms::Flags::IgnoreInitialUnknowns ( )
inlinestatic

◆ InitialStepSize()

static double oms::Flags::InitialStepSize ( )
inlinestatic

◆ InputExtrapolation()

static bool oms::Flags::InputExtrapolation ( )
inlinestatic

◆ Intervals()

static unsigned int oms::Flags::Intervals ( )
inlinestatic

◆ MasterAlgorithm()

oms_solver_enu_t oms::Flags::MasterAlgorithm ( )
static

◆ MaxEventIteration()

static unsigned int oms::Flags::MaxEventIteration ( )
inlinestatic

◆ MaximumStepSize()

static double oms::Flags::MaximumStepSize ( )
inlinestatic

◆ MaxLoopIteration()

static unsigned int oms::Flags::MaxLoopIteration ( )
inlinestatic

◆ MinimumStepSize()

static double oms::Flags::MinimumStepSize ( )
inlinestatic

◆ NumProcs()

static unsigned int oms::Flags::NumProcs ( )
inlinestatic

◆ operator=()

Flags& oms::Flags::operator= ( Flags const &  )
private

not implemented

◆ ProgressBar()

static bool oms::Flags::ProgressBar ( )
inlinestatic

◆ RealTime()

static bool oms::Flags::RealTime ( )
inlinestatic

◆ ResultFile()

static std::string oms::Flags::ResultFile ( )
inlinestatic

◆ SetCommandLineOption()

oms_status_enu_t oms::Flags::SetCommandLineOption ( const std::string &  cmd)
static

◆ setDefaults()

void oms::Flags::setDefaults ( )
private

◆ SetFlag()

oms_status_enu_t oms::Flags::SetFlag ( size_t  flag_id,
const std::string &  value 
)
staticprivate

◆ SkipCSVHeader()

static bool oms::Flags::SkipCSVHeader ( )
inlinestatic

◆ Solver()

oms_solver_enu_t oms::Flags::Solver ( )
static

◆ SolverStats()

static bool oms::Flags::SolverStats ( )
inlinestatic

◆ StartTime()

static double oms::Flags::StartTime ( )
inlinestatic

◆ StopTime()

static double oms::Flags::StopTime ( )
inlinestatic

◆ StripRoot()

static bool oms::Flags::StripRoot ( )
inlinestatic

◆ SuppressPath()

static bool oms::Flags::SuppressPath ( )
inlinestatic

◆ Timeout()

static double oms::Flags::Timeout ( )
inlinestatic

◆ Tolerance()

static double oms::Flags::Tolerance ( )
inlinestatic

◆ Version()

oms_status_enu_t oms::Flags::Version ( const std::string &  value)
staticprivate

◆ WallTime()

static bool oms::Flags::WallTime ( )
inlinestatic

◆ ZeroNominal()

static bool oms::Flags::ZeroNominal ( )
inlinestatic

Member Data Documentation

◆ files

std::vector<std::string> oms::Flags::files
private

◆ FlagAddParametersToCSV

Flag oms::Flags::FlagAddParametersToCSV {"--addParametersToCSV", "", "", "false", "Export parameters to a .csv file", re_bool, nullptr, false, false, false}

◆ FlagAlgLoopSolver

Flag oms::Flags::FlagAlgLoopSolver {"--algLoopSolver", "", "", "kinsol", "Specifies the loop solver method (fixedpoint, kinsol) used for algebraic loops spanning multiple components.", re_default, nullptr, false, false, false}

◆ FlagClearAllOptions

Flag oms::Flags::FlagClearAllOptions {"--clearAllOptions", "", "", "", "Reset all flags to their default values", re_void, Flags::ClearAllOptions, false, false, false}

◆ FlagCVODEMaxErrTestFails

Flag oms::Flags::FlagCVODEMaxErrTestFails {"--CVODEMaxErrTestFails", "", "", "100", "Maximum number of error test failures for CVODE", re_number, nullptr, false, false, false}

◆ FlagCVODEMaxNLSFailures

Flag oms::Flags::FlagCVODEMaxNLSFailures {"--CVODEMaxNLSFailures", "", "", "100", "Maximum number of nonlinear convergence failures for CVODE", re_number, nullptr, false, false, false}

◆ FlagCVODEMaxNLSIterations

Flag oms::Flags::FlagCVODEMaxNLSIterations {"--CVODEMaxNLSIterations", "", "", "5", "Maximum number of nonlinear solver iterations for CVODE", re_number, nullptr, false, false, false}

◆ FlagCVODEMaxSteps

Flag oms::Flags::FlagCVODEMaxSteps {"--CVODEMaxSteps", "", "", "1000", "Maximum number of steps for CVODE", re_number, nullptr, false, false, false}

◆ FlagDeleteTempFiles

Flag oms::Flags::FlagDeleteTempFiles {"--deleteTempFiles", "", "", "true", "Delete temporary files as soon as they are no longer needed", re_bool, nullptr, false, false, false}

◆ FlagDirectionalDerivatives

Flag oms::Flags::FlagDirectionalDerivatives {"--directionalDerivatives", "", "", "true", "Use directional derivatives to calculate the Jacobian for algebraic loops", re_bool, nullptr, false, false, false}

◆ FlagDumpAlgLoops

Flag oms::Flags::FlagDumpAlgLoops {"--dumpAlgLoops", "", "", "false", "Dump information for algebraic loops", re_bool, nullptr, false, false, false}

◆ FlagEmitEvents

Flag oms::Flags::FlagEmitEvents {"--emitEvents", "", "", "true", "Emit events during simulation", re_bool, nullptr, false, false, false}

◆ FlagFilename

Flag oms::Flags::FlagFilename {"", "", "", "", "FMU or SSP file to be loaded", re_filename, Flags::Filename, false, false, false}

◆ FlagHelp

Flag oms::Flags::FlagHelp {"--help", "-h", "", "", "Display the help text", re_void, Flags::Help, true, false, false}

◆ FlagIgnoreInitialUnknowns

Flag oms::Flags::FlagIgnoreInitialUnknowns {"--ignoreInitialUnknowns", "", "", "false", "Ignore initial unknowns from the modelDescription.xml", re_bool, nullptr, false, false, false}

◆ FlagInitialStepSize

Flag oms::Flags::FlagInitialStepSize {"--initialStepSize", "", "", "1e-6", "Specify the initial step size", re_double, nullptr, false, false, false}

◆ FlagInputExtrapolation

Flag oms::Flags::FlagInputExtrapolation {"--inputExtrapolation", "", "", "false", "Enable input extrapolation using derivative information", re_bool, nullptr, false, false, false}

◆ FlagIntervals

Flag oms::Flags::FlagIntervals {"--intervals", "-i", "", "500", "Specify the number of communication points (arg > 1)", re_number, nullptr, false, false, false}

◆ FlagLogFile

Flag oms::Flags::FlagLogFile {"--logFile", "-l", "", "", "Specify the log file (stdout is used if no log file is specified)", re_default, nullptr, false, false, false}

◆ FlagLogLevel

Flag oms::Flags::FlagLogLevel {"--logLevel", "", "", "0", "Set the log level (0: default, 1: debug, 2: debug+trace)", re_number, nullptr, false, false, false}

◆ FlagMasterAlgorithm

Flag oms::Flags::FlagMasterAlgorithm {"--master", "", "", "ma", "Specify the master algorithm (ma)", re_default, nullptr, false, false, false}

◆ FlagMaxEventIteration

Flag oms::Flags::FlagMaxEventIteration {"--maxEventIteration", "", "", "100", "Specify the maximum number of iterations for handling a single event", re_number, nullptr, false, false, false}

◆ FlagMaxLoopIteration

Flag oms::Flags::FlagMaxLoopIteration {"--maxLoopIteration", "", "", "10", "Specify the maximum number of iterations for solving algebraic loops between system-level components. Internal algebraic loops of components are not affected.", re_number, nullptr, false, false, false}

◆ FlagMinimumStepSize

Flag oms::Flags::FlagMinimumStepSize {"--minimumStepSize", "", "", "1e-12", "Specify the minimum step size", re_double, nullptr, false, false, false}

◆ FlagMode

Flag oms::Flags::FlagMode {"--mode", "-m", "", "me", "Force a certain FMI mode if the FMU provides both cs and me (cs, me)", re_mode, nullptr, false, false, false}

◆ FlagNumProcs

Flag oms::Flags::FlagNumProcs {"--numProcs", "-n", "", "1", "Specify the maximum number of processors to use (0=auto, 1=default)", re_number, nullptr, false, false, false}

◆ FlagProgressBar

Flag oms::Flags::FlagProgressBar {"--progressBar", "", "", "false", "Show a progress bar for the simulation progress in the terminal", re_bool, nullptr, false, false, false}

◆ FlagRealTime

Flag oms::Flags::FlagRealTime {"--realTime", "", "", "false", "Enable experimental feature for (soft) real-time co-simulation", re_bool, nullptr, false, false, false}

◆ FlagResultFile

Flag oms::Flags::FlagResultFile {"--resultFile", "-r", "", "<default>", "Specify the name of the output result file", re_default, nullptr, false, false, false}

◆ flags

std::array<Flag *, 43> oms::Flags::flags
private

◆ FlagSkipCSVHeader

Flag oms::Flags::FlagSkipCSVHeader {"--skipCSVHeader", "", "", "true", "Skip exporting the CSV delimiter in the header", re_bool, nullptr, false, false, false}

◆ FlagSolver

Flag oms::Flags::FlagSolver {"--solver", "", "", "cvode", "Specify the integration method (euler, cvode)", re_solver, nullptr, false, false, false}

◆ FlagSolverStats

Flag oms::Flags::FlagSolverStats {"--solverStats", "", "", "false", "Add solver stats to the result file, e.g., step size; not supported for all solvers", re_bool, nullptr, false, false, false}

◆ FlagStartTime

Flag oms::Flags::FlagStartTime {"--startTime", "-s", "", "0", "Specify the start time", re_double, nullptr, false, false, false}

◆ FlagStepSize

Flag oms::Flags::FlagStepSize {"--stepSize", "", "", "1e-3", "Specify the (maximum) step size", re_double, nullptr, false, false, false}

◆ FlagStopTime

Flag oms::Flags::FlagStopTime {"--stopTime", "-t", "", "1", "Specify the stop time", re_double, nullptr, false, false, false}

◆ FlagStripRoot

Flag oms::Flags::FlagStripRoot {"--stripRoot", "", "", "false", "Remove the root system prefix from all exported signals", re_bool, nullptr, false, false, false}

◆ FlagSuppressPath

Flag oms::Flags::FlagSuppressPath {"--suppressPath", "", "", "false", "Suppress path information in info messages; especially useful for testing", re_bool, nullptr, false, false, false}

◆ FlagTempDir

Flag oms::Flags::FlagTempDir {"--tempDir", "", "", ".", "Specify the temporary directory", re_default, nullptr, false, true, false}

◆ FlagTimeout

Flag oms::Flags::FlagTimeout {"--timeout", "", "", "0", "Specify the maximum allowed time in seconds for running a simulation (0 disables)", re_number, nullptr, false, false, false}

◆ FlagTolerance

Flag oms::Flags::FlagTolerance {"--tolerance", "", "", "1e-4", "Specify the relative tolerance", re_double, nullptr, false, false, false}

◆ FlagVersion

Flag oms::Flags::FlagVersion {"--version", "-v", "", "", "Display version information", re_void, Flags::Version, false, false, false}

◆ FlagWallTime

Flag oms::Flags::FlagWallTime {"--wallTime", "", "", "false", "Add wall time information to the result file", re_bool, nullptr, false, false, false}

◆ FlagWorkingDir

Flag oms::Flags::FlagWorkingDir {"--workingDir", "", "", ".", "Specify the working directory", re_default, nullptr, false, true, false}

◆ FlagZeroNominal

Flag oms::Flags::FlagZeroNominal {"--zeroNominal", "", "", "false", "Accept FMUs with invalid nominal values and replace the invalid nominal values with 1.0", re_bool, nullptr, false, false, false}

◆ lookup

std::map<std::string, unsigned int> oms::Flags::lookup
private

◆ re_bool

const std::string oms::Flags::re_bool = "(true|false)"
private

◆ re_default

const std::string oms::Flags::re_default = ".+"
private

◆ re_double

const std::string oms::Flags::re_double = "((\\+|-)?[[:digit:]]+)(\\.(([[:digit:]]+)?))?((e|E)((\\+|-)?)[[:digit:]]+)?"
private

◆ re_filename

const std::string oms::Flags::re_filename = ".+(\\.fmu|\\.ssp|\\.lua)"
private

◆ re_mode

const std::string oms::Flags::re_mode = "(me|cs)"
private

◆ re_number

const std::string oms::Flags::re_number = "[[:digit:]]+"
private

◆ re_solver

const std::string oms::Flags::re_solver = "(euler|cvode)"
private

◆ re_void

const std::string oms::Flags::re_void = ""
private

The documentation for this class was generated from the following files: