Ensembles

ParallelTemperingMonteCarlo.Ensembles.MoveStrategyType
MoveStrategy{N,Etype}

A struct to define the types of moves performed per MC cycle.

  • Field names:
    • ensemble::Etype: type of ensemble (NVT, NPT)
    • movestrat::Vector{String}: vector of strings that describes moves made per MC cycle (see MoveType)

Constructors:

  • MoveStrategy(ensemble::NPT)
  • MoveStrategy(ensemble::NVT)
  • MoveStrategy(ensemble::NNVT)
source
ParallelTemperingMonteCarlo.Ensembles.MoveTypeType
MoveType

Defines the abstract type for moves to establish the MoveStrategy struct. Basic types are: - atommove::MoveType: basic move of a single atom - volumemove::MoveType: NPT ensemble requires volume changes to maintain pressure as constant - atomswap::MoveType: for systems with different atom types we need to exchange atoms (not yet implemented)

source
ParallelTemperingMonteCarlo.Ensembles.NNVTType
NNVT <: AbstractEnsemble

Ensemble designed for systems with two types of atoms.

  • Field names:
    • atomtypes: vector specifying the atomic number of the species
    • natoms: vector specifying how much of each species we have in the system
    • natommoves: defaults to n_total
    • natomswaps: defaults to 1 per cycle
source
ParallelTemperingMonteCarlo.Ensembles.NNVTVariablesType
NNVTVariables <: AbstractEnsembleVariables

NNVT - specific ensembles for moves made during an NNVT run. Fields include: - index: Used for standard atom moves - trialmove: Used for standard atom moves - atomlist1: index of atoms of type one - atom_list2: index of atoms of type two

source
ParallelTemperingMonteCarlo.Ensembles.NPTType
NPT

Isothermal, isobaric ensemble.

  • Fieldnames:
    • n_atoms::Int64: number of atoms
    • n_atom_moves::Int64: number of atom moves; defaults to n_atoms
    • n_volume_moves::Int64: number of volume moves; defaults to 1
    • n_swap_moves::Int64: number of atom exchanges made; defaults to 0
    • pressure::Float64: the fixed pressure of the system
source
ParallelTemperingMonteCarlo.Ensembles.NPTVariablesType
NPTVariables <: AbstractEnsembleVariables

NPT ensemble specific variable that change during MC run.

  • Field names:
    • index::Int64
    • trial_move::SVector{3,T}
    • trial_config::Config
    • new_dist2_mat::Matrix{T}
    • r_cut::T
    • new_r_cut::T

When trialing a new configuration we select an atom at index to move to new position trial_move, the index can be greater than n_atoms in which case we trial a volume move, involving a scaled trial_config with a new_r_cut having a new_dist2_mat this being a volume move.

source
ParallelTemperingMonteCarlo.Ensembles.NVTType
NVT

Canonical ensemble.

  • Fieldnames:
    • n_atoms::Int64: number of atoms
    • n_atom_moves::Int64: number of atom moves; defaults to n_atoms
    • n_swap_moves::Int64: number of atom exchanges made; defaults to 0
source
ParallelTemperingMonteCarlo.Ensembles.NVTVariablesType
NVTVariables <: AbstractEnsembleVariables

NVT ensemble specific variables that change during MC run:

  • Fields:
    • index::Int64
    • trial_move::SVector{3,T}

When trialing a new configuration we select an atom at index to move to position given by trial_move.

source
ParallelTemperingMonteCarlo.Ensembles.get_r_cutMethod
get_r_cut(bc<:PeriodicBC)

Finds the square of the cut-off radius r_cut that is implied by periodic boundary conditions (to avoid double-counting). Implemented for CubicBC and RhombicBC, the only viable boundary conditions for an NPT ensemble.

source
ParallelTemperingMonteCarlo.Ensembles.set_ensemble_variablesMethod
set_ensemble_variables(config::Config{N, BC, T}, ensemble::NVT) where {N, BC, T}
set_ensemble_variables(config::Config{N, BC, T}, ensemble::NPT) where {N, BC, T}
set_ensemble_variables(config::Config{N, BC, T}, ensemble::NNVT) where {N, BC, T}

Initialises the instance of EnsembleVariables (with ensemble being NVT or NPT); required to allow for neutral initialisation in defining the MCState Main.ParallelTemperingMonteCarlo.MCStates.MCState struct.

source