fossilfree / numerous

Numerous - an object-oriented modelling and simulation engine.
https://numerous.com
BSD 3-Clause "New" or "Revised" License
14 stars 9 forks source link
python simulation-engine

CircleCI

Numerous — an object-oriented modelling and simulation engine

Reasons for developing a python-based object-oriented simulation engine

The arguments for a python simulation engine are numerous:

Philosophy and Motivation for Object-Oriented Modelling

As systems becomes complex the number of equations and variables grow fast and the overview is lost for the model developer. The idea behind this engine is to allow the model developer focus on one familiar object at a time and setup simulations for validation – and then combine these objects together to form complex interacting systems in a simple way where all the general tedious work is handled by the engine.

Quick start

To install using pip use pip install numerous-engine

You can get started quickly here with a simple example:

from numerous.engine import model, simulation
from numerous.examples.dampened_oscillator.dampened_oscillator import OscillatorSystem
#Define simulation
s = simulation.Simulation(
     model.Model(OscillatorSystem('system')),
    t_start=0, t_stop=10, num=100, num_inner=100, max_step=0.1
)
#Solve
s.solve()
simulation_result = s.model.historian_df

Or follow one of our comprehensive tutorials:

Documentation can be found on readthedocs.

Or you can get familiar with the concepts we have used to abstract away building complex interacting systems right inside python.