phaseField icon indicating copy to clipboard operation
phaseField copied to clipboard

Refactor adaptive meshing methods

Open landinjm opened this issue 1 year ago • 1 comments

This is the first of a series of PRs aimed at refactoring the matrixFreePDE class into several compositional classes (e.g., discretization, timesteppings, etc.). This reduces the bulkiness of matrixFreePDE and makes it easier to figure out what files you need to edit (without having to understand what everything does).

This should also lower the barrier of entry for future PRs and contributors.

In addition to refactoring, I also cleaned the method that applies the refinement criterion to marks cells to be refined or coarsened. As part of this, I redid the enum for the refinement criterion to imitate deal.II's enum UpdateFlags. This allows us to use bitwise OR and AND statements to specify if we need the values, gradients, etc (see below). https://github.com/prisms-center/phaseField/blob/1682413858c4ce6e8e9468830cd883840bdfd163/src/userInputParameters/userInputParameters.cc#L104-L106

landinjm avatar Aug 27 '24 18:08 landinjm

Works as intended

landinjm avatar Aug 29 '24 15:08 landinjm