Skip to content

simphony/simdome_wet_synthesis

Repository files navigation

Wet Synthesis

A collection of SimPhoNy wrappers around a CFD-PBE solver to simulate the wet-synthesis of Ni-Mn-Co Hydroxides.

  • CFD-PBE Wrapper: This wrapper prepares a simulation case folder based on the user inputs and executes a solver for Computational Fluid Dynamics-Population Balance Equation (CFD-PBE) simulation of NMC hydroxide precipitation.

  • Compartment Wrapper: This wrapper is aimed at simulating the NMC hydroxide precipitation in a pilot CSTR reactor, by using the compartment model. Currently, it can be used only to divide the reactor into the compartments.

Contact: Andrea Querio, Daniele Marchisio, Antonio Buffo and Gianluca Boccardo from the Multiphase Systems and Chemical Engineering research group, Politecnico di Torino.

Installation

The wet synthesis wrappers require a working installation of OpenFOAM 8, SUNDIALS (v6.1.1 is known to work), 7-zip, Anaconda3 (v4.8.2 is known to work), and the CFD-PBE solver from the GitHub repository of Politecnico di Torino. Follow the links to find installation instructions for each tool.

Once the requirements have been installed, clone the Wet Synthesis Wrappers repository and install them.

git clone https://github.com/simphony/simdome_wet_synthesis.git
pip install ./simdome_wet_synthesis

Then install the required ontology.

pico install simdome_wet_synthesis/ontology.wet_synthesis.yml

# If you have issues using pico directly, you can use
# python -m osp.core.pico install simdome_wet_synthesis/ontology.wet_synthesis.yml

Docker

Alternatively, it is possible to execute the wrapper in a Docker container. Clone the repository and enter the newly created directory

git clone https://github.com/simphony/simdome_wet_synthesis.git
cd simdome_wet_synthesis

and then run

docker build -t simdome/wet_synthesis .

to create the docker image. After that, run

./run_container.sh

to get access to a shell inside a container based on the image that has just been built.

Documentation

Visit the documentation to learn how to use the wrappers.