diff --git a/.gitignore b/.gitignore index 7baa0e4..a604f40 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,5 @@ # Visual Studio files *.vcxproj* .vs* +x64* *.sln diff --git a/CHANGELOG.md b/CHANGELOG.md index 983ecb4..b458155 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 -------------------------------------------------------------------------------------------------------------------------------- -## [Unreleased] +## [v2.0.0] - 2019-01-22 + +### Added +- .gitignore - Ignore statement for the Visual Studio x64 build directory +- paper.bib - Missing reference info to several of the book chapter bibtex entries +- Parameters_Lattice - Default values for all parameters +- Parameters_Simulation - Default values for all parameters +- test.cpp (SimulationTest) - Test that default parameters object has invalid parameters +- test.cpp (LatticeTest) - Test that default parameters object has invalid parameters + +### Changed +- README.md - Current status to note release of stable v2.0.0 + +### Fixed +- docs - Several spelling mistakes and typos in the documentation +- test.cpp - Copyright years in the Doxygen documentation block +- test_mpi.cpp - Copyright years in the Doxygen documentation block +- paper.md - Typos and formatting issues +- paper.bib - Formatting problems in bibtex entries ## [v2.0.0-rc.2] - 2019-01-07 - Release Candidate 2 @@ -64,13 +82,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Utils (createGaussianDOSVector) - Refactored code to use generate function for filling the output data vector - Utils (MPI_*) - Refactored functions by replacing for loops with copy, assign, and accumulate functions to make code more concise - test.cpp (main) - Re-enabled command line output during the tests to make it easier to see when errors occur -- test.cpp (CalculateProbabilityHistTests) - Replaced generic unform_real_distribution by specifying use of the double version +- test.cpp (CalculateProbabilityHistTests) - Replaced generic uniform_real_distribution by specifying use of the double version - test.cpp (CalculateProbabilityHistTests) - Increasing the number of entries in the data vectors to increase statistical accuracy and reduce likelihood of test failure - test.cpp (CalculateProbabilityHistTests) - Refactored tests to use the generate function for filling a vector with random numbers ### Fixed -- Event - Corrected the copyright years in the Doxygen documentation block for the class -- Lattice - Corrected the copyright years in the Doxygen documentation block for the class -- Object - Corrected the copyright years in the Doxygen documentation block for the class -- Simulation - Corrected the copyright years in the Doxygen documentation block for the class -- Site - Corrected the copyright years in the Doxygen documentation block for the class +- Event - Copyright years in the Doxygen documentation block for the class +- Lattice - Copyright years in the Doxygen documentation block for the class +- Object - Copyright years in the Doxygen documentation block for the class +- Simulation - Copyright years in the Doxygen documentation block for the class +- Site - Copyright years in the Doxygen documentation block for the class diff --git a/README.md b/README.md index 81bff33..a99843b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# KMC_Lattice +# KMC_Lattice ## General Information @@ -25,8 +25,7 @@ For further reading about kinetic Monte Carlo simulations, nice overviews of the ## Current Status -The current release is KMC_Lattice [![GitHub (pre-)release](https://img.shields.io/github/release/MikeHeiber/KMC_Lattice/all.svg?style=flat-square)](https://github.com/MikeHeiber/KMC_Lattice/releases). -All major planned features that are to be included in v2.0 are now implemented and have undergone significant testing. +The latest stable release is KMC_Lattice v2.0.0. Please report any remaining bugs or submit feature requests for future releases in the [Issues](https://github.com/MikeHeiber/KMC_Lattice/issues) section. To keep track of upcoming changes or review prior changes to the codebase, please see the [Changelog](./CHANGELOG.md). @@ -133,4 +132,4 @@ If you find KMC_Lattice to be helpful for your research, please cite the forthco ## Acknowledgments -Development of v2.0 is supported by financial assistance award 70NANB14H012 from U.S. Department of Commerce, National Institute of Standards and Technology as part of the Center for Hierarchical Materials Design (CHiMaD). +Development of v2.0.0 was supported by financial assistance award 70NANB14H012 from U.S. Department of Commerce, National Institute of Standards and Technology as part of the Center for Hierarchical Materials Design (CHiMaD). diff --git a/docs/_event_8h_source.html b/docs/_event_8h_source.html index a605124..8b54605 100644 --- a/docs/_event_8h_source.html +++ b/docs/_event_8h_source.html @@ -108,12 +108,12 @@
Constructor that creates an empty Event object pre-initilized with the Simulation pointer.
Constructor that creates an empty Event object pre-initialized with the Simulation pointer.
sim_ptr | is a pointer to the Simulation object that the Event is associated with. |
Sets the desination coordinates of the event.
+Sets the destination coordinates of the event.
This class contains the properties of a three-dimensional lattice and the functions needed to interact with it.
-The class makes use of the Parameters_Lattice struct to load the neccessary input parameters, the Coords struct to record the Cartesian coordinates of each lattice site, and the Site class to assign properties to each site.
The class makes use of the Parameters_Lattice struct to load the necessary input parameters, the Coords struct to record the Cartesian coordinates of each lattice site, and the Site class to assign properties to each site.
Calculates the destination coordinates when given the starting coordinates and the displacement vector (i,j,k).
-When the starting coordinates are near one or more of the lattice boundaries and periodic boundary conditions are enabled, the function detemines the destination coordinates across the periodic boundary and assigns the calculated Coords struct to the input coords_dest argument.
When the starting coordinates are near one or more of the lattice boundaries and periodic boundary conditions are enabled, the function determines the destination coordinates across the periodic boundary and assigns the calculated Coords struct to the input coords_dest argument.
coords_initial | is the Coords struct tht designates the starting coordinates. |
coords_initial | is the Coords struct that designates the starting coordinates. |
i | is the displacement in the x-direction. |
j | is the displacement in the y-direction. |
k | is the displacement in the z-direction. |
Public Attributes | |
bool | Enable_periodic_x |
bool | Enable_periodic_x = true |
Determines whether the x-direction periodic boundaries will be enabled. More... | |
bool | Enable_periodic_y |
bool | Enable_periodic_y = true |
Determines whether the y-direction periodic boundaries will be enabled. More... | |
bool | Enable_periodic_z |
bool | Enable_periodic_z = true |
Determines whether the z-direction periodic boundaries will be enabled. More... | |
int | Length |
int | Length = 0 |
Defines the desired x-direction size of the lattice. More... | |
int | Width |
int | Width = 0 |
Defines the desired y-direction size of the lattice. More... | |
int | Height |
int | Height = 0 |
Defines the desired z-direction size of the lattice. More... | |
double | Unit_size |
double | Unit_size = 0.0 |
Defines the desired lattice unit size, which is used to convert lattice units into real space units. More... | |
bool KMC_Lattice::Parameters_Lattice::Enable_periodic_x | +bool KMC_Lattice::Parameters_Lattice::Enable_periodic_x = true |
bool KMC_Lattice::Parameters_Lattice::Enable_periodic_y | +bool KMC_Lattice::Parameters_Lattice::Enable_periodic_y = true |
bool KMC_Lattice::Parameters_Lattice::Enable_periodic_z | +bool KMC_Lattice::Parameters_Lattice::Enable_periodic_z = true |
int KMC_Lattice::Parameters_Lattice::Height | +int KMC_Lattice::Parameters_Lattice::Height = 0 |
int KMC_Lattice::Parameters_Lattice::Length | +int KMC_Lattice::Parameters_Lattice::Length = 0 |
double KMC_Lattice::Parameters_Lattice::Unit_size | +double KMC_Lattice::Parameters_Lattice::Unit_size = 0.0 |
int KMC_Lattice::Parameters_Lattice::Width | +int KMC_Lattice::Parameters_Lattice::Width = 0 |
bool KMC_Lattice::Parameters_Simulation::Enable_FRM | +bool KMC_Lattice::Parameters_Simulation::Enable_FRM = false |
bool KMC_Lattice::Parameters_Simulation::Enable_full_recalc | +bool KMC_Lattice::Parameters_Simulation::Enable_full_recalc = false |
bool KMC_Lattice::Parameters_Simulation::Enable_logging | +bool KMC_Lattice::Parameters_Simulation::Enable_logging = false |
bool KMC_Lattice::Parameters_Simulation::Enable_selective_recalc | +bool KMC_Lattice::Parameters_Simulation::Enable_selective_recalc = false |
int KMC_Lattice::Parameters_Simulation::Recalc_cutoff | +int KMC_Lattice::Parameters_Simulation::Recalc_cutoff = 0 |
int KMC_Lattice::Parameters_Simulation::Temperature | +int KMC_Lattice::Parameters_Simulation::Temperature = 0 |
Executes the next event in the simulation.
-This is a pure virtual function in the base class that must be defined by any derived class.
This is a pure virtual function in the base class that must be defined by any derived class.
Gets the processor ID number for the processor that is running the simulation.
-This is primarly used with MPI to differentiate between different simualtions running on different cores.
+This is primarily used with MPI to differentiate between different simulations running on different cores.
Removes the Object pointer from the base simulation class.
-The Object objects are allocated and maintained by the derived Simulation class and only the Object pointers are stored in the base class. Removing the Object pointer does not delete the Object from the derived class. This function also calls the removeEvent function to remove the Event pointer associated with the Object and also communites with the Lattice object to clear the occupancy of the Site where the Object was located.
The Object objects are allocated and maintained by the derived Simulation class and only the Object pointers are stored in the base class. Removing the Object pointer does not delete the Object from the derived class. This function also calls the removeEvent function to remove the Event pointer associated with the Object and also communities with the Lattice object to clear the occupancy of the Site where the Object was located.
object_ptr | is the Object pointer to be removed from the simulation. |
Creates a vector of doubles that has a custom asymmetric distribution with an exponential tail.
-The created distribution is Gaussian in the positive direction relative to the mode and exponential in the negative direction. On the Gaussian side, the standard deviation is calculated relative to the urbach energy chosen for the exponential side, so that the distribution function is continuous.
The created distribution is Gaussian in the positive direction relative to the mode and exponential in the negative direction. On the Gaussian side, the standard deviation is calculated relative to the Urbach energy chosen for the exponential side, so that the distribution function is continuous.
data | is the data vector where the random numbers will be placed, which must be preallocated to the desired size. |
mode | is the value of the peak of the distribution. |
urbach_energy | is the parameter that detemines the shape of the exponential tail side of the distribution. |
urbach_energy | is the parameter that determines the shape of the exponential tail side of the distribution. |
gen | is a Mersenne twister random number generator used to randomly draw numbers from the distribution. |
Creates a vector of floats that has a custom asymmetric distribution with an exponential tail.
-The created distribution is Gaussian in the positive direction relative to the mode and exponential in the negative direction. On the Gaussian side, the standard deviation is calculated relative to the urbach energy chosen for the exponential side, so that the distribution function is continuous.
The created distribution is Gaussian in the positive direction relative to the mode and exponential in the negative direction. On the Gaussian side, the standard deviation is calculated relative to the Urbach energy chosen for the exponential side, so that the distribution function is continuous.
data | is the data vector where the random numbers will be placed, which must be preallocated to the desired size. |
mode | is the value of the peak of the distribution. |
urbach_energy | is the parameter that detemines the shape of the exponential tail side of the distribution. |
urbach_energy | is the parameter that determines the shape of the exponential tail side of the distribution. |
gen | is a Mersenne twister random number generator used to randomly draw numbers from the distribution. |
Upon function return, processor 0 receives the average probability histogram and all of the other processors receive an empty probability histogram.
input_hist | is the input histogram data from the processor calling the function. |
This template function efficienctly removes the duplicate entries from an input vector.
+This template function efficiently removes the duplicate entries from an input vector.
This algorithm allow efficient removal of duplicate vector objects when > or < comparison operators do not exist.
vec | is the input vector to be operated on. |