Ensembles
ParallelTemperingMonteCarlo.Ensembles.AbstractEnsemble — Type
AbstractEnsembleAbstract type for ensemble:
Each subtype requires a corresponding AbstractEnsembleVariables struct.
ParallelTemperingMonteCarlo.Ensembles.AbstractEnsembleVariables — Type
AbstractEnsembleVariablesAbstract struct for variables specific to ensemble that change during MC run (moves).
ParallelTemperingMonteCarlo.Ensembles.MoveStrategy — Type
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 (seeMoveType)
Constructors:
- MoveStrategy(ensemble::NPT)
- MoveStrategy(ensemble::NVT)
- MoveStrategy(ensemble::NNVT)
ParallelTemperingMonteCarlo.Ensembles.MoveType — Type
MoveTypeDefines 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)
ParallelTemperingMonteCarlo.Ensembles.NNVT — Type
NNVT <: AbstractEnsembleEnsemble 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
ParallelTemperingMonteCarlo.Ensembles.NNVTVariables — Type
NNVTVariables <: AbstractEnsembleVariablesNNVT - 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
ParallelTemperingMonteCarlo.Ensembles.NPT — Type
NPTIsothermal, isobaric ensemble.
- Fieldnames:
n_atoms::Int64: number of atomsn_atom_moves::Int64: number of atom moves; defaults ton_atomsn_volume_moves::Int64: number of volume moves; defaults to 1n_swap_moves::Int64: number of atom exchanges made; defaults to 0pressure::Float64: the fixed pressure of the system
ParallelTemperingMonteCarlo.Ensembles.NPTVariables — Type
NPTVariables <: AbstractEnsembleVariablesNPT ensemble specific variable that change during MC run.
- Field names:
index::Int64trial_move::SVector{3,T}trial_config::Confignew_dist2_mat::Matrix{T}r_cut::Tnew_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.
ParallelTemperingMonteCarlo.Ensembles.NVT — Type
NVTCanonical ensemble.
- Fieldnames:
n_atoms::Int64: number of atomsn_atom_moves::Int64: number of atom moves; defaults ton_atomsn_swap_moves::Int64: number of atom exchanges made; defaults to 0
ParallelTemperingMonteCarlo.Ensembles.NVTVariables — Type
NVTVariables <: AbstractEnsembleVariablesNVT ensemble specific variables that change during MC run:
- Fields:
index::Int64trial_move::SVector{3,T}
When trialing a new configuration we select an atom at index to move to position given by trial_move.
ParallelTemperingMonteCarlo.Ensembles.get_r_cut — Method
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.
ParallelTemperingMonteCarlo.Ensembles.set_ensemble_variables — Method
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.