A dynamic microsimulation framework
Project description
neworder
neworder is a microsimulation framework inspired by openm++, MODGEN and, to a lesser extent, the python-based LIAM2 tool, and can be thought of as a powerful best-of-both-worlds hybrid of MODGEN and LIAM2. Modellers can define their models in a simple, well-known language, yet benefit from the efficiency of compiled code and parallel execution:
- python module: easy to install and integrate, available on all common platforms
- low barriers to entry: users need only write standard python code, little or no new coding skills required.
- flexibility: models are specified in python code, so can be arbitrarily complex
- data agnosticism: the framework does not impose any constraints on data formats for either sources or outputs.
- reusability: leverage python modules like numpy, pandas and matplotlib.
- reproducibility: built-in, customisable random generator seeding strategies
- speed: the module is predominantly written in optimised C++ and provides fast Monte-Carlo, statistical and data manipulation functions.
- compatibility: operate directly on numpy arrays and pandas DataFrames
- scalability: can be run on a desktop or a HPC cluster, supporting parallel execution using MPI.
System Requirements
neworder requires python 3.12 or above and runs on 64-bit linux, OSX and Windows platforms. To take advantage of the optional parallel execution functionality, you will also need an MPI implementation, such as open-mpi or mpich. Note that MPI packages are not currently available for Windows via pip - Windows users must install an MPI runtime separately (e.g. MS-MPI) and use the parallel-native extra.
Installation
The package can be installed from pypi.
For a basic (serial only) installation,
pip install neworder
or to enable parallel execution using MPI use one of the following:
pip install neworder[parallel-openmpi] # install the openmpi runtime in the virtual environment
pip install neworder[parallel-mpich] # install the mpich runtime in the virtual environment
pip install neworder[parallel-native] # use the system's mpi runtime
and to enable the (geo)spatial graph functionality:
pip install neworder[geospatial]
or a combination of the two:
pip install neworder[parallel-openmpi,geospatial]
Documentation
To get started first see the detailed documentation here. Then, check out "Hello World" and the other examples.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file neworder-1.6.0.tar.gz.
File metadata
- Download URL: neworder-1.6.0.tar.gz
- Upload date:
- Size: 38.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e49e6dfa0e6d130c30a0b936649bd4c91b69367cc02326c252698a426f2494ff
|
|
| MD5 |
1eb5308612038c6af06033269c317716
|
|
| BLAKE2b-256 |
7bd7c48b449db2520956d844375b3e57c7c1b430ed9522067be02fc2f7ce4741
|