Installation notes

pyforce has been tested on MacOS and Linux machines with Python3.10.

Dependencies

The pyforce package requires the following dependencies:

import numpy
import scipy
import matplotlib
import h5py

import pyvista
import gmsh
import dolfinx
import sklearn
import fluidfoam

Be sure to install gmsh and gmsh-api before dolfinx (the package has been tested with real mode of the PETSc library). The instructions to install dolfinx are available at https://github.com/FEniCS/dolfinx#binary.

Set up a conda environment for pyforce

Currently pyforce can only be obtained by directly cloning the repository (not in PyPI or conda repository).

It is suggested to create a conda environment: at first, clone the repository

git clone https://github.com/ERMETE-Lab/ROSE-pyforce.git

create a conda environment using environment.yml

cd ROSE-pyforce
conda env create -f pyforce/environment.yml

activate the environment and then install the package using pip

conda activate pyforce-env
python -m pip install pyforce/

If the previous procedure encounters any issues, you can adopt a step-by-step approach: start by creating a new conda environment

conda create --name <env_name>

If not already done, add conda-forge to the channels

conda config --add channels conda-forge

After having activate it, install

conda install python=3.10

This provides also pip which is necessary to install gmsh as

python -m pip install gmsh gmsh-api

Then, dolfinx can be installed (real mode for petsc is supposed), currently only supports v0.6.0,

conda install fenics-dolfinx=0.6.0 mpich pyvista

Just for completeness, if you are to deal with complex numbers use the following command

conda install fenics-dolfinx=0.6.0 petsc=*=real* mpich pyvista

Add the following packages

conda install meshio scipy tqdm

Downgrade the following

python -m pip install setuptools==62.0.0
conda install numpy=1.23.5

Once this is completed, it may be necessary to re-install gmsh

python -m pip install gmsh gmsh-api

In the end, the fluidfoam (https://github.com/fluiddyn/fluidfoam) and scikit-learn are necessary to import data from OpenFOAM and to integrate Machine Learning (ML) with ROM

python -m pip install fluidfoam scikit-learn

Once all the dependencies have been installed, pyforce can be installed using pip: clone the repository

git clone https://github.com/ROSE-Polimi/pyforce.git

Change directory to pyforce and install using pip

python -m pip install pyforce/