This solver implements a first order Lagrange finite element method to solve the Cahn-Hilliard equation. The solver works on triangular mesh and refines the mesh at every time-step to follow the dynamics of the evolving boundary in Cahn-Hilliard. At every tim-step the solver refines a base mesh at interesting points in order to follow the dynamics of the solution. The solution estimate is then interpolated on this new mesh before building the new finite element approximation. The steps of the refinement are shown below:
The mesh manipulation is done using the package Mesh2d from https://github.com/dengwirda/mesh2d.