Table of Contents

FiPy

Tested

FiPy 3.4.5 on

  • Fedora 39
  • Python 3.12

A finite volume PDE solver in Python

INSTALLED: 3.4.5       (latest)

Fixes, available updates and patches can be found on the Maillinglist.

Install:

Create a Python Virtualenvironment.

mkvirtualenv --python=`which python3.12` fipy
pip install --upgrade pip
pip install --upgrade setuptools
pip install numpy
pip install matplotlib
pip install ez_setup
pip install fipy

Solvers available

SciPY

Gmsh

Gmsh is an automatic 3D finite element mesh generator (primarily Delaunay) with build-in CAD and post-processing facilities. Its design goal is to provide a simple mesh tool for academic test cases with parametric input and up to date visualization capabilities.

Gmsh is built around four modules: geometry, mesh, solver and post-processing. The specification of any input to these modules is done either interactively using the graphical user interface or in ASCII text files using GMSh's own scripting language.

INSTALLED: 4.15       (Fedora 30 gmsh)

PyTrilinos

See also Trilinos in the software category.

Functionality needed for FiPy:

Non-MPI Trilinos

Requirement: numpy

cmake \
   -D CMAKE_INSTALL_PREFIX:PATH=$VIRTUAL_ENV \
   -D CMAKE_C_COMPILER=$(which gcc) \
   -D CMAKE_CXX_COMPILER=$(which c++) \
   -D CMAKE_Fortran_COMPILER=$(which gfortran) \
   -D CMAKE_CXX_FLAGS="-std=c++11" \
   -D CMAKE_BUILD_TYPE:STRING=RELEASE \
   \
   -D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON \
   -D Trilinos_ENABLE_PyTrilinos:BOOL=ON \
   -D BUILD_SHARED_LIBS:BOOL=ON \
   \
   -D Trilinos_ENABLE_OpenMP:BOOL=ON \
   -D TPL_ENABLE_MPI:BOOL=OFF \
   \
   /usr/net/src/trilinos/12.18.1-Source-pytrilinos-f30
MPI Trilinos

Requirements: numpy, mpi4py, petsc, hdf5py

  module load mpi/openmpi-x86_64
  module load parmetis/4.0.3
  module load hdf5/1.12.1-system-mpi
 cmake \
   -D CMAKE_C_COMPILER=$(which mpicc) \
   -D CMAKE_CXX_COMPILER=$(which mpiCC) \
   -D CMAKE_Fortran_COMPILER=$(which mpif90) \
   -D Trilinos_ENABLE_CXX11:BOOL=ON 
   -D CMAKE_BUILD_TYPE:STRING=RELEASE \
   -D Trilinos_ENABLE_PyTrilinos:BOOL=ON \
   -D BUILD_SHARED_LIBS:BOOL=ON \
   -D Trilinos_ENABLE_ALL_OPTIONAL_PACKAGES:BOOL=ON \
   -D TPL_ENABLE_MPI:BOOL=ON \
   -D Trilinos_ENABLE_TESTS:BOOL=ON \
   -D DART_TESTING_TIMEOUT:STRING=600 \
   -D CMAKE_INSTALL_PREFIX:PATH=$VIRTUAL_ENV  \
   -D PyTrilinos_DOCSTRINGS=OFF  \
   -D SWIG_DIR=$VIRTUAL_ENV/share/swig/3.0.10 \
   -D SWIG_VERSION="3.0.10" \
   -D SWIG_EXECUTABLE=$VIRTUAL_ENV/bin/swig \
    /usr/net/src/trilinos/13.4.0