diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 3f606bfe..3392ebdf 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -89,6 +89,7 @@ jobs: $HOME/exaca/bin/ExaCA-Kokkos Inp_SmallSpotMelt.txt mpirun -n 2 --oversubscribe $HOME/exaca/bin/ExaCA-Kokkos Inp_SmallDirSolidification.txt mpirun -n 2 --oversubscribe $HOME/exaca/bin/ExaCA-Kokkos Inp_SmallSpotMelt.txt + mpirun -n 2 --oversubscribe $HOME/exaca/bin/ExaCA-Kokkos Inp_SmallSpotMelt_RM.txt - name: Test GA working-directory: analysis/examples run: | diff --git a/README.md b/README.md index b9bdaac3..2ecd6abd 100644 --- a/README.md +++ b/README.md @@ -145,12 +145,15 @@ make install ExaCA-Kokkos runs using an input file, passed on the command line. Example problems are provided in the `examples/` directory - A separate README file located in the `examples/` directory goes into more detail on the problem types, the optional and required arguments needed for each problem type, and additional files used by ExaCA. The example input files present in this repository are: * `Inp_DirSolidification.txt`: simulates grain growth from a surface with a fixed thermal gradient and cooling rate * `Inp_SmallDirSolidification.txt`: a smaller and simpler version of the previous - * `Inp_SpotMelt.txt`: simulates overlapping spot melts with fixed a fixed thermal gradient and cooling rate + * `Inp_SpotMelt.txt`: simulates overlapping spot melts with fixed a fixed thermal gradient and cooling rate, where cells are only allowed to undergo solidification one time (i.e., overlap regions only solidify when they've cooled below the liquidus for the final time in the simulation) * `Inp_SmallSpotMelt.txt`: a smaller and simpler version of the previous + * `Inp_SpotMelt_RM.txt`: simulates overlapping spot melts with fixed a fixed thermal gradient and cooling rate, where cells in the overlap region are allowed to melt and solidify as many times as needed + * `Inp_SmallSpotMelt_RM.txt`: a smaller and simpler version of the previous Example problems only possible with external data (available via https://github.com/LLNL/ExaCA-Data): * `Inp_AMBenchMultilayer.txt`: simulates 4 layers of a representative even-odd layer alternating scan pattern for AM builds * `Inp_SimpleRaster.txt`: simulates a single layer consisting of four overlapping melt pools + * `Inp_TwoLineTwoLayer.txt`: simulates two layers consisting of segments of two overlapping melt pools Run by calling the created executable with an ExaCA input file: ``` diff --git a/examples/Inp_SmallSpotMelt_RM.txt b/examples/Inp_SmallSpotMelt_RM.txt new file mode 100644 index 00000000..31eddef4 --- /dev/null +++ b/examples/Inp_SmallSpotMelt_RM.txt @@ -0,0 +1,27 @@ +Test problem simulating solidification of a series of overlapping spots, with remelting of spots (Problem type 'SM') +***** +Problem type: SM +Decomposition strategy: 1 +Material: Inconel625 +Cell size: 1 +Heterogeneous nucleation density: 10 +Mean nucleation undercooling: 5 +Standard deviation of nucleation undercooling: 0.5 +Path to output:./ +Output file base name:TestProblemSmallSpot_RM +File of grain orientations: GrainOrientationVectors.csv +Thermal gradient: 500000 +Cooling rate: 300000 +Number of spots in x: 1 +Number of spots in y: 2 +Offset between spot centers: 25 +Radii of spots: 25 +Number of layers: 1 +Offset between layers: 20 +Time step ratio (from steady-state Velocity): 25 +Substrate grain spacing: 25 +***Output data printing options: (Y or N) which data should be printed*** +Print file of grain misorientation values: Y +Print file of all ExaCA data: Y +Debug check (reduced): N +Debug check (extensive): N diff --git a/examples/Inp_SpotMelt_RM.txt b/examples/Inp_SpotMelt_RM.txt new file mode 100644 index 00000000..086f24f9 --- /dev/null +++ b/examples/Inp_SpotMelt_RM.txt @@ -0,0 +1,31 @@ +Test problem simulating solidification of a series of overlapping spots, with remelting of spots (Problem type 'SM') +***** +Problem type: SM +Decomposition strategy: 1 +Material:Inconel625 +Cell size: 1 +Heterogeneous nucleation density: 10 +Mean nucleation undercooling: 5 +Standard deviation of nucleation undercooling: 0.5 +Path to output:./ +Output file base name:TestProblemSpot +File of grain orientations:GrainOrientationVectors.csv +Thermal gradient: 500000 +Cooling rate: 300000 +Number of spots in x: 3 +Number of spots in y: 2 +Offset between spot centers: 100 +Radii of spots: 75 +Number of layers: 2 +Offset between layers: 20 +Time step ratio (from steady-state Velocity): 25 +Substrate grain spacing: 25 +***Output data printing options: (Y or N) which data should be printed*** +Print file of grain misorientation values: Y +Print file of all ExaCA data: Y +Debug check (reduced): N +Debug check (extensive): N +***Intermediate output printing as a time series of vtk files (these can be read as a movie by Paraview)*** +Print intermediate output frames: N +Increment to separate frames: 2500 +Intermediate output even if system is unchanged from previous state: N diff --git a/examples/Inp_TwoLineTwoLayer.txt b/examples/Inp_TwoLineTwoLayer.txt new file mode 100644 index 00000000..34349402 --- /dev/null +++ b/examples/Inp_TwoLineTwoLayer.txt @@ -0,0 +1,24 @@ +Test problem using two overlapping segments of line scans, repeated for two layers, with remelting of the overlap region: +***** +Problem type: RM +Decomposition strategy: 1 +Material:Inconel625 +Cell size: 2.5 +Heterogeneous nucleation density: 100 +Mean nucleation undercooling: 5 +Standard deviation of nucleation undercooling: 0.5 +Path to output:./ +Output file base name:TestProblemTwoLineTwoLayer +File of grain orientations:GrainOrientationVectors.csv +Time step: 0.0825 +Substrate grain spacing: 25 +Path to and name of temperature field assembly instructions: examples/Temperatures/T_TwoLineTwoLayer.txt +***Output data printing options: (Y or N) which data should be printed*** +Print file of grain misorientation values: Y +Print file of all ExaCA data: Y +Debug check (reduced): N +Debug check (extensive): N +***Intermediate output printing as a time series of vtk files (these can be read as a movie by Paraview)*** +Print intermediate output frames: N +Increment to separate frames: 1000 +Intermediate output even if system is unchanged from previous state: Y \ No newline at end of file diff --git a/examples/README.md b/examples/README.md index 69166e40..c103c623 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,5 +1,5 @@ # ExaCA problem types and auxiliary files -ExaCA currently can model three types of problems: +ExaCA currently can model three types of problems, two of which have the option of whether or not to include multiple melting and solidification events in cells: * Problem type C is a directional solidification problem, with the bottom surface initialized with some fraction of sites home to epitaxial grains and at the liquidus temperature and a positive thermal gradient in the +Z direction. The domain is then cooled at a constant rate. * Problem type S is an array of hemispherical spots, with the number of spots in X, Y, and the number of layers for which the pattern is repeated (offset by a specified number of cells in the positive Z direction) specified. This problem type also uses fixed thermal gradient magnitude and cooling rate for each spot. @@ -8,6 +8,7 @@ ExaCA currently can model three types of problems: * Each line following the first should have six comma-separated values corresponding to x, y, z, tm, tl, cr. x, y, and z are cell coordinates, in meters, of a given location in the simulation. The spacing between locations should correpond to a Cartesian grid, with a cell size equivalent to that specified in the input file. For each time that an x,y,z coordinate went above and below the liqiuidus temperature of the alloy during a heat transport simulation, a tm (time at which the point went above the liquidus), tl (time at which the point went below the liquidus), and cr (instantaneous cooling rate at the liquidus) should be recorded. * If an x,y,z coordinate melted and solidified multiple times, it should appear in the file multiple times on separate lines. The order of the lines do not matter, except that the header line must be before any data. * The top surface (the largest Z coordinate in a file) is assumed to be flat. Additionally, if multiple temperature files are being used (for example, a scan pattern consisting of 10 layers of repeating even and odd file data), the Z coordinate corresponding to this flat top surface should be the same for all files. +* Problem types SM and RM modify problem types S and R to include multiple melting and solidification events per cell. For problem types S and R all cells that will eventually undergo melting are initialized as liquid, and only the final time that a given cell goes below the liquidus temperature is considered. To obtain the most accurate results, all melting and solidification events should be considered; however, for some problem geometries, the microstructure resulting from only considering the final solidification event in each cell is a reasonable approximation (and faster)) All problem types rely on two files in addition to the main input file. First, a file containing the interfacial response function data governing @@ -29,7 +30,7 @@ to simplfy use the file name in the input file. Custom files must either be added to the ExaCA CMake build, use an absolute file path, or a path relative to the ExaCA source. -Problems of type R rely on a third file for temperature input, with the path +Problems of type R or RM rely on a third file for temperature input, with the path and name of this file given in the master input file. Examples of these temperature field assembly files are given in `examples/Temperatures/T_SimpleRaster.txt` and @@ -47,6 +48,7 @@ The below lines are required regardless of problem type. They can be in any orde | Problem type | C for directional solidification (thermal gradient in build direction, fixed cooling rate) | | S for spot melt array problem (fixed thermal gradient/constant cooling rate for each hemispherical spot) | | R for use of temperature data provided in the appropriate format (see README file in examples/Temperatures) +| | M should be appended to problem type if multiple melting and solidifcation events are desired (i.e, SM or RM) | Decomposition strategy | 1 for a 1D domain decomposition along the Y direction | | 2 for a decomposition along the Y direction, with a single partiton along the X direction | | 3 for a decomposition with roughly equal partitions along the X and Y directions @@ -78,7 +80,7 @@ All inputs are required. | Domain size in z | Domain size in z | Fraction surface sites active| What fraction of cells at the bottom surface of the domain are the source of a grain? -### Problem type S +### Problem type S or SM Some additional inputs are optional while others are required |Input | Required Y/N | Details | @@ -100,7 +102,7 @@ Some additional inputs are optional while others are required (a) One of these inputs must be provided, but not both (b) This is optional, but if this is given, "Extend baseplate through layers" must be set to N -### Problem type R +### Problem type R or RM Some additional inputs are optional while others are required |Input | Required Y/N | Details | @@ -129,7 +131,7 @@ A comment line starting with an asterisk separates the first half of the file, c The deprecated form for temperature field input data, where these 3 input lines exist in the top level input file, alongside inputs "Number of temperature files in series: N" and "Temperature filename(s): Data.txt" (which would indicate reading temperature data from files "1Data.txt", "2Data.txt".... "NData.txt", is still allowed but will be removed in a future release. ## Additional optional inputs for all problem types -These values govern the printing intermediate data, for debugging or visualization, either following initialization or at specified increments during simulation +These values govern the printing intermediate data, for debugging or visualization, either following initialization or at specified increments during simulation. Debug check options are currently only available for simulations that do not include multiple melting/soldification events per cell (i.e., only problem types C, S, and R, not SM nor RM) |Input | Details | |----------------------------|---------| diff --git a/examples/Temperatures/T_TwoLineTwoLayer.txt b/examples/Temperatures/T_TwoLineTwoLayer.txt new file mode 100644 index 00000000..3dd705cf --- /dev/null +++ b/examples/Temperatures/T_TwoLineTwoLayer.txt @@ -0,0 +1,5 @@ +Number of layers: 2 +Offset between layers: 8 +Heat transport data mesh size: 2.5 +***** +examples/Temperatures/TwoLine.txt \ No newline at end of file