Skip to content

DOLFINx implementation of the first PFHub benchmark problem

Notifications You must be signed in to change notification settings

tkphd/dolfinx-bm1-spinodal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.