FeOs-CAMPD
Computer-aided molecular and process design based on the FeOs framework.
The package provides infrastructure to perform a computer-aided molecular and process design. It consists of
- Implementation of a custom outer-approximation algorithms to solve the resulting MINLP
- Molecular representations (group counts (CoMT-CAMD) and molecule superstructures)
- Property models (PC-SAFT and (heterosegmented) gc-PC-SAFT)
The underlying NLP subproblems are solved using IPOPT via the ipopt-ad crate. For the solution of th MILP master problems, the solver is linked to the good_lp crate that offers a common interface to various open-source MILP solvers.
Installation
Rust
Just add the dependency to your Cargo.toml
= "0.3"
Usage
The following sections demonstrates the usage of the framework, for the API details, check out the documentation.
Molecular representation
// define the molecular representation using a molecule superstructure
let molecule = alkane;
// or a combination of superstructures
let molecule = non_associating;
// or use group and structure definitions for CoMT-CAMD
// (currently not further customizable)
let molecule = CoMTCAMD;
Property model
// The property model for heterosegmented gc-PC-SAFT is not customizable. It does not include association.
let property_model = GcPcSaftPropertyModel;
// For homosegmented PC-SAFT, the group parameters can be passes as arguments
// and it is available as the full model
let property_model = full;
// or non-associating (ignoring all associating groups)
let property_model = non_associating;
Process model
//To define a process model in Rust, implement the `ProcessModel` trait for your struct.
Optimization problem
// combine molecular representation, property model, and process model in an optimization problem
let campd = new;
// and pass it to the outer approximation solver
let solver = new;
// to determine a ranking of the optimal molecules for a pur component
solver.solve_ranking;
// where highs can be replaced with any of the other MILP solvers provided by the good_lp crate.
Molecular representations and property models can be combined according to:
| PC-SAFT | gc-PC-SAFT | |
|---|---|---|
CoMTCAMD |
yes | no |
SuperMolecule |
yes | yes |
Cite us
If you find FeOs-torch useful for your own research, consider citing our publication from which this library resulted.
@article{rehner2023molecule_superstructures,
author = {Rehner, Philipp and Schilling, Johannes and Bardow, André},
title = {Molecule superstructures for computer-aided molecular and process design}
journal = {Molecular Systems Design & Engineering},
volume = {8},
issue = {4},
number = {12},
pages = {488-499},
year = {2023}
}