Skip to content

Nodimo generalizes a dimensional relationship between variables by turning it into a nondimensional expression.

License

Notifications You must be signed in to change notification settings

rodrigopcastro018/nodimo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nodimo Logo


Docs Docs Status Badge
Tests Tests Status Badge Coverage Badge
Python Python Versions Badge
Version PyPI Version Badge Conda Version Badge
License License Badge

Nodimo

The main purpose of Nodimo is to transform a dimensional relationship between variables into a nondimensional one. The variables are gathered in nondimensional groups such that the number of groups is lower than the number of variables. The resulting nondimensional model is, at the same time, a generalization and simplification of the dimensional model.

Nodimo supports any number of dimensions and variables. It can be used for applications in science, engineering, economics and finance. The resulting nondimensional groups can be used as the basis for further studies in similarity and model testing.

Installation

Nodimo and its dependencies (numpy and sympy) are installed by:

pip install nodimo

Alternatively, Nodimo and dependencies can be installed via conda:

conda install nodimo --channel rodrigopcastro018

When running Nodimo on the terminal, make sure that the terminal supports Unicode characters. For the best experience, it is recommended the use of jupyter notebook.

Getting started

Basic example

  • Simple pendulum

Simple Pendulum

The nondimensional model for the pendulum's period T as a function of the other variables is built and displayed as:

from nodimo import Variable, NonDimensionalModel

T = Variable('T', mass=0, length=0, time=1, dependent=True)  # period
L = Variable('L', mass=0, length=1, time=0, scaling=True)    # length
m = Variable('m', mass=1, length=0, time=0)                  # mass
g = Variable('g', mass=0, length=1, time=-2, scaling=True)   # gravity
t0 = Variable('theta_0')                                     # initial angle

ndmodel = NonDimensionalModel(T, L, m, g, t0)
ndmodel.show()

And the result is:

$$\displaystyle \frac{T g^{\frac{1}{2}}}{L^{\frac{1}{2}}} = \Pi{\left(\theta_{0} \right)}$$

For more applications and functionalities, check the documentation.

Aknowledgements

About

Nodimo generalizes a dimensional relationship between variables by turning it into a nondimensional expression.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published