roadrunner  2.6.0
Fast simulator for SBML models
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
rr::LoadSBMLOptions Class Reference

Options for loading SBML into RoadRunner. More...

#include <rrRoadRunnerOptions.h>

Inheritance diagram for rr::LoadSBMLOptions:
rr::BasicDictionary rr::Dictionary

Public Types

enum  LLVM_BACKEND_VALUES { MCJIT = (0x1 << 14) , LLJIT = (0x1 << 15) }
 
enum  LLJIT_OPTIMIZATION_LEVELS { NONE = (0x1 << 16) , LESS = (0x1 << 17) , DEFAULT = (0x1 << 18) , AGGRESSIVE = (0x1 << 19) }
 
enum  ModelGeneratorOpt {
  CONSERVED_MOIETIES = (0x1 << 0) , RECOMPILE = (0x1 << 1) , READ_ONLY = (0x1 << 2) , MUTABLE_INITIAL_CONDITIONS = (0x1 << 3) ,
  OPTIMIZE_GVN = (0x1 << 4) , OPTIMIZE_CFG_SIMPLIFICATION = (0x1 << 5) , OPTIMIZE_INSTRUCTION_COMBINING = (0x1 << 6) , OPTIMIZE_DEAD_INST_ELIMINATION = (0x1 << 7) ,
  OPTIMIZE_DEAD_CODE_ELIMINATION = (0x1 << 8) , OPTIMIZE_INSTRUCTION_SIMPLIFIER = (0x1 << 9) , OPTIMIZE , USE_MCJIT = (0x1 << 10) ,
  LLVM_SYMBOL_CACHE = (0x1 << 11) , TURN_ON_VALIDATION = (0x1 << 12)
}
 
enum  LoadOpt { NO_DEFAULT_SELECTIONS = (0x1 << 0) , NO_DEFAULT_STEADY_STATE_SELECTIONS = (0x1 << 1) }
 
- Public Types inherited from rr::BasicDictionary
using item = std::pair< std::string, Setting >
 

Public Member Functions

 LoadSBMLOptions ()
 initializes the struct with the default options.
 
 LoadSBMLOptions (const Dictionary *dict)
 creates an object from an existing dictionary.
 
void setItem (const std::string &key, const rr::Setting &value) override
 sets an item in the internal unordered std::map.
 
Setting getItem (const std::string &key) const override
 gets an item from the internal unordered std::map.
 
bool hasKey (const std::string &key) const override
 is there a key matching this name. More...
 
size_t deleteItem (const std::string &key) override
 remove a value
 
std::vector< std::string > getKeys () const override
 list of keys in this object.
 
bool getConservedMoietyConversion () const
 
void setConservedMoietyConversion (bool val)
 
void setValidation (bool val)
 
void setLLVMBackend (LoadSBMLOptions::LLVM_BACKEND_VALUES val)
 
void setLLJitOptimizationLevel (LLJIT_OPTIMIZATION_LEVELS levels)
 
- Public Member Functions inherited from rr::BasicDictionary
 BasicDictionary (std::initializer_list< item > initializerList)
 
 ~BasicDictionary () override=default
 Pure virtual interface, you should never have to delete an instance of this type directly.
 
- Public Member Functions inherited from rr::Dictionary
virtual ~Dictionary ()
 Pure virtual interface, you should never have to delete an instance of this type directly.
 

Static Public Member Functions

static std::vector< LLVM_BACKEND_VALUES > getAllLLVMBackendValues ()
 
static std::vector< LLJIT_OPTIMIZATION_LEVELS > getAllLLJitOptimizationValues ()
 

Public Attributes

std::uint16_t version
 the version this struct
 
std::uint16_t size
 sizeof this struct
 
std::uint32_t modelGeneratorOpt
 
std::uint32_t loadFlags
 

Additional Inherited Members

- Protected Types inherited from rr::BasicDictionary
typedef std::unordered_map< std::string, SettingVariantMap
 
- Protected Attributes inherited from rr::BasicDictionary
VariantMap items
 

Detailed Description

Options for loading SBML into RoadRunner.

Future version may add additional fields to the end of this struct, this way we can maintain binary compatibility with older RoadRunner versions.

Member Enumeration Documentation

◆ LoadOpt

Enumerator
NO_DEFAULT_SELECTIONS 

Do not create a default selection list when the model is loaded.

NO_DEFAULT_STEADY_STATE_SELECTIONS 

Do not create a default steady state selection list when the model is loaded.

◆ ModelGeneratorOpt

Enumerator
CONSERVED_MOIETIES 

perform conservation analysis.

This causes a re-ordering of the species, so results generated with this flag enabled can not be compared index wise to results generated otherwise.

currently only implemented with the C code generating model

RECOMPILE 

Should the model be recompiled? The LLVM ModelGenerator maintins a hash table of currently running models.

If this flag is NOT set, then the generator will look to see if there is already a running instance of the given model and use the generated code from that one.

If only a single instance of a model is run, there is no need to cache the models, and this can safetly be enabled, realizing some performance gains.

READ_ONLY 

If this is set, then a read-only model is generated.

A read-only model can be simulated, but no code is generated to set model values, i.e. parameters, amounts, values, etc...

It takes a finite amount of time to generate the model value setting functions, and if they are not needed, one may see some performance gains, especially in very large models.

MUTABLE_INITIAL_CONDITIONS 

Generate accessor functions to allow changing of initial conditions.

OPTIMIZE_GVN 

GVN - This pass performs global value numbering and redundant load elimination cotemporaneously.

OPTIMIZE_CFG_SIMPLIFICATION 

CFGSimplification - Merge basic blocks, eliminate unreachable blocks, simplify terminator instructions, etc...

OPTIMIZE_INSTRUCTION_COMBINING 

InstructionCombining - Combine instructions to form fewer, simple instructions.

This pass does not modify the CFG, and has a tendency to make instructions dead, so a subsequent DCE pass is useful.

OPTIMIZE_DEAD_INST_ELIMINATION 

DeadInstElimination - This pass quickly removes trivially dead instructions without modifying the CFG of the function.

It is a BasicBlockPass, so it runs efficiently when queued next to other BasicBlockPass's.

OPTIMIZE_DEAD_CODE_ELIMINATION 

DeadCodeElimination - This pass is more powerful than DeadInstElimination, because it is worklist driven that can potentially revisit instructions when their other instructions become dead, to eliminate chains of dead computations.

OPTIMIZE_INSTRUCTION_SIMPLIFIER 

InstructionSimplifier - Remove redundant instructions.

OPTIMIZE 

all optimizations, use to check if bit mask has any optimizations.

USE_MCJIT 

Use the LLVM MCJIT JIT engine.

Defaults to false.

The MCJIT is the new LLVM JIT engine, it is not as well tested as the original JIT engine. Does NOT work on LLVM 3.1

TURN_ON_VALIDATION 

Turn on SBML validation.

Member Function Documentation

◆ hasKey()

bool rr::LoadSBMLOptions::hasKey ( const std::string &  key) const
overridevirtual

is there a key matching this name.

Returns
true if this key exists, false otherwise.

Reimplemented from rr::BasicDictionary.


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