Input Parameters¶
Some symbol definitions¶
- \(\lambda_B\) : Bjerrum_length
- \(\lambda_D\) : Debye_length
- \(\beta = \frac{1}{k_B T}\)
- \(k_B\) : Boltzmann constant
- \(T\) : temperature
- \(Q_i\) : charge of particle type i (defined in the distribution file)
- \(R_i\) : radius of particle type i (defined in the distribution file)
- \(u_{ij}\) : pair potential between particle types i and j
Potentials¶
potential_type¶
Can be:
none: only hard-core
yukawa [default]
\[\beta u_{ij}(r) = \frac{\lambda_B}{r} \frac{Q_i Q_j \exp[- (r-R_i-R_j)/\lambda_D]}{(1+R_i/\lambda_D)((1+R_j/\lambda_D)}\]yukawa2: tabulated yukawa, faster, but may not be accurate in some ranges.
fennel: fennel potential.
\[\beta u_{ij}(r) = \lambda_B Q_i Q_j \left( \frac{1}{r} + \frac{r}{r_c^2} - \frac{2}{r_c} \right)\]
energy_algorithm¶
Can be:
- standard [default]: loop over all particles
- celldec (cell decomposition, generally faster).
Debye_length¶
Quantifies the range of electrostatic interactions. Unit is nm, default is 4.31.
Bjerrum_length¶
Defined by:
Unit is nm, default is 0.7105
cutoff_radius¶
A pair of particles which separation is above the cutoff radius is not taken into account for calculating the potential. Unit is nm. A negative value means that cutoff_estimation_tolerance is used. Default is -1.
cutoff_estimation_tolerance¶
If set to a positive value, the cutoff is adjusted to the separation where the potential (in kT)
between members of the last family (in distrib) goes above this factor. This option is ignored if cutoff_radius is set to a positive value.
Warning
This is convenient for e.g. Yukawa potentials where the last family interacts the strongest (biggest particles). If not, adjust directly cutoff_radius.
delta_energy_tolerance¶
The relative tolerance when the energy is recalculated and checked against the current energy of the simulation. If the absolute relative difference between these two energies exceeds this value, the program stops. Default is 1e-5.
Structural parameters¶
box_type¶
Can be:
- generic [default]: triclinic box, periodic boundary conditions
- cubic: cubic box, periodic boundary conditions
- cubicXY: cubic box, periodic conditions only along the X and Y axis (hard walls along the Z axis)
- hexagonal: hexagonal box, periodic boundary conditions
box_length_X¶
Box length along the x-axis. Can be overridden by the input configuration. Default is 1.
box_length_Y¶
Box length along the x-axis. Can be overridden by the input configuration. Default is 1.
box_length_Z¶
Box length along the x-axis. Can be overridden by the input configuration. Default is 1.
alpha_box_angle¶
(YZ) angle of the box in degrees. Can be overridden by the input configuration. Default is 90°.
beta_box_angle¶
(ZX) angle of the box in degrees. Can be overridden by the input configuration. Default is 90°.
gamma_box_angle¶
(XY) angle of the box in degrees. Can be overridden by the input configuration. Default is 90°.
number_of_boxes¶
Total number of boxes. Can be overridden by the input configuration. Default is 1.
max_number_of_particles¶
Total number of particles expected during the simulation (ie it should not go beyond this value) If negative or too small, this number is the total number of particles of the input distribution. Default is -1.
volume_fraction¶
Set volume fraction on input. (Rescales the box lengths). Only relevant when an initial configuration has to be generated. A negative value is ignored, that is the box sizes are not rescaled. Default is -1.
Simulation parameters¶
simulation_type¶
Can be “NVT”, “NPT”, “SGC” (semi-grand canonical) or “Ostwald” (dissolution-precipitation). See Ensembles.
temperature¶
Unit is K, default is 300.
random_seed¶
Seed for the random number generator. Integer. Default is 666.
production¶
The main run becomes a production run is switched on and conversely. Default is yes.
equilibration_steps¶
If set to a positive number, perform an equilibration run of equilibration_steps steps
before the main run.
Default is 0.
number_of_steps¶
Number of steps for the main run. Default is 1.
initial_step¶
Set the value of the first step (default: 0). Can be overridden by the initial configuration.
Warning
By convention, steps are taken as MC cycles.
stat_on_cells¶
If set to yes, the number of particles per cell and its standard deviation are computed.
Output¶
output_prefix¶
The prefix prepended to output files. Default is pcmc.
log_period¶
Period at which some current information is printed in the log file. Default is 0.
snapshot_period¶
Period at which the current configuration is printed to the trajectory file. If ≤ 0, no configuration but the initial are printed. Default is 0.
energy_output_period¶
Period at which the current energy and pressure is printed to the energy file. If ≤ 0, no configuration but the initial are printed. Default is 0.
use_binary_trajectory¶
If yes, the trajectory is stored with a binary format instead of an ASCII one. Default is no.
Translations¶
In equilibration runs, the translation_interval can be adjusted every translation_update_period so that the acceptance of translations tends to a goal acceptance, translation_acceptance.
Note
Changing the amplitude of translations during a run may yield an incorrect Monte-Carlo sampling so this feature is deactivated during production runs. If an equilibration run is made before, the value is kept for the subsequent production run.
translation_update_period¶
Period at which the translation interval is updated. Default is 100.
translation_interval¶
Initial amplitude of the translations. Can be overridden by the initial configuration. Unit is nm, default is 3.
translation_acceptance¶
Goal acceptance for translation moves. Default is 0.5.
translation_interval_wall¶
Initial maximum amplitude for translations near the wall for simulations with hard boundary conditions on the z-axis. Unit is nm. A negative value means that the parameter is set to translation_interval. Default is -1.
Histograms¶
rdf_bin_length¶
Sets the resolution of the radial distribution functions. Unit is nm, default is 0.1.
hsp_interval¶
Space bin used for the hard-core pressure. Unit is nm, default is 0.05.
wave_number_interval¶
Sets the resolution of the structure factor. Unit is \(\text{nm}^{-1}\), default is 0.002.
calculation_period¶
Period at which a new configuration is used to update the histograms used for the calculation of the RDFs. If ≤ 0, no configuration is used but the initial one is used.
z_density_period¶
Set the number of steps between each sampling of the mean density along the z-axis. A negative value deactivate the calculation. Default is -1.
energy_ergo_analysis¶
Turn on an ergodicity analysis based on correlation between mean particle energy.
Swaps¶
In a swap move two particles selected at random swaps theirs positions.
swap_probability¶
The probability to perform a swap.
NPT¶
reference_pressure¶
The pressure P in NPT.
volume_change_probability¶
The probability to perform a volume change move.
deltavolume¶
The amplitude of relative volume difference for a volume change move.
standard_volume_change¶
If set to yes, for a volume change the volume is multiplied by a random factor. If not, it is the relative logarithm. Default is no.
Other moves (Gibbs…)¶
Note
By default the following moves are deactivated, that is their probability is set to 0.
interbox_swap_probability¶
Probability of a move consisting in a swap between particles of different boxes. Default is 0.
box_to_box_probability¶
Probability of a move consisting in moving a particle from one box to another.
volume_exchange_probability¶
Probability for a move consisting in decreasing the volume of a box and increasing the volume of another box by the same amount. The total volume is preserved.
exchange_deltavolume¶
The maximum of relative volume difference for a volume exchange between boxes.
volume_particle_exchange_probability¶
Probability of a move which is a composition of a transfer of a particle from one box to another and a volume exchange between the same boxes.
on_the_fly_chemical_potential¶
When particle can go from a box to another, this tries to calculate the chemical potential by the Widom method opportunistically when such move is done.
particle_exchange_rosenbluth_probability¶
Probability of a biased move aiming at transferring a particle to another box.
Note
A series of trial positions in the new box is generated, each with a weight equal to \(w = \exp(-\beta E(trial)-E(old))\). The finally attempted position is selected at random according to the weights. As this procedure introduce a bias, weights of the old configuration and weights of the new are computed and injected into the acceptance ratio to correct the bias.
number_of_rosenbluth_trials¶
The number of trials for the special move described above. Default is 10.
maximum_family_number_rosenbluth¶
The maximum family number for the special move described above. Useful for restricting this move to a subset of the particles.
impure_interbox_swap_probability¶
Probability of a swap between a special kind of particle in one box and another kind of particle in another box.
Note
This move attempts to swap a particle with an “impurity” (i.e. the first particle family of particle, supposedly very small) between two different boxes. This was introduced to accelerate the equilibration of dense systems. Indeed, a very small particle (in small quantities, this can be taken as as an impurity) can move more easily from one box to another. Once there, it can help bigger particles to pass to a different box by swapping their positions. In practice, did not work.
interbox_swap_impure_rosbth_probability¶
Probability for the same move above with repositioning of the swapped particle.
Note
Another attempt to swap a particle with an “impurity” (ie the first particle family of particle, supposedly very small) between two different boxes, with Rosenbluth trials. Same as the previous one, with Rosenbluth trials. A series of positions for the non-impurity is generated, each deviating from the original position of the impurity within some radius. Each position has a weight \(w = \exp(-\beta E(trial)-E(old))\). The finally attempted position is selected at random according to its weight. The introduced bias is corrected by computing the total weight of the old position and the new series of positions, these quantities modify the acceptance factor accordingly.
interbox_swap_impure_rosbth_radius¶
For the special move described above, it sets the radius around the impurity selected.
interbox_swap_impure_rosbth_2_probability¶
Probability for the same move above with repositioning of the particles around.
Note
Yet another attempt to swap a particle with an “impurity” (i.e. the first particle family of particle, supposedly very small) between two different boxes, with Rosenbluth trials (second method). Same principle that previously, but in addition the neighboring particles are virtually taken out the box and replaced into it at random around the new position of the swapped particle.
Others¶
configurational_temperature¶
Turn on calculations of the configurational temperature by setting it to yes. Default is no.
full_structure_period¶
Period of calculations of the 3D structure factor. A negative value deactivate this calculation. Default is -1.
density_fluctuations¶
Turn on calculations of the density fluctuations by setting it to yes. Default is no.
fluctuations_period¶
period of calculation of fluctuations.
density_fluctuations_file¶
Sets input file for density fluctuations calculations. Default is fluctuations_input.txt.