diman
diman: A Clojure Package for Dimensional Analysis - Published in JOSS (2022)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 8 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Repository
A Clojure library for applying dimensional analysis.
Basic Info
Statistics
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 1
- Releases: 0
Metadata Files
README.md

diman
A Clojure library for applying dimensional analysis.
Current Features
- Create dimensional formulae.
- Create dimensional equations.
- Implement principle of dimensional homogeneity; Perform consistency checks.
- Derive dimensionless products.
Usage
The easiest way to get all the built-in functions is to be in the default namespace (in-ns 'diman.default). Then, (println default-functions) to list all the available functions.
- Tutorial: Generate dimensional formulae and perform consistency checking; AsciiDoc, reStructuredText for Bitbucket
- Tutorial: Derive dimensionless products; AsciiDoc, reStructuredText for Bitbucket
- Example: Journal Bearing; AsciiDoc, reStructuredText for Bitbucket
- Rationale for the seven base dimensions; AsciiDoc, reStructuredText for Bitbucket
- Rationale for implementing the steps for deriving a complete set of dimensionless products; AsciiDoc, reStructuredText for Bitbucket
- Source code documentation
For Clojure Noobs
Since Leiningen is one of the easiest way to use Clojure, I recommend using Leiningen to run diman. Once Leiningen is installed you can use diman in two ways; by cloning this diman repo and starting up a repl (Read-eval-print loop) inside the cloned directory cd ~/diman, and by making diman as a dependency to your clojure project.
1. Running diman by cloning the repo
Once you have cloned the repository do cd ~/path/to/diman, then
lein repl
By default you should already be in the default namespace, that is, there is no need to (in-ns 'diman.default). To list all the essential functions (and therefore all the functions for the tutorials) do (println default-functions).
2. Running diman as a dependency (recommended)
Assuming you already have a clojure project or you can create one with the command lein new <project-name>, then diman can be added as a dependency in the project.clj file by doing
...
:dependencies [[org.clojure/clojure "1.10.3"]
[com.neuralgraphs/diman "x.y.z"]]
...
To go through the tutorials, startup a repl (lein repl) inside the created project (cd /path/to/<project-name>) load the diman libraries as follows
(require '[diman.dimensions :refer [base_dimensions standard_formula update-sformula]]
'[diman.formula :refer [formula-term formula-eqn-side formula-eqn-side-manifold]]
'[diman.analyze :refer [dimnames consistent?]]
'[diman.buckingham [dimensional-matrix :refer [generate-dimmat]]
[homogeneous-equation :refer [get-augmented-matrix solve get-solution-matrix]]
[dimensionless-product :refer [get-dimensionless-products get-pi-expression]]]
'[diman [core :refer [view-matrix]]]
'[diman.linalg.matfun [rank :refer [rank]]])
These are all the diman libraries essential for dimensional analysis (you may copy-paste the above inside the repl).
To load specific diman libraries in specific namespace under the new project do
(ns <project-name>.<your-namespace>
(:require [diman.analyze :refer [dimnames consistent?]]))
Contributing to diman
Thank you for your interest in contributing to diman. Please refer to the guidelines on how to contribute.
Publications
- Sharma, L., (2022). diman: A Clojure Package for Dimensional Analysis. Journal of Open Source Software, 7(69), 3735, https://doi.org/10.21105/joss.03735
License
Copyright © 2021 Lungsi Ngwua
Distributed under BSD 3-Clause "New" or "Revised" License.
Owner
- Name: neuralgraphs
- Login: neuralgraphs
- Kind: organization
- Repositories: 1
- Profile: https://github.com/neuralgraphs
JOSS Publication
diman: A Clojure Package for Dimensional Analysis
Tags
neuroscience modeling simulation quantitative analysis scientific computingGitHub Events
Total
Last Year
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 9
- Total pull requests: 2
- Average time to close issues: 9 days
- Average time to close pull requests: 2 minutes
- Total issue authors: 2
- Total pull request authors: 2
- Average comments per issue: 1.22
- Average comments per pull request: 0.5
- Merged pull requests: 2
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- lungsi (5)
- khinsen (4)
Pull Request Authors
- lungsi (1)
- danielskatz (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- clojars 108 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 7
- Total maintainers: 1
clojars.org: com.neuralgraphs/diman
A Clojure library for applying dimensional analysis.
- Homepage: https://github.com/neuralgraphs/diman
- Documentation: https://cljdoc.org/d/com.neuralgraphs/diman/
- License: BSD 3-Clause 'New' or 'Revised' License
-
Latest release: 1.1.0
published over 4 years ago
Rankings
Maintainers (1)
Dependencies
- org.clojure/clojure 1.10.3
