Releases: llnl/ExaCA
Releases · llnl/ExaCA
Version 2.1
New features:
- Two phase solidification. Added the option to specify a second interface response function in the
Materialinput file for a second solidification phase, where the first interface response function corresponds to a “default” phase (cell attributePhaseIDof 0) used for the baseplate and powder grain structures, and thePhaseIDfor a new active cell is assigned based on the phase of the parent cell (if created via a cell capture event) or based on the phase with the larger solidification velocity at the cell’s undercooling (if created via a nucleation event). Includes a new example problem.- For simulations where two interface response functions are given, the optional input
transformationcan be set totruefor the second phase’s interface response function to ensure that cell activation at melt pool edges is always performed using the “default” phase (i.e., the second solidification phase transforms after solidification was complete). - If a second grain orientation file is given in the top-level input file (i.e., an array of two strings is given for the
GrainOrientationFile), this second list of orientations is used to map grains that solidified as the second phase to crystallographic orientations. Iftransformation=true, the grain orientation will revert to the orientation given in the first file, very roughly approximating a crystallographic orientation change that might occur upon solid-solid transformation (though ExaCA does not currently consider solid-solid nucleation and grain growth). - When running the
ExaCA-GrainAnalysispost-processing script using a vtk file withPhaseIDdata present, the fraction of each representative area or volume consisting of the primary phase is printed to the console and to the output file.
- For simulations where two interface response functions are given, the optional input
- Optional nix build support
- Added print option
AtMeltEdgeto track which cells were activated at the end of the solidification region, where this will be set to 1 for cells that were assigned a grain ID via activation (i.e., at the edge of the melt pool) or 0 for cells that were assigned a grain ID via a nucleation event or cell capture from an adjacent solidifying grain. - Added the option to specify
BaseplateBottomZin theSubstratesection of the input file for problem typesFromFileandFromFinch, which, combined with existing options to specify the substrate domain bounds in X, Y, andBaseplateTopZ, enables full control over the extent of the simulation domain regardless of the bounds of the input time-temperature history data. - Added the option to specify an exponential function form for the interface response function relating the solidification velocity of a grain
Vto the local undercooling of a celldT(i.e.,V(dT) = A*exp(B*dT), whereAandBare inputs in theMaterialinput file). - Added the option to truncate the interface response function such that the maximum attainable solidification velocity of a grain
Vcorresponds to the valueV(freezing_range)where the alloy’sfreezing_rangeis an input in theMaterialfile. This option is turned on by settingvelocity_captotruein theMaterialinput file.
Bug fixes and improvements:
- Fix calculation of the volume fraction of nucleated grains for multilayer problems
- Only run tests up to 4 mpi ranks (based on unit test assumptions)
- Correct name of analysis input option
printAvgStats - Default to one layer for all single layer problem types
- Fix layer range for unit tests
- Use newer json download to work with newest CMake
- Fix device print usage (affects SYCL backend)
- Fix temperature translation floating point issue
- Fix output for intralayer with the PrintIdleFrames option
- Fix inconsistent analysis option for grain statistics as a function of build height
- Fix unclear error for analysis commandline arguments
- Avoid reuse of substrate grain IDs when reading substrate data from a file
- Ensure nucleation is correctly handled on skipped timesteps
- Customized pole figure/inverse pole figure plotting (confirmed to work with MTEX v6.0.0 and Matlab 2024b)
LayerIDno longer required in vtk files analyzed byExaCA-GrainAnalysis
Deprecated features:
- Option
MeanSizegiven in theSubstratesection of the input file to specify the mean size of grains in a baseplate microstructure, has been renamedMeanBaseplateGrainSize. - Option
PowderDensitygiven in theSubstratesection of the input file and specifying the density of powder grains in new layers of a multilayer simulation, has been replaced withMeanPowderGrainSize, which instead gives a mean size of grains in the
powder layers.
Deprecated feature removal:
- Removed support for old problem type/simulation type names:
Cmust now be given asDirectionalfor directional solidification,SasSpotfor simulation of a hemispherical spot melt, andRorRMasFromFilefor file-based time-temperature history. - Removed layer-wise analysis options (i.e., the
printPerZCoordinateStatssection of analysis input file)
Version 2.0.2
Bug fixes and improvements:
- Customized pole figure/inverse pole figure plotting (confirmed to work with MTEX v6.0.0 and Matlab 2024b)
- Fix volume fraction of nucleated grains for multilayer problems
- Only run tests up to 4 mpi ranks (based on unit test assumptions)
- Correct name of analysis input option
printAvgStats - Default to one layer for all single layer problem types
- Fix layer range for unit tests
- Use newer json download to work with newest CMake
Version 2.0.1
Bug fixes and improvements:
- Updated CMake version
- Fix device print usage (affects SYCL backend)
- Fix temperature translation floating point issue
- Fix output for intralayer with the
PrintIdleFramesoption - Fix inconsistent analysis option for grain statistics as a function of build height
- Fix unclear error for analysis commandline arguments
Version 2.0
New features:
- Coupled heat transfer with new optional dependency on Finch with problem type "FromFinch"
- Optional translation and mirroring of input temperature data (from file or from Finch)
- Support for VTK substrate file input
Performance:
- Minor performance improvement with elimination of redundant memory access and unneeded projection calculations in the cellCapture subroutine
Deprecated features:
- Renamed problem type "C"->"Directional" for directional solidification and "R"->"FromFile" for file-based time-temperature history
Deprecated feature removal:
- Removed support for custom substrate files (VTK now supported)
Bug fixes and improvements:
- Renamed executables and libraries (symlinks to previous executable names)
- Fixed error in the calculation of grain misorientation
- Fixed timers reporting final step time rather than cumulative time
- Added option to disable JSON dependency download
ExaCA_REQUIRE_EXTERNAL_JSON - Split storage of liquidus crossing time and cooling rate to use correct types for each
- Ensure cells cannot go above and below the liquidus on the same step
Version 1.3
New features:
- Object oriented code reorganization
- Removal of restriction to always use default
Kokkos::Viewdefinitions (however, main executable still usesKokkos::DefaultExecutionSpace) - New problem type for single grains growing freely into liquid of input undercooling, thermal gradient and cooling rate
Performance:
- Reduced memory usage and improved CPU/GPU performance by allocating certain structures (such as cell type) only for the current layer of a multilayer simulation, with subviews for other structures (like grain ID). This allows indexing with respect to both the current layer and all layers to be avoided
- Redundant data structures
CritTimeStepandMeltTimeStepwere removed with an algorithm rewrite for the temperature data, improving GPU performance - Use of short datatype for
LayerID, reducing memory usage and output file size for printing binary data
Deprecated features:
- Support for reading substrate files as the initial condition will be removed in a future release (will be replaced with the ability to read vtk files of GrainID)
- Support for problem type S (arrays of spot melts) will be removed in a future release
- Support for the previous input file print options format will be removed in a future release
Deprecated feature removal:
- Removed support for non-remelting (single case for constrained solidification retained)
- Removed support for plain text (non-JSON) input files
Bug fixes and improvements:
- Removed arbitrary limit on maximum undercooling and growth velocity
- More stable handling of cells that melt and resolidify in rapid succession
- Edge case of incorrect powder layer initialization when the layer height is accounted for in the input thermal data resolved using the new ability to set baseplate top location for multilayer simulations
- Example problems for the new single grain growth problem type
- More flexible and configurable data output for both inter and intralayer details
- Allowed use of temperature data input files that contain additional columns beyond the required
x, y, z, tm, tl , crused by ExaCA (the additional columns are not used by ExaCA, and must appear after the required columns) - Build system improvements for using ExaCA as a downstream library
- Improved build documentation
Minimum dependency version updates:
- Kokkos 4.0
- nlohmann/json (now required)
Version 1.2
New features:
- Optional JSON input files (main input, material input, and analysis input) and log file (enabled with
ExaCA_ENABLE_JSON) - Optional JSON output files
- Version/commit output functions
- Significant update to analysis routines
Performance:
- Reduced total communication by converting grain ID into separate grain orientation and repeat value which avoids type conversion issues
- Reduce communication buffer sizes from total halo region to the total active communicated cells (plus buffer space)
Deprecated features:
- Problems without remelting with spot arrays and temperature file input
- Plain text input files (main input, material input, and analysis input) and log file
Deprecated feature removal:
- Decomposition strategy as a code input (a 1D domain decomposition in the Y direction is now used for all simulations with multiple MPI ranks)
Bug fixes and improvements:
- Temperature interpolation errors near boundaries
- Nucleation unit test race condition fixed
- Fixed layer height initialization edge case bug that affected the first layer on the baseplate
- Fixed edge case with remelting and rapid cooling/reheating of cells where time step would attempt to fast-forward despite the presence of superheated liquid cells whose solidification had not yet been modeled
- Microstructure analysis moved into separate sub-package
Minimum dependency version updates:
- Kokkos 3.2
- CMake 3.12
New optional dependency:
- nlohmann/json (minimum 3.10)
Version 1.1
New features:
- Added option to include remelting, where multiple melting and liquidus events are used for cells that solidify more than once. Only applicable to spot melts and problems using input time-temperature history data
- Added option to control the density of grains in the powder layer for multilayer simulations
Bug fixes and improvements:
- Fixed bug that caused grain ID values to erroneously change during halo exchange operation for large multilayer problems with a sufficiently large number of grains (fixed with conversion from float to double)
- Added unit tests for coverage across all major portions of ExaCA (initialization, nucleation, cell capture, halo exchange, and output)
Version 1.0
Initial release
Features
- Simulation with Kokkos Serial, OpenMP, Cuda, and HIP backends
- Simulation of directional solidification: grain growth from a surface with a fixed thermal gradient and cooling rate
- Simulation of arrays of overlapping hemispherical spots with fixed thermal gradients and cooling rates
- Simulation with external thermal data for multi-layer additive manufacturing builds
- Grain structure output and analysis routines
Minimum dependency versions
- CMake minimum 3.9 required
- Kokkos minimum 3.0 required
- MPI required