a Matlab/C++/Cuda based toolbox for computing constrained Willmore minimizers--Wmincon

SubdivisionLab-- a Matlab based toolbox for subdivision algorithms

Download: Wmincon+SubdivisionLab.zip

Overview:

Built upon our earlier package SubdivisionLab, Wmincon provides:

Installation and Usage:

- Matlab and Cuda code for computing the Willmore (W) energy, area (A), volume (V), total mean curvature (M), and harmonic energy (HE) of a Loop and C2g0 subdivision surface. The main function is
WAVM_SS().

- Matlab, C++ and CUDA code for discrete W, A, V, M and HE energies defined on PL surfaces. The main functions are
W_PL(),A_PL(),V_PL(),M_PL()andHE_PL().- Matlab functions
Wmincon_PL()andWmincon_SS()that interface between the above functions and three general optimization solvers (fmincon, snopt and granso) for solving various constrained Willmore problems.

- Download the package from the link above, unzip it.
- At the root SubdivisionLab directory, run >> startup . This adds all the paths to Matlab.
- At the Papers/Enumath17/ directory, run >> Figure1. The raw Matlab code should produce the five figures as shown in 'Example' below.

- To compile the C++ code, change directory to Functionals/, then run >> MakeCpp
- To compile the Cuda code, change directory to Functionals/, then run >> MakeCuda. (This may require editing the Cuda toolkit path in MakeCuda(). MakeCuda exploits the parallel toolbox to make the compilation of the CUDA code as painless as possible.)
- If step 4 or 5 fails, you can download the .mex files based on the C++ implementations in the next section and place them under the directory Functional/.

- Explore the scripts under the Papers/ directory to see how various constrained Willmore minimizers can be solved. Currently, the results from the following papers can be reproduced by the scripts under the Papers/ directory:

- Numerical Methods for Biomembranes: conforming subdivision versus non-conforming PL methods (Jingmin Chen, Thomas Yu, Patrick Brogan, Robert Kusner, Yilin Yang and Andrew Zigerelli)

- Numerical Methods for Biomembranes based on Piecewise Linear Surfaces (John Brogan, Yilin Yang and Thomas Yu)(pdf)(Conference Proceedings, Enumath2017)

- A Flexible C^2 Subdivision Scheme on the Sphere: with application to biomembrane modelling (Jingmin Chen, Sara Grundel and Thomas Yu)(pdf)(bibtex entry)
Compiled .mex files:

- Compiled .mex files for the C++ implementation of all PL functionals: Windows, Macs, Linux (the C++ code for the SS functionals are under construction; see `Limitation' below)
- Compiled .mex files for the CUDA implementation of all PL and SS functionals: Windows (Warning: we do not expect it to be portable, however.)

Example:

Limitation:

Below, the Matlab script /Papers/Enumath17/Figure1.m is shown on the left, the graphical outputs are shown on the right. This script illustrates one of the key findings of our research: the Willmore conjecture, now the Marques-Neves theorem, says that the genus 1 Willmore minimizer is the Clifford torus. The script illustrates that a naive minimization of either one of two PL Willmore energies fails to give the Clifford torus, whereas a minimization of the (bona-fide) Willmore energy of subdivision surface gives a good approximation to the Clifford torus. The following computational experiment is published in the conference article "Numerical Methods for Biomembranes based on Piecewise Linear Surfaces" and its mathematical analysis is established in the journal article "Numerical Methods for Biomembranes: conforming subdivision versus non-conforming PL methods".

Currently, the C++ version of WAVM_SS() is not available.Support: Please feel free to contact the PI (yut @ drexel . edu) for technical support.

`Contributors:`

Patrick Brogan, Jingmin Chen, Yilin Yang, Thomas Yu, Andrew Zigerelli

`Acknowlegement:`

NSF grants DMS 1115915, DMS 1522337

Last update: June 17, 2020