-
Notifications
You must be signed in to change notification settings - Fork 3
2G. Other parameters
--(*) All the commands listed here can be freely modified if system exportation from a previous simulation is done, with the expection of the
SEED_BOX
command, which its change does not have any effect.
One of the most important commands of the simulation is to tell KIMERA when to stop it, the ending clause. The number of the snapshots of the output files are calculated respect to this ending clause. A lower than expeced quantity of snapshots may be obtained if the system has expired before the ending clause. On the other hand, if we consider a too short ending clause, we may not appreciate any evolution of the system.
There are two ways two set the ending clause, indicating the TARGET_TIME
or indicating the TARGET_STEP
. In KIMERA it is easier to use the TARGET_STEP
command. As one step removes one particle of the system, we know that the maximun number of steps are the total maximun of atoms (we have to rest the atoms defined as insoluble and the atoms removed by the topography commands). The TARGET_TIME
is more difficult to know beforehand in a KMC algorithm. Nevertheless KIMERA can make an estimation of it using the ESTIMATE_TIME
command.
The following three commands are incompatible with each other:
TARGET_TIME (double)
ESTIMATE_TIME
TARGET_STEP (int)
If we are performing an study of a particle with no PBC conditions, we can obtain the time evolution of the gyradius with the DATA_ANALYSIS
command (see previous 2F. Output requests section). Nevertheless, we need to indicate the mass of the constituent atoms of our system in atomic mass units (Dalton or u). One command for each atom type.
SET_MASS (text)element (double)mass
Some of the loops of KIMERA are parallelized. This means that we can reduce our simulation time if we run it using several cores.
PARALLELIZE_SIMULATION (int)cores
One of the most time consuming steps of the KMC algorithm is the searching of the event that is going to happen in an array of values. There are different ways to do this searching that offer different performances. KIMERA can use the named binary search or the named lineal seach, the first one by default. Although the binary search is more efficient, it is not parallelized, so the lineal search can be considered if we are using several cores.
LINEAL_SEARCH
Tip: If you need your simulation soon, use lineal search with several cores. If you are runing several set of simulations (to get the dispersion of the dissolution rate value for example) use 1 core for each one with binary search. More details are given in the article.
As we have explained in the 2A. Simulation box section, we can specify the occupancy of the atoms in the unit cell. KIMERA creates randomly the system taking into account that occupancy. But we can give a seed to recreate always the same system.
SEED_BOX (int)
The KMC algorithm uses random numbers to describe stochastic processes as is the dissolution of a mineral. Therefore, we will never get two identical simulations unless we indicate it with the simulation seed.
SEED_SIMULATION (int)
Note that the SEED_SIMULATION
and the PARALLELIZE_SIMULATION
commands are incompatible if the number of cores > 1.
As explained in the 2D. Events definition section, KIMERA recognises an atom as neighbour by indicating the distance to it. It may happen that we want to group several neighbours into a contributor set whose distance is sligthly different to the target atom. We can group them all by changing the distance threshold with the following command.
DISTANCE_ACCURACY (double)
Tip: For example, imagine a mineral in where a 'A' atom has 4 neighbouring 'B' atoms, two of them at 1.550 Å and the other two at 1.570 Å. To group them all, we can set a
distance_to_neighbour
of 1.560 Å and then changeDISTANCE_ACCURACY
to 0.011 Å.
When defining the events, we are usually going to indicate the value of ΔG, fd and fp for each event. Other option is to indicate its value using the following general commands. The event definiton without any of the commands DG*
, FFD
and FFP
will see their values replaced with the values of these ones, respectively:
DELTA_G* (double)
DISSOLUTION_FUNDAMENTAL_FREQUENCY (double)
PRECIPITATION_FUNDAMENTAL_FREQUENCY (double)
We can give to our simulation a name. All the output files will get this name.
WORK_NAME (text)
These were all the commands of KIMERA. in the next 4. Questions and answers section you can find the answer to some question you may have.
Whenever you use KIMERA, please cite "Martin, P., Gaitero, J. J., Dolado, J. S., & Manzano, H. (2020). KIMERA: A Kinetic Montecarlo Code for Mineral Dissolution. Minerals, 10(9), 825" https://www.mdpi.com/2075-163X/10/9/825/htm