OpenM++ runtime library (libopenm)
omModel.h File Reference

OpenM++ modeling library: public interface. More...

Include dependency graph for omModel.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  openm::RunOptions
 basic model run options More...
 
struct  openm::IRunOptions
 public interface to get model run options More...
 
struct  openm::IRunBase
 public interface to initialize model run and input parameters More...
 
struct  openm::IModel
 model sub-value run public interface More...
 
struct  openm::ParameterNameSizeItem
 model input parameter name, type and size More...
 
struct  openm::EntityNameSizeItem
 model entity attributes name, type, size and member offset More...
 
struct  openm::EventIdNameItem
 model events id, name More...
 

Namespaces

namespace  openm
 openM++ namespace
 

Macros

#define OM_USE_MICRODATA_EVENTS   (EVENT_ID_NAME_ARR_LEN > 1)
 if true then write microdata events into CSV
 

Typedefs

typedef OpenmException< 4000, modelUnknownErrorMessage > openm::ModelException
 modeling library exception
 
typedef OpenmException< 4000, simulationUnknownErrorMessage > openm::SimulationException
 simulation exception
 
typedef void(* OM_RUN_ONCE_HANDLER) (openm::IRunBase *const i_runBase)
 model one-time initialization
 
typedef void(* OM_RUN_INIT_HANDLER) (openm::IRunBase *const i_runBase)
 model run initialization: read input parameters
 
typedef void(* OM_STARTUP_HANDLER) (openm::IModel *const i_model)
 model startup method: initialize sub-value
 
typedef void(* OM_EVENT_LOOP_HANDLER) (openm::IModel *const i_model)
 model event loop: user code entry point
 
typedef void(* OM_SHUTDOWN_HANDLER) (openm::IModel *const i_model)
 model shutdown method: save output results
 
typedef void(* OM_RUN_SHUTDOWN_HANDLER) (bool i_isError, openm::IRunBase *const i_runBase)
 process shutdown: last entry point from user code before process exit
 

Functions

template<typename TVal >
std::vector< TVal > openm::read_om_parameter (IRunBase *const i_runBase, const char *i_name)
 read scalar parameter value or all sub-values for the current process
 
template<typename TVal >
std::vector< std::unique_ptr< TVal[]> > openm::read_om_parameter (IRunBase *const i_runBase, const char *i_name, size_t i_size)
 read array parameter value or all sub-values for the current process
 
int main (int argc, char **argv)
 main entry point
 

Variables

const size_t openm::PARAMETER_NAME_ARR_LEN
 size of parameters list: number of model input parameters
 
const ParameterNameSizeItem openm::parameterNameSizeArr []
 model input parameters name, type and size
 
const size_t openm::ENTITY_NAME_SIZE_ARR_LEN
 size of entity attributes list: all attributes of all entities
 
const EntityNameSizeItem openm::EntityNameSizeArr []
 list of entity attributes name, type, size and member offset
 
const EventIdNameItem openm::EventIdNameArr []
 list of events id, name
 
const size_t openm::EVENT_ID_NAME_ARR_LEN
 size of event list: all events in all entities
 
const char openm::modelUnknownErrorMessage [] = "unknown model error"
 default error message: "unknown model error" More...
 
const char openm::simulationUnknownErrorMessage [] = "unknown error in simulation"
 simulation exception default error message: "unknown error in simulation" More...
 
const char * OM_MODEL_NAME
 model name
 
const char * OM_MODEL_DIGEST
 model metadata digest: unique model key
 
OM_RUN_ONCE_HANDLER RunOnceHandler
 model one-time initialization
 
OM_RUN_INIT_HANDLER RunInitHandler
 model run initialization: read input parameters
 
OM_STARTUP_HANDLER ModelStartupHandler
 model startup method: initialize sub-value
 
OM_EVENT_LOOP_HANDLER RunModelHandler
 model event loop: user code entry point
 
OM_SHUTDOWN_HANDLER ModelShutdownHandler
 model shutdown method: save output results
 
OM_RUN_SHUTDOWN_HANDLER RunShutdownHandler
 process shutdown: last entry point from user code before process exit
 
openm::IModelRunStatetheModelRunState
 public interface of process-wide model run state: status, progress, update times
 

Detailed Description

OpenM++ modeling library: public interface.