# Ecolego

Ecolego is a simulation software tool that is used for creating dynamic models and performing deterministic and probabilistic simulations. It is also used for conducting risk assessments of complex dynamic systems evolving over time.
Ecolego can be applied in a variety of areas, but is mainly used for risk assessment in radioecology, environmental physics and PBPK modeling. To facilitate the use of Ecolego in the field of radiology, specialized databases and other add-ons have been developed. For example, all radionuclides and their decay products have been integrated in the software.

## History

Ecolego was co-founded by Swedish Radiation Safety Authority (SSM) , the authority in Sweden responsible for the regulation of radioactive waste management and disposal, and NRPA , the Norwegian Radiation Protection Authority.
The software was initially developed as a complementary user interface to create compartmental models in Simulink. Simulink had very powerful and fast solvers for ordinary differential equations, but lacked support for running probabilistic simulations and handling of parameter values. Also, Simulink is very detailed – every equation is modeled by graphically operator blocks– making modeling time consuming and prone to mistakes. By relying on Simulink for simulations, full attention could be given to the development of an advanced user interface.
As more and more features where added to Ecolego, the need for an integrated simulation engine grew. With the release of Ecolego 4 in 2008, a set of state-of-the-art solvers was incorporated and thus removed the dependence of Simulink.
Today, SSM uses Ecolego for the review of SKB's (the Swedish Nuclear Waste Management Company) license application for the siting and construction of a repository for the final disposal of spent nuclear fuel in Sweden.

## Releases

December 2003: the first version, Ecolego 1.0, was released. In this early version, the software was dependent on Matlab/Simulink to perform simulations.
February 2006: Ecolego 2.1 was released. The user interface of Ecolego was completely remade, and now used a tiling window manager to improve model transparency.
2007: Ecolego 3 was released. Ecolego now featured a crude integrated calculation engine, reducing the dependence on Matlab/Simulink. The support for probabilistic analysis was greatly improved. A built-in database for parameter values and radionuclide properties was added. Support for hierarchical containers.
2008: Ecolego 4 was released. Ecolego 4 now incorporated state-of-the-art solvers for ordinary differential equations, making Matlab/Simulink redundant. The user interface was improved with many new windows for navigation, report generation and presentation of simulation results. Copy/paste functionality was added.
Fall of 2009: the current version of Ecolego, Ecolego 5, was released. Ecolego 5 added many features, such as unit checking, sub-version support and a model component library. The sensitivity analysis where extended, and a toolbox for advanced sensitivity analysis was created (see EIKOS).

## Modeling environment

The initial idea of Ecolego was to facilitate creation of large and complex models and to be able to solve difficult numerical problems. With the purpose to make complicated models with many interconnections easier to overview, the models in Ecolego are represented with the help of interaction matrices instead of the traditional flow diagrams. Combined with hierarchical containers (sub-systems), the interaction matrix greatly facilitates construction and documentation of large and complex models.
Objects can be assigned comments, images, units, and hyper links to other documents or Ecolego objects. Ecolego can also create reports that contain everything from interaction matrices, to parameter values, equations, decay chains, plots and tables. The report can be saved in many different formats, including PDF and HTML.
In order to increase the flexibility for the user, Ecolego has no restrictions on the order of creation – for instance, a parameter can be used in equations before it is defined. A real-time validation engine reports problems to the user, such as not-yet-defined objects, objects lacking values or having invalid equations.

### Quality assurance

Modules can be created by defining inputs and outputs for sub-systems. By adding modules to the integrated library, a user can create a palette of validated building blocks that can be combined to form new models. The library can be exported, so that users with Ecolego Player can use it to create models without the need of an Ecolego license. Several other features in Ecolego promote quality assurance:
* Unit checking
* Version handling of models through subversion
* Parameter databases (internal or external)
* Integrated database for radionuclide properties

### Simulations

The typical Ecolego model is a compartmental model which requires a solver of differential equations. There is a wide array of numerical solvers to choose from. Some are optimized for stiff and numerically difficult models, others for trivial models. With an extensive list of probability density functions, together with Monte Carlo and Latin hypercube sampling and parameter correlation settings, Ecolego holds all the required tools to perform advanced probabilistic analysis.

## Ecolego Player

Ecolego Player is a free software tool that makes it possible to perform calculations with Ecolego models without having access to Ecolego.
The software features the same functionality as Ecolego, with the exception that the integral structure of the model cannot be changed. However, with a module library created in Ecolego, the user can assemble models by combining components from the library.

## Ecolego Sensitivity Analysis Toolbox (Eikos)

Although it is possible to perform sensitivity analysis in Ecolego, the Sensitivity Analysis Toolbox is an optional module which gives a larger set of tools for this approach.
The Eikos Sensitivity Analysis toolbox supports state of the art sensitivity analysis methods (local as well as global). Sensitivity analysis (SA) is used to assess the influence of model parameters on model predictions.
Correlations between parameters may be induced by rank order correlation (method of Iman and Conover). The supported sampling techniques are: Monte carlo, Latin Hypercube and Quasi-random LPt.
The SA methods included are:
* Morris screening method
* Extended Fourier Amplitude Sensitivity Test (EFAST)
* Sobol (first, custom and total order)
* Random balance design
* Local sensitivity
* Garten’s method
Eikos provides a graphical user interface (GUI) which lets a user:
* Specify uncertain model parameters and model outputs of interest
* Generate and inspect input samples
* Export input and output samples generated in Eikos
* Import input and outputs samples generated externally into Eikos
* Simulate and inspect the model output samples
* Perform Sensitivity Analysis of model predictions
* Graphically review the results using pie charts, scatter plots, tornado graphs, etc.