|
CP2K 2.4 (Revision 12889)
|
#include "cp_common_uses.h"
Include dependency graph for mc_moves.f90:Go to the source code of this file.
Namespaces | |
| namespace | mc_moves |
the various moves in Monte Carlo (MC) simulations, including change of internal conformation, translation of a molecule, rotation of a molecule, and changing the size of the simulation box | |
Functions | |
| recursive subroutine, private | mc_moves::depth_first_search (current_atom, avoid_atom, connectivity, atom) |
| essentially performs a depth-first search of the molecule structure to find all atoms connected to a specific atom excluding one branch... for instance, if water is labelled 1-2-3 for O-H-H, calling this routine with current_atom=1,avoid_atom=2 returns the array atom=(0,0,1) | |
| subroutine, public | mc_moves::mc_conformation_change (mc_par, force_env, bias_env, moves, move_updates, start_atom, molecule_type, box_number, bias_energy, move_type, lreject, rng_stream, error) |
| performs either a bond or angle change move for a given molecule | |
| subroutine, public | mc_moves::mc_molecule_translation (mc_par, force_env, bias_env, moves, move_updates, start_atom, box_number, bias_energy, molecule_type, lreject, rng_stream, error) |
| translates the given molecule randomly in either the x,y, or z direction | |
| subroutine, public | mc_moves::mc_molecule_rotation (mc_par, force_env, bias_env, moves, move_updates, box_number, start_atom, molecule_type, bias_energy, lreject, rng_stream, error) |
| rotates the given molecule randomly around the x,y, or z axis... only works for water at the moment | |
| subroutine, public | mc_moves::mc_volume_move (mc_par, force_env, moves, move_updates, old_energy, box_number, energy_check, r_old, iw, discrete_array, rng_stream, error) |
| performs a Monte Carlo move that alters the volume of the simulation box | |
| subroutine, private | mc_moves::change_bond_length (r_old, r_new, mc_par, molecule_type, molecule_kind, dis_length, particles, rng_stream, error) |
| alters the length of a random bond for the given molecule, using a mass weighted scheme so the lightest atoms move the most | |
| subroutine, private | mc_moves::change_bond_angle (r_old, r_new, mc_par, molecule_type, molecule_kind, particles, rng_stream, error) |
| Alters the magnitude of a random angle in a molecule centered on atom C (connected to atoms A and B). Atoms A and B are moved amounts related to their masses (and masses of all connecting atoms), so that heavier segments are moved less. | |
| subroutine, private | mc_moves::change_dihedral (r_old, r_new, mc_par, molecule_type, molecule_kind, particles, rng_stream, error) |
| Alters a dihedral (A-B-C-D) in the molecule so that all other internal degrees of freedom remain the same. If other dihedrals are centered on B-C, they rotate as well to keep the relationship between the dihedrals the same. Atoms A and D are moved amounts related to their masses (and masses of all connecting atoms), so that heavier segments are moved less. All atoms except B and C are rotated around the B-C bond vector (B and C are not moved). | |
| subroutine, public | mc_moves::mc_avbmc_move (mc_par, force_env, bias_env, moves, energy_check, r_old, old_energy, start_atom_swap, target_atom, molecule_type, box_number, bias_energy_old, last_bias_energy, move_type, rng_stream, error) |
| performs either a bond or angle change move for a given molecule | |
| subroutine, public | mc_moves::mc_hmc_move (mc_par, force_env, globenv, moves, move_updates, old_energy, box_number, energy_check, r_old, iw, rng_stream, error) |
| performs a hybrid Monte Carlo move that runs a short MD sequence | |
Variables | |
| CHARACTER(len=*), parameter, private | mc_moves::moduleN = 'mc_moves' |
1.7.3