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

Adding script to check that all applications work #245

Closed landinjm closed 1 month ago

landinjm commented 2 months ago

This script compiles and runs each application in debug mode for 1 timestep to make sure all applications are working prior to a version release. Each application is run on a separate task, so it can get through most of the applications fairly quickly (except for memory heavy apps like the CHAC_performance_test. That said, it might be too hefty for incorporation into the CI. We could incorporate tests for compilation though.

Summary

"Broken" Applications

Fixed Applications

Closes #170

landinjm commented 2 months ago

We should solve #155 by automatically setting the output files to 0 if we have a LIST type. This way, the user can switch between EQUAL_SPACING and LIST simply by changing the type and adding a list. This would make the quick fixes above obsolete.

At the same time, I think the default values should be 0 unless the user specifies they want outputs or restarts.

landinjm commented 1 month ago

@stvdwtt Do you know what the steadyStateAllenCahn application is trying to do? I don't really understand what the psi field is trying to do.

stvdwtt commented 1 month ago

@landinjm, the idea was to fast-forward to the steady state of a Cahn-Hilliard-Allen-Cahn system of equations, where the Cahn-Hilliard equation is replaced with a mass-conserving Allen-Cahn equation (essentially, any mass that is lost in a time step is added uniformly across the domain, this facilitates non-local evolution and gets to a steady state more quickly than Cahn-Hilliard).

We used it in this NanoHub application: https://nanohub.org/resources/prismspfmisfit/supportingdocs?sitenotice=close&sitenotice=close

If all you're planning to do is calculate the equilibrium shape of a precipitate, then this kind of approach should be faster than normal time stepping. Of course the intermediate steps are entirely fictitious so it tells you nothing about the evolution.

landinjm commented 1 month ago

Ok, thanks!

landinjm commented 1 month ago

We should solve #155 by automatically setting the output files to 0 if we have a LIST type. This way, the user can switch between EQUAL_SPACING and LIST simply by changing the type and adding a list. This would make the quick fixes above obsolete.

At the same time, I think the default values should be 0 unless the user specifies they want outputs or restarts.

This is fixed by changing the logic in how we set the output list. See commit a3d2d36d6f61461b3eb23b098cabbb62d1a6c188.