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


Built upon our earlier package SubdivisionLab, Wmincon provides:
  1. 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().
  2. 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() and HE_PL().
  3. Matlab functions Wmincon_PL() and Wmincon_SS() that interface between the above functions and three general optimization solvers (fmincon, snopt and granso) for solving various constrained Willmore problems.
Installation and Usage:
  1. Download the package from the link above, unzip it.
  2. At the root SubdivisionLab directory, run >> startup . This adds all the paths to Matlab.
  3. At the Papers/Enumath17/ directory, run >> Figure1. The raw Matlab code should produce the five figures as shown in 'Example' below.
  4. To compile the C++ code, change directory to Functionals/, then run >> MakeCpp
  5. 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.)
  6. 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/.
  7. 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:

Compiled .mex files:

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