stoichkit 0.6.0

A stoichiometry toolkit
Documentation
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

```$xslt
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]https://doc.rust-lang.org/cargo/getting-started/installation.html 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

- [x] Accept all reagents and determine limiting reagent.
- [ ] Add desktop GUI (maybe)
- [x] Use StoichKit to power a web UI (`stoichkitweb` available [here]https://github.com/ttymck/stoichkitweb)
- [x] Implement chemical equation balancer
- [ ] Test linear algebra suite on other platforms
- [ ] Ideal Gas calculations