prisms-center / phaseField

PRISMS-PF: An Open-Source Phase-Field Modeling Framework
https://prisms-center.github.io/phaseField/
Other
229 stars 119 forks source link

Refactor adaptive meshing methods #223

Closed landinjm closed 2 months ago

landinjm commented 2 months ago

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 commented 2 months ago

Works as intended