diman

diman: A Clojure Package for Dimensional Analysis - Published in JOSS (2022)

https://github.com/neuralgraphs/diman

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

Mathematics Computer Science - 40% confidence
Last synced: 6 months ago · JSON representation

Repository

A Clojure library for applying dimensional analysis.

Basic Info
  • Host: GitHub
  • Owner: neuralgraphs
  • License: bsd-3-clause
  • Language: Clojure
  • Default Branch: master
  • Homepage:
  • Size: 2.26 MB
Statistics
  • Stars: 3
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Created almost 6 years ago · Last pushed about 4 years ago
Metadata Files
Readme Changelog License

README.md

diman logo

diman

Clojars Project

A Clojure library for applying dimensional analysis.

Motivation for diman.

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.

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

License

Copyright © 2021 Lungsi Ngwua

Distributed under BSD 3-Clause "New" or "Revised" License.

Owner

  • Name: neuralgraphs
  • Login: neuralgraphs
  • Kind: organization

JOSS Publication

diman: A Clojure Package for Dimensional Analysis
Published
January 14, 2022
Volume 7, Issue 69, Page 3735
Authors
Lungsi Sharma ORCID
Ronin Institute
Editor
Matthew Sottile ORCID
Tags
neuroscience modeling simulation quantitative analysis scientific computing

GitHub Events

Total
Last Year

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 177
  • Total Committers: 1
  • Avg Commits per committer: 177.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
lungsi n****s@g****m 177

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
good first issue (2) documentation (2) test (2) refactor (2) question (1) simplify (1) invalid (1)
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.

  • Versions: 7
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 108 Total
Rankings
Dependent packages count: 7.9%
Dependent repos count: 25.8%
Forks count: 40.1%
Average: 41.1%
Stargazers count: 42.8%
Downloads: 88.6%
Maintainers (1)
Last synced: 6 months ago

Dependencies

project.clj clojars
  • org.clojure/clojure 1.10.3