Skip to content

Latest commit

 

History

History
43 lines (36 loc) · 1.57 KB

README.md

File metadata and controls

43 lines (36 loc) · 1.57 KB

FEniCS/DOLFINx/MPC & PFHub BM 1: Spinodal Decomposition

This repository presents an implementation of the PFHub Spinodal Decomposition Benchmark using DOLFINx, the experimental version of FEniCS. The basic code for this implementation is lifted from the Cahn-Hilliard example provided by the DOLFINx Docs.

N.B.: DOLFINx does not currently support resuming a simulation from the XDMF/HDF5 checkpoint files it writes. This is a severe deficiency.

DOLFINx & Singularity

I use Singularity to run the nightly DOLFINx build from [DockerHub] (https://hub.docker.com/r/dolfinx/dolfinx/tags?page=1&ordering=last_updated) inside a Conda environment. The Makefile reflects this environment.

  • Install Miniconda and Mamba (better dependency resolver)
    $ curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
    $ chmod +x Miniconda3-latest-Linux-x86_64.sh
    $ ./Miniconda3-latest-Linux-x86_64.sh
    «agree to EULA, specify install dir, and prepare your shell»
    $ conda install mamba -n base -c conda-forge
  • Create and activate an environment containing Singularity
    $ mamba create -n sing python=3 singularity
    $ conda activate sing
  • Move to the benchmark directory and run the benchmark
    $ cd ~/path/to/dolfinx-bm1-spinodal
    $ make

DOLFINx-MPC

DOLFINx MPC provides for periodic boundary conditions. At present, stock DOLFINx does not.