MCMoves

ParallelTemperingMonteCarlo.MCMoves.atom_displacementMethod
atom_displacement(pos::PositionVector, max_displacement::Number, bc::SphericalBC)
atom_displacement(pos::PositionVector, max_displacement::Number, bc::CubicBC)
atom_displacement(pos::PositionVector, max_displacement::Number, bc::RhombicBC)
atom_displacement(mc_state::MCState{T, N, BC}) where {T, N, BC <: PeriodicBC}
atom_displacement(mc_state::MCState{T, N, BC}) where {T, N, BC <: SphericalBC}

Generates trial position for atom, moving it from pos by some random displacement. Random displacement determined by max_displacement. These variables are additionally contained in mc_state where the pos is determined by index. Implemented for:

  • SphericalBC: trial move is repeated until moved atom is within binding sphere
  • CubicBC; RhombicBC: periodic boundary condition enforced, an atom is moved into the box from the other side when it tries to get out.

The final method is a wrapper function which unpacks mc_states, which contains all the necessary arguments for the two methods above. When we have correctly implemented move_strat this wrapper will be expanded to include other methods.

source
ParallelTemperingMonteCarlo.MCMoves.volume_changeMethod
volume_change(conf::Config, bc::CubicBC, max_vchange::Number, max_length::Number)
volume_change(conf::Config, bc::RhombicBC, max_vchange::Number, max_length::Number)
volume_change(mc_state::MCState)

Scale the whole configuration, including positions and the box length. Returns the trial configuration as a struct.

source