Skip to content

PRISMS-PF (Version 1.2)

Compare
Choose a tag to compare
@stvdwtt stvdwtt released this 19 Jun 20:45
· 787 commits to master since this release

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.