Skip to content

QSS Solver

Joaquin edited this page Oct 29, 2024 · 16 revisions

The QSS Solver is a modeling and simulation environment for continuous and hybrid systems and it's optimized for large scale model simulation. The solver is implemented as a set of modules coded in plain C language, simulations can be performed using one of the following integration methods:

  • QSS methods (the entire family is supported)
  • DASSL
  • DOPRI
  • CVODE
  • IDA

Models are described using a subset of the standard Modelica language called μ–Modelica (the language specification can be found here), the compiler extracts all the structural information needed and automatically generates the plain C code that contains an appropiate model definition needed by the QSS Solver engine together with all the configuration files (makefiles, config, etc.).

The QSS Solver has a simple GUI interface that allows the end-user to access all the developed tools in a unified way.

The GUI has the following features:

  • It has a text editor, where models in μ-Modelica can be defined.
  • It invokes the corresponding tools to compile and run simulations.
  • It provides debug information in case of errors during the model generation.
  • It invokes GnuPlot to plot the simulation output trajectories.
  • It shows statistics about simulations (number of steps, simulation time, etc.).

How to Install

Using QSS Solver GUI

Load a Model

Create a New Model

Import SBML Models

MicroModelica Model Annotations

Solver

  • MMO_DebugGraph: .
  • MMO_DerDelta: .
  • MMO_Description: A textual description of the model.
  • MMO_GenerateArch: .
  • MMO_MinStep: .
  • MMO_NodeSize:
  • MMO_Output: .
  • MMO_OutputType: .
  • MMO_Period: .
  • MMO_RandomSeed: .
  • MMO_Scheduler: .
  • MMO_Solver: .
  • MMO_StoreData: .
  • MMO_SymDiff: .
  • MMO_Weight: .
  • MMO_XOutput: .
  • MMO_ZCHyst: .

User Defined Matrix Values

  • MMO_DH: .
  • MMO_Event_Id: .
  • MMO_HD: .
  • MMO_HH: .
  • MMO_HZ: .
  • MMO_LHS_DSC: .
  • MMO_LHS_ST: .
  • MMO_RHS_ST: .
  • MMO_SD: .
  • MMO_SH: .
  • MMO_SZ: .

Hybrid QSS BDF Solver

  • MMO_BDF_Max_Step: .
  • MMO_BDF_Part: .
  • MMO_BDF_PDepth: .

Parallel Solver

  • MMO_LPS: .
  • MMO_DT_Min: .
  • MMO_DT_Synch: .
  • MMO_Parallel: .

External Partitioners

  • MMO_Imbalance: .
  • MMO_MetisSettings: .
  • MMO_PartitionMethod: .
  • MMO_PatohSettings: .
  • MMO_ReorderPartition: .
  • MMO_ScotchSettings: .

Classic Integration Methods

  • MMO_CVODEMaxOrder: .

Compile and Run Models

run

Run Models

Debug Generated Model Instances

View Simulation Logs

Plot Simulation Results

Application Settings

application_settings

Compiler Flags

Environment Variables

Both the GUI and MicroModelica compiler use environment variables for the

Commands

Debugging Options

  • Enable All: Enable all the debug flags.
  • Dt: Log dt parameter changes in parallel simulations.
  • External Events: Log step information for each external event in parallel simulations.
  • Initial Values: Log the simulation initialization, including initial state and state derivatives values.
  • Memory: Log memory footprint.
  • Sinchronize: Output synchronization information in parallel simulations.
  • Step Information: Log for each simulation step: ** The step time ** The type and index of the variable that changes
  • Variable Changes: Log the model's state variable changes and the number of handler executions for each event defined in the model.
  • Waiting Time: Log synchronization information in parallel simulations.
  • Generate Weights File: Save all the variables changes information into a binary file, useful for semi-static partitioning of parallel simulations. This option implies Variable Changes.

Additional Compiler Options:

  • -e, --external-structure-file Read model incidence matrices from .
  • -f, --force Force external package compilation. *-i , --include Include in the library path search.
  • -o , --output Sets the output to
  • -s, --settings-only Generate only the settings (.ini) file.