(git:6a2e663)
mc_moves Module Reference

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 More...

Functions/Subroutines

subroutine, public 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)
 performs either a bond or angle change move for a given molecule More...
 
subroutine, public mc_molecule_translation (mc_par, force_env, bias_env, moves, move_updates, start_atom, box_number, bias_energy, molecule_type, lreject, rng_stream)
 translates the given molecule randomly in either the x,y, or z direction More...
 
subroutine, public mc_molecule_rotation (mc_par, force_env, bias_env, moves, move_updates, box_number, start_atom, molecule_type, bias_energy, lreject, rng_stream)
 rotates the given molecule randomly around the x,y, or z axis... only works for water at the moment More...
 
subroutine, public mc_volume_move (mc_par, force_env, moves, move_updates, old_energy, box_number, energy_check, r_old, iw, discrete_array, rng_stream)
 performs a Monte Carlo move that alters the volume of the simulation box More...
 
subroutine, public 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)
 performs either a bond or angle change move for a given molecule More...
 
subroutine, public mc_hmc_move (mc_par, force_env, globenv, moves, move_updates, old_energy, box_number, energy_check, r_old, rng_stream)
 performs a hybrid Monte Carlo move that runs a short MD sequence More...
 
subroutine, public mc_cluster_translation (mc_par, force_env, bias_env, moves, move_updates, box_number, bias_energy, lreject, rng_stream)
 translates the cluster randomly in either the x,y, or z direction More...
 

Detailed Description

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

History
none
Author
Matthew J. McGrath (10.16.2003)

Function/Subroutine Documentation

◆ mc_conformation_change()

subroutine, public mc_moves::mc_conformation_change ( type(mc_simpar_type), pointer  mc_par,
type(force_env_type), pointer  force_env,
type(force_env_type), pointer  bias_env,
type(mc_moves_type), pointer  moves,
type(mc_moves_type), pointer  move_updates,
integer, intent(in)  start_atom,
integer, intent(in)  molecule_type,
integer, intent(in)  box_number,
real(kind=dp), intent(inout)  bias_energy,
character(len=*), intent(in)  move_type,
logical, intent(out)  lreject,
type(rng_stream_type), intent(inout)  rng_stream 
)

performs either a bond or angle change move for a given molecule

Parameters
mc_parthe mc parameters for the force env
force_envthe force environment used in the move
bias_envthe force environment used to bias the move, if any (it may be null if lbias=.false. in mc_par)
movesthe structure that keeps track of how many moves have been accepted/rejected
move_updatesthe structure that keeps track of how many moves have been accepted/rejected since the last time the displacements were updated
start_atomthe number of the molecule's first atom, assuming the rest of the atoms follow sequentially
molecule_typethe type of the molecule we're moving
box_numberthe box the molecule is in
bias_energythe biased energy of the system before the move
move_typedictates what kind of conformational change we do
lrejectset to .true. if there is an overlap
rng_streamthe random number stream that we draw from
Author
MJM

Definition at line 136 of file mc_moves.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mc_molecule_translation()

subroutine, public mc_moves::mc_molecule_translation ( type(mc_simpar_type), pointer  mc_par,
type(force_env_type), pointer  force_env,
type(force_env_type), pointer  bias_env,
type(mc_moves_type), pointer  moves,
type(mc_moves_type), pointer  move_updates,
integer, intent(in)  start_atom,
integer, intent(in)  box_number,
real(kind=dp), intent(inout)  bias_energy,
integer, intent(in)  molecule_type,
logical, intent(out)  lreject,
type(rng_stream_type), intent(inout)  rng_stream 
)

translates the given molecule randomly in either the x,y, or z direction

Parameters
mc_parthe mc parameters for the force env
force_envthe force environment used in the move
bias_envthe force environment used to bias the move, if any (it may be null if lbias=.false. in mc_par)
movesthe structure that keeps track of how many moves have been accepted/rejected
move_updatesthe structure that keeps track of how many moves have been accepted/rejected since the last time the displacements were updated
start_atomthe number of the molecule's first atom, assuming the rest of the atoms follow sequentially
box_numberthe box the molecule is in
bias_energythe biased energy of the system before the move
molecule_typethe type of molecule we're moving
lrejectset to .true. if there is an overlap
rng_streamthe random number stream that we draw from
Author
MJM

Definition at line 432 of file mc_moves.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mc_molecule_rotation()

subroutine, public mc_moves::mc_molecule_rotation ( type(mc_simpar_type), pointer  mc_par,
type(force_env_type), pointer  force_env,
type(force_env_type), pointer  bias_env,
type(mc_moves_type), pointer  moves,
type(mc_moves_type), pointer  move_updates,
integer, intent(in)  box_number,
integer, intent(in)  start_atom,
integer, intent(in)  molecule_type,
real(kind=dp), intent(inout)  bias_energy,
logical, intent(out)  lreject,
type(rng_stream_type), intent(inout)  rng_stream 
)

rotates the given molecule randomly around the x,y, or z axis... only works for water at the moment

Parameters
mc_parthe mc parameters for the force env
force_envthe force environment used in the move
bias_envthe force environment used to bias the move, if any (it may be null if lbias=.false. in mc_par)
movesthe structure that keeps track of how many moves have been accepted/rejected
move_updatesthe structure that keeps track of how many moves have been accepted/rejected since the last time the displacements were updated
box_numberthe box the molecule is in
start_atomthe number of the molecule's first atom, assuming the rest of the atoms follow sequentially
molecule_typethe type of molecule we're moving
bias_energythe biased energy of the system before the move
lrejectset to .true. if there is an overlap
rng_streamthe random number stream that we draw from
Author
MJM

Definition at line 656 of file mc_moves.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mc_volume_move()

subroutine, public mc_moves::mc_volume_move ( type(mc_simpar_type), pointer  mc_par,
type(force_env_type), pointer  force_env,
type(mc_moves_type), pointer  moves,
type(mc_moves_type), pointer  move_updates,
real(kind=dp), intent(inout)  old_energy,
integer, intent(in)  box_number,
real(kind=dp), intent(inout)  energy_check,
real(kind=dp), dimension(:, :), intent(inout)  r_old,
integer, intent(in)  iw,
integer, dimension(1:3, 1:2), intent(inout)  discrete_array,
type(rng_stream_type), intent(inout)  rng_stream 
)

performs a Monte Carlo move that alters the volume of the simulation box

Parameters
mc_parthe mc parameters for the force env
force_envthe force environment whose cell we're changing
movesthe structure that keeps track of how many moves have been accepted/rejected
move_updatesthe structure that keeps track of how many moves have been accepted/rejected since the last time the displacements were updated
old_energythe energy of the last accepted move involving an unbiased calculation
box_numberthe box we're changing the volume of
energy_checkthe running total of how much the energy has changed since the initial configuration
r_oldthe coordinates of the last accepted move involving an unbiased calculation
iwthe unit number that writes to the screen
discrete_arraytells use which volumes we can do for the discrete case
rng_streamthe random number stream that we draw from
Author
MJM
Note
Designed for parallel use.

Definition at line 959 of file mc_moves.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mc_avbmc_move()

subroutine, public mc_moves::mc_avbmc_move ( type(mc_simpar_type), pointer  mc_par,
type(force_env_type), pointer  force_env,
type(force_env_type), pointer  bias_env,
type(mc_moves_type), pointer  moves,
real(kind=dp), intent(inout)  energy_check,
real(kind=dp), dimension(:, :), intent(inout)  r_old,
real(kind=dp), intent(inout)  old_energy,
integer, intent(in)  start_atom_swap,
integer, intent(in)  target_atom,
integer, intent(in)  molecule_type,
integer, intent(in)  box_number,
real(kind=dp), intent(inout)  bias_energy_old,
real(kind=dp), intent(inout)  last_bias_energy,
character(len=*), intent(in)  move_type,
type(rng_stream_type), intent(inout)  rng_stream 
)

performs either a bond or angle change move for a given molecule

Parameters
mc_parthe mc parameters for the force env
force_envthe force environment used in the move
bias_envthe force environment used to bias the move, if any (it may be null if lbias=.false. in mc_par)
movesthe structure that keeps track of how many moves have been accepted/rejected
energy_checkthe running energy difference between now and the initial energy
r_oldthe coordinates of force_env before the move
old_energythe energy of the force_env before the move
start_atom_swapthe number of the swap molecule's first atom, assuming the rest of the atoms follow sequentially
target_atomthe number of the target atom for swapping
molecule_typethe molecule type for the atom we're swapping
box_numberthe number of the box we're doing this move in
bias_energy_oldthe biased energy of the system before the move
last_bias_energythe last biased energy of the system
move_typedictates if we're moving to an "in" or "out" region
rng_streamthe random number stream that we draw from
Author
MJM
Note
Designed for parallel.

Definition at line 1945 of file mc_moves.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mc_hmc_move()

subroutine, public mc_moves::mc_hmc_move ( type(mc_simpar_type), pointer  mc_par,
type(force_env_type), pointer  force_env,
type(global_environment_type), pointer  globenv,
type(mc_moves_type), pointer  moves,
type(mc_moves_type), pointer  move_updates,
real(kind=dp), intent(inout)  old_energy,
integer, intent(in)  box_number,
real(kind=dp), intent(inout)  energy_check,
real(kind=dp), dimension(:, :), intent(inout)  r_old,
type(rng_stream_type), intent(inout)  rng_stream 
)

performs a hybrid Monte Carlo move that runs a short MD sequence

Parameters
mc_parthe mc parameters for the force env
force_envthe force environment whose cell we're changing
globenv...
movesthe structure that keeps track of how many moves have been accepted/rejected
move_updatesthe structure that keeps track of how many moves have been accepted/rejected since the last time the displacements were updated
old_energythe energy of the last accepted move involving an unbiased calculation
box_numberthe box we're changing the volume of
energy_checkthe running total of how much the energy has changed since the initial configuration
r_oldthe coordinates of the last accepted move involving an unbiased calculation
rng_streamthe random number stream that we draw from
Author
MJM
Note
Designed for parallel use.

Definition at line 2346 of file mc_moves.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mc_cluster_translation()

subroutine, public mc_moves::mc_cluster_translation ( type(mc_simpar_type), pointer  mc_par,
type(force_env_type), pointer  force_env,
type(force_env_type), pointer  bias_env,
type(mc_moves_type), pointer  moves,
type(mc_moves_type), pointer  move_updates,
integer, intent(in)  box_number,
real(kind=dp), intent(inout)  bias_energy,
logical, intent(out)  lreject,
type(rng_stream_type), intent(inout)  rng_stream 
)

translates the cluster randomly in either the x,y, or z direction

Parameters
mc_parthe mc parameters for the force env
force_envthe force environment used in the move
bias_envthe force environment used to bias the move, if any (it may be null if lbias=.false. in mc_par)
movesthe structure that keeps track of how many moves have been accepted/rejected
move_updatesthe structure that keeps track of how many moves have been accepted/rejected since the last time the displacements were updated
box_number...
bias_energythe biased energy of the system before the move
lrejectset to .true. if there is an overlap
rng_streamthe random number stream that we draw from
Author
Himanshu Goel
Note
Designed for parallel use.

Definition at line 2485 of file mc_moves.F.

Here is the call graph for this function:
Here is the caller graph for this function: