15 unstable releases (5 breaking)

0.6.0 Feb 12, 2022
0.5.0 Oct 14, 2021
0.4.0 Dec 6, 2020
0.3.0 Jul 29, 2020
0.1.1 Jul 19, 2020

#302 in Science

Custom license and LGPL-3.0+

59KB
1.5K SLoC

StoichKit

A toolkit for stoichiometry.

Features

  • balance: Balances a chemical equation
  • yield: Calculates percent yield
    • given a fully balanced chemical reaction, and respective masses (in grams)
  • moles calculates moles given formula and mass (grams)
  • theoretical-yield: Calculate theoretical yield of all products
    • given fully balanced chemical equation and reagent masses

Usage

stoichkit 0.6.0
A stoichiometry toolkit.

USAGE:
    stoichkit <SUBCOMMAND>

OPTIONS:
    -h, --help       Print help information
    -V, --version    Print version information

SUBCOMMANDS:
    balance              
    help                 Print this message or the help of the given subcommand(s)
    moles                
    theoretical-yield    
    yield

Examples

Balance

$ stoichkit balance H2O O2 = H2O2
2*H2O + O2 = 2*H2O2

$ stoichkit balance -x H2O O2 = H2O2
2*H2O + 1*O2 = 2*H2O2

Moles

$ stoichkit moles C4H6 0.7254
0.013410485 mol

Theoretical Yield

$ stoichkit theoretical-yield "2*H2O2" 4.0 = "2*H2O" O2 
H2O 2.1185393 g
O2 1.8814605 g

$ stoichkit theoretical-yield --units moles "2*H2O2" 4.0 = "2*H2O" O2
H2O 0.11759864 mol
O2 0.05879932 mol

Yield

$ stoichkit yield '2*H2O2' 4.0 = '2*H2O' 2.1184621`
H2O 0.9999635 %

Installation

  1. Clone this repo
  2. With cargo installed, run cargo build --release
  3. Run ./target/release/stoichkit or copy that binary to a bin folder.

stoichkit equation balancer uses the nalgebra-linalg solver, which requires a BLAS installation.

On macOS BLAS can be installed via brew install openblas.

Roadmap

  • Accept all reagents and determine limiting reagent.
  • Add desktop GUI (maybe)
  • Use StoichKit to power a web UI (stoichkitweb available here)
  • Implement chemical equation balancer
  • Test linear algebra suite on other platforms
  • Ideal Gas calculations

Dependencies

~15MB
~275K SLoC