Skip to content
Replicability data for Decoupling Simulation Accuracy from Mesh Quality
Python Jupyter Notebook Shell MATLAB
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data
fig1-teaser
fig11-examples-poisson
fig21-examples-elasticity
fig7-neo-hookean-2d
fig8-neo-hookean-3d
plots
polyfem @ e3b5ad0
scripts
table1-singularities
.gitignore
.gitmodules
Decoupling-Simulation-Accuracy-from-Mesh-Quality.ipynb
LICENSE
README.md
conda.yml
environment.yml
gen_json.py

README.md

Decoupling Simulation Accuracy from Mesh Quality

This repository contains the scripts to regenerate the figures in the paper:

Decoupling Simulation Accuracy from Mesh Quality

@article{Schneider:2018:DSA,
    author = {Teseo Schneider and Yixin Hu and Jérémie Dumas and Xifeng Gao and Daniele Panozzo and Denis Zorin},
    journal = {ACM Transactions on Graphics},
    link = {},
    month = {10},
    number = {6},
    publisher = {Association for Computing Machinery (ACM)},
    title = {Decoupling Simulation Accuracy from Mesh Quality},
    volume = {37},
    year = {2018}
}

Python teaser

We created a simple jupyter notebook with an example to run the teaser image.

This notebook can be interactively run with binder! Binder

Dependencies

PolyFEM

A specific version of PolyFEM is included as a submodule. To retrieve and compile it, run the following commands:

git submodule update --init --recursive
cd polyfem
mkdir build
cd build
cmake ..
make -j 8

Make sure that PARDISO is found and enabled, otherwise you might not be able to generate certain figures (see below). In PolyFEM, FindPardiso.cmake will look for the PARDISO library in ~/.local or ~/.pardiso. If you installed PARDISO in a different location, you may need to update this file accordingly.

Conda Environment

Install Miniconda for Python 3, and create the environment for this paper from the conda.yml file:

conda env create -f conda.yml
PyRenderer (via Singularity/Docker)

PyRenderer is used to render the images in the paper. PyRenderer is a wrapper around Mitsuba, and as such is a bit complicated to setup. There is a Docker image available on Docker-Hub. We also provide a pre-built Singularity Singularity image (>=v3.0.0) of PyRenderer. Singularity is similar to Docker, but does not require root privilege in order to run images. Please read the documentation to install it on your machine.

  • Our Singularity image can be downloaded programmatically from our Google Drive using `gdown` (click to expand).

pip3 install --user gdown
gdown "https://drive.google.com/uc?id=1zfqiThhSRZkmNDeaXj2nGC1kf00kRIsK"
md5sum pyrenderer.sif
# 557ce7496b29fd11d0808f5ec918a995

  • For docker users, make sure to:
    1. Install Docker following official instructions.
    2. Allow to run docker as a non-root user.

Solver

As stated in the paper, we use PARDISO for the following figures:

  • Figure 7
  • Figure 8
  • Figure 11
  • Figure 21
  • Table 1

And HYPRE for the following figures:

  • Figure 9
  • Figure 10
  • Figure 16
  • Figure 17
  • Figure 20

If you try to generate the first figures with an iterative solver, running times may be exceedingly long, so it is not recommended.

You can’t perform that action at this time.