Skip to content

refactor: Phase-field and damage solid model cleanup, refactor - #4096

Open
frankfeifan wants to merge 21 commits into
developfrom
refactor/frankfei/phaseFieldRefactor
Open

refactor: Phase-field and damage solid model cleanup, refactor#4096
frankfeifan wants to merge 21 commits into
developfrom
refactor/frankfei/phaseFieldRefactor

Conversation

@frankfeifan

@frankfeifan frankfeifan commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

To remove dead codes, unify duplicated logic, rename unclear variables, and decouple crack model type from decomposition scheme to enable more options of the phase-field model.

  • Remove unnecessary macros in the solver and damage model
  • Unify LocalDissipationOption into a constitutive-level definition
  • Add FractureModelType (Brittle/Cohesive/Nucleation), and decouple it from decomposition scheme to allow for more phase-field model combinations, e.g.,
    - Brittle + Linear (AT1)/Quadratic (AT2) + No decomposition/Spectral/VolDev
    - Cohesive + Linear + No decomposition/Spectral/VolDev
    - Nucleation + Linear + No decomposition
  • Add check for invalid combinations (Nucleation+Spectral, Cohesive+Quadratic, etc.)
  • Update existing phase-field xml decks and add new examples
  • Enable co-existence of no-phase-field regions (only solid mech, and no damage dof) and phase-field regions. The previous code will complain about empty damage dof set even the regions are not defined in PhaseFieldFracture or PhaseFieldDamageFEM.
  • Add viscous regularization for the phase-field equation
  • Rebaseline integrated tests

Still wip, and more to come ...

@frankfeifan frankfeifan self-assigned this Jul 16, 2026
@frankfeifan frankfeifan added ci: run CUDA builds Allows to triggers (costly) CUDA jobs changes XML input ci: run integrated tests Allows to run the integrated tests in GEOS CI ci: run code coverage enables running of the code coverage CI jobs labels Jul 16, 2026

@joshua-white joshua-white left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice cleanup

@frankfeifan

frankfeifan commented Aug 6, 2026

Copy link
Copy Markdown
Contributor Author

Added a few well-known benchmark examples in inputFiles/phaseField/benchmark which can be used for future phase-field documentation.

A short report summarizing these examples is attached here:
phase_field_benchmarks_report.pdf

@frankfeifan frankfeifan added flag: ready for review flag: requires rebaseline Requires rebaseline branch in integratedTests labels Aug 12, 2026
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2c27bd8a7f93400a56a2e1c746b1e120b2b37bfa9ae5b539db044e3eff4cf436
size 10562784

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One concern is the size of the meshes for benchmark examples (xx MB), which is too large to be merged into develop repo.
Probably, they should be moved to the GEOSXDATA repo.

Can you also add the coarse version of these meshes for the corresponding smoke tests?

@victorapm victorapm Aug 15, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see this mesh has about 80k elements. Would it be possible to test the same simulation capabilities on a mesh with 1k elements? This would help speeding up the integrated tests and, at the same time, would solve the issue that Jian pointed out

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see this mesh has about 80k elements. Would it be possible to test the same simulation capabilities on a mesh with 1k elements? This would help speeding up the integrated tests and, at the same time, would solve the issue that Jian pointed out

Thanks Victor. Actually these phase-field simulations have quite stringent mesh requirement. See Fig. 22 in https://onlinelibrary.wiley.com/doi/abs/10.1002/nme.2861

That said, I agree with Jian that move those large mesh files to the GEOSXDATA repo is a good plan. In GEOS, I can create coarse counterparts just for the integrated test purpose.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That sounds a good plan, thanks, Frank!

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e1c1f36ee6c041755fe55b5b7f4c08e611f3b7ef2891d68f3cc1095db10c58e6
size 49152688

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see above comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

changes XML input ci: run code coverage enables running of the code coverage CI jobs ci: run CUDA builds Allows to triggers (costly) CUDA jobs ci: run integrated tests Allows to run the integrated tests in GEOS CI flag: ready for review flag: requires rebaseline Requires rebaseline branch in integratedTests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants