===== 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 [[https://www.mail-archive.com/fipy%40nist.gov/index.html|Maillinglist]].
== Install: ==
Create a [[/programming/python/virtualenv|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 ===
[[http://geuz.org/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 [[software: 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