PRISMS-PF (Version 1.2)
Update to v1.1, released in June 2017. The core library was substantially reorganized and nucleation and postprocessing
capabilities were added.
Added functionality:
- Add postprocessing capabilities, which can be accessed in the new "postprocess.h" file in each application folder.
- New applications "nucleationModel" and "_preferential_nucleationModel" were added and include new nucleation capabilities.
Changes to the pre-built applications:
- New applications "nucleationModel" and "_preferential_nucleationModel" were added and include new nucleation capabilities.
- Changed the initial conditions for the Allen-Cahn and the Cahn-Hilliard applications to have smooth initial profiles.
- The elastic constants are now accessed by "userInputs.CIJ_List" instead of just "CIJ_List" in the functions in equations.h.
- Updated the gradient energy coefficient, the time step, and the mesh resolution of the Allen-Cahn application. Increased the
time step for CHAC_anisotropy to its maximum stable level. Changed the mesh resolution and time step for the coupled
Allen-Cahn/Cahn-Hilliard application. Changed the convergence tolerance, time step, and number of iterations for the precipitate
evolution application. - The Fickian diffusion application was overhauled to be more conceptually straightforward.
- Changed to a simpler way of specifying the initial conditions, calculating the distances by hand instead of using a pre-built,
deal.II method.
Performance improvements:
- Removed unnecessary applications of constraints, improving run times by up to 30%.
- Updated how Dirichlet constraints are implemented, reducing the number of solver iterations for non-zero Dirichlet BCs.
Bug fixes:
- Dirichlet BCs now work for parabolic PDEs.
- Users can now load in ICs with PFields in 3D and with adaptive meshes.
Other changes:
- Restructured much of the core library. Model files were completely eliminated, pushing many of those functions into MatrixFreePDE.
Each application now has a subclass of MatrixFreePDE called customPDE where member variables and methods can be implemented for
specific applications. - A wall was put in place between the define macros in the input files and the core solver code. The inputs are now housed in the
new "userInputParameters" class. - The core library is now linked instead of "included" in the apps. This increases the compile time the first time an app is compiled
but decreases it substantially afterward. - Added more in-app explanation of how to set the BCs (more comments in each ICs_and_BCs.h file)
Known issues:
- PFields only work for scalar fields and only work when the variable with index zero is a scalar field.