Skip to content

Code to reproduce experiments from the paper "A Fast Direct Solver for Boundary Integral Equations Using Quadrature By Expansion"

Notifications You must be signed in to change notification settings

alexfikl/qbx-ds-paper-experiments

Repository files navigation

Introduction

MIT License Zenodo repository

This contains a Docker image and some scripts that are used to generate the results from the paper in a reproducible manner.

Building Docker Image

To build the image, start your docker daemon and just do

docker buildx build -f Dockerfile . -t qbx-ds-experiments

or, equivalently

make docker-build

Reproducing results

To run the scripts in the experiments folder you need to go through the following steps

# 1. build the container as above
# 2. enter the container using:
make docker-run
# 3. inside the container:
source "${HOME}/.miniforge/bin/activate" paper
make run
make visualize

The first make run command will run all the experiments and generate a set of npz files with the results. This can take a very long time and uses all available CPU cores (through OpenCL and PoCL), so make sure to have the necessary resources. The results can then be visualized with make visualize.

You can of course also run the scripts individually by calling the respective file. The make run command will automatically run the experiments over 2D and 3D and over a single-layer and double-layer potential to generate all the results from the paper.

Locked dependencies

The repository contains a list of hardcoded dependencies at the time of writing to ensure reproducible results. They can be found in

  • conda-packages.txt: base system Conda dependencies.
  • requirements.txt: additional Python dependencies.

To update the versions to the latest ones, you can use

make -B pin

About

Code to reproduce experiments from the paper "A Fast Direct Solver for Boundary Integral Equations Using Quadrature By Expansion"

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages