BioSTEAMDevelopmentGroup / BioSTEAMDevelopmentGroup/Bioindustrial-Park

Refactoring and documentation for cornstover and cane biorefineries

Open
#53 1 comment 0 reactions 1 assignee Claimed by @yoelcortes View on GitHub
documentation enhancement
Dominant language
Jupyter Notebook
Stars
53
Forks
27
PR merge metrics
No merged PRs in 30d

Description

I think it is a little difficult to navigate imports and dependencies between biorefinery submodules (e.g., cornstover, sugarcane, lipidcane, and oilcane). Also, although the readme gives basic instructions for how to use the biorefineries, there is no documentation for process developers seeking to use only biorefinery sections. Here is a list of issues regarding organization and documentation:

_Importing Issues_:
* The cornstover, oilcane, and corn biorefinery import the sugarcane biorefinery for the ethanol separation system.
* The oilcane biorefinery imports cornstover biorefinery for the cellulosic pretreatment
* The oilcane biorefinery also imports lipidcane biorefinery for the biodiesel production system.

_Documentation issues_:
* Only high level functionality is documented, but process developers need to use the system factories for faster development.
* The biorefineries package is not in the BioSTEAM readthedocs.

I'm thinking about moving some parts from these submodules (i.e. `cornstover`, `sugarcane`, `lipidcane`, and `oilcane`) into new modules called `cellulosic`, `ethanol`, and `biodiesel`. Additionally, I'm also planning on creating a new `cane` submodule where all cane biorefineries can be loaded from. Here is a layout of what this would look like:

```
biorefineries/
- corn/
- cornstover/
- cane/
- juicing.py
- sugarcane/
- juice_to_ethanol.py
- juice_bagasse_to_ethanol.py
...
- oilcane/
- juice_to_biodiesel_ethanol.py
- juice_bagasse_to_biodiesel_ethanol.py
...
- cellulosic/
- ethanol/
- biodiesel/
...
```

The `cornstover` will import from `ethanol` and `cellulosic`, `cane` will import from `cellulosic`, `ethanol`, and `biodiesel`, and `corn` will import from `ethanol`.

Keeping this layout in mind, I plan on adding `biorefineries` as a submodule in the biosteam repository (similar to thermosteam) and add detailed documentation of each biorefinery in the biosteam readthedocs. So in the `API Reference` there will one more section called `Biorefeneries`.

To ensure backwards compatibility without changing any imports, the `sugarcane`, `lipidcane`, and `oilcane` submodules will be "convenience" submodules that import from `cane` and works the same as before (so no tests need to be changed).

I'll be working on this in the `cane` branch. @yalinli2, @sarangbhagwat, @daltonwstewart, I'll request your review later so that you can double check that nothing breaks on any of the biorefineries you are working on. I won't be changing any variable/function names, just move things around for more clarity and documentation.

Thanks!

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.