![]() |
(git:b77b4be)
|
contains miscellaneous subroutines used in the Monte Carlo runs,mostly geared towards changes in coordinates More...
Functions/Subroutines | |
subroutine, public | check_for_overlap (force_env, nchains, nunits, loverlap, mol_type, cell_length, molecule_number) |
looks for overlaps (intermolecular distances less than rmin) | |
subroutine, public | get_center_of_mass (coordinates, natom, center_of_mass, mass) |
calculates the center of mass of a given molecule | |
subroutine, public | mc_coordinate_fold (coordinates, nchains_tot, mol_type, mass, nunits, box_length) |
folds all the coordinates into the center simulation box using a center of mass cutoff | |
subroutine, public | generate_cbmc_swap_config (force_env, beta, max_val, min_val, exp_max_val, exp_min_val, nswapmoves, rosenbluth_weight, start_atom, natoms_tot, nunits, nunits_mol, mass, loverlap, choosen_energy, old_energy, ionode, lremove, mol_type, nchains, source, group, rng_stream, avbmc_atom, rmin, rmax, move_type, target_atom) |
takes the last molecule in a force environment and moves it around to different center of mass positions and orientations, selecting one based on the rosenbluth weight | |
subroutine, public | rotate_molecule (r, mass, natoms, rng_stream) |
rotates a molecule randomly around the center of mass, sequentially in x, y, and z directions | |
subroutine, public | find_mc_test_molecule (mc_molecule_info, start_atom, box_number, molecule_type, rng_stream, box, molecule_type_old) |
selects a molecule at random to perform a MC move on...you can specify the box the molecule should be in, its type, both, or neither | |
subroutine, public | create_discrete_array (cell, discrete_array, step_size) |
generates an array that tells us which sides of the simulation cell we can increase or decrease using a discrete volume move | |
subroutine, public | cluster_search (mc_par, force_env, cluster, nchains, nunits, mol_type, total_clus) |
determine the number of cluster present in the given configuration based on the rclus value | |
contains miscellaneous subroutines used in the Monte Carlo runs,mostly geared towards changes in coordinates
subroutine, public mc_coordinates::check_for_overlap | ( | type(force_env_type), pointer | force_env, |
integer, dimension(:), intent(in) | nchains, | ||
integer, dimension(:), intent(in) | nunits, | ||
logical, intent(out) | loverlap, | ||
integer, dimension(:), intent(in) | mol_type, | ||
real(kind=dp), dimension(1:3), intent(in), optional | cell_length, | ||
integer, intent(in), optional | molecule_number | ||
) |
looks for overlaps (intermolecular distances less than rmin)
force_env | the force environment containing the coordinates |
nchains | the number of molecules of each type in the box |
nunits | the number of interaction sites for each molecule |
loverlap | returns .TRUE. if atoms overlap |
mol_type | an array that indicates the type of each molecule |
cell_length | the length of the box...if none is specified, it uses the cell found in the force_env |
molecule_number | if present, just look for overlaps with this molecule |
Suitable for parallel use.
Definition at line 67 of file mc_coordinates.F.
subroutine, public mc_coordinates::get_center_of_mass | ( | real(kind=dp), dimension(:, :), intent(in) | coordinates, |
integer, intent(in) | natom, | ||
real(kind=dp), dimension(1:3), intent(out) | center_of_mass, | ||
real(kind=dp), dimension(:), intent(in) | mass | ||
) |
calculates the center of mass of a given molecule
coordinates | the coordinates of the atoms in the molecule |
natom | the number of atoms in the molecule |
center_of_mass | the coordinates of the center of mass |
mass | the mass of the atoms in the molecule |
Designed for parallel use.
Definition at line 188 of file mc_coordinates.F.
subroutine, public mc_coordinates::mc_coordinate_fold | ( | real(kind=dp), dimension(:, :), intent(inout) | coordinates, |
integer, intent(in) | nchains_tot, | ||
integer, dimension(:), intent(in) | mol_type, | ||
real(kind=dp), dimension(:, :), intent(in) | mass, | ||
integer, dimension(:), intent(in) | nunits, | ||
real(kind=dp), dimension(1:3), intent(in) | box_length | ||
) |
folds all the coordinates into the center simulation box using a center of mass cutoff
coordinates | the coordinates of the atoms in the system |
nchains_tot | the total number of molecules in the box |
mol_type | an array that indicates the type of every molecule in the box |
mass | the mass of every atom for all molecule types |
nunits | the number of interaction sites for each molecule type |
box_length | an array for the lengths of the simulation box sides Designed for parallel use. |
Definition at line 235 of file mc_coordinates.F.
subroutine, public mc_coordinates::generate_cbmc_swap_config | ( | type(force_env_type), pointer | force_env, |
real(kind=dp), intent(in) | beta, | ||
real(kind=dp), intent(in) | max_val, | ||
real(kind=dp), intent(in) | min_val, | ||
real(kind=dp), intent(in) | exp_max_val, | ||
real(kind=dp), intent(in) | exp_min_val, | ||
integer, intent(in) | nswapmoves, | ||
real(kind=dp), intent(out) | rosenbluth_weight, | ||
integer, intent(in) | start_atom, | ||
integer, intent(in) | natoms_tot, | ||
integer, dimension(:), intent(in) | nunits, | ||
integer, intent(in) | nunits_mol, | ||
real(dp), dimension(1:nunits_mol), intent(in) | mass, | ||
logical, intent(out) | loverlap, | ||
real(kind=dp), intent(out) | choosen_energy, | ||
real(kind=dp), intent(in) | old_energy, | ||
logical, intent(in) | ionode, | ||
logical, intent(in) | lremove, | ||
integer, dimension(:), intent(in) | mol_type, | ||
integer, dimension(:), intent(in) | nchains, | ||
integer, intent(in) | source, | ||
type(mp_comm_type) | group, | ||
type(rng_stream_type), intent(inout) | rng_stream, | ||
integer, intent(in), optional | avbmc_atom, | ||
real(kind=dp), intent(in), optional | rmin, | ||
real(kind=dp), intent(in), optional | rmax, | ||
character(len=*), intent(in), optional | move_type, | ||
integer, intent(in), optional | target_atom | ||
) |
takes the last molecule in a force environment and moves it around to different center of mass positions and orientations, selecting one based on the rosenbluth weight
force_env | the force environment containing the coordinates |
BETA | the value of 1/kT for this simulations, in a.u. |
max_val | ... |
min_val | ... |
exp_max_val | ... |
exp_min_val | ... |
nswapmoves | the number of desired trial configurations |
rosenbluth_weight | the Rosenbluth weight for this set of configs |
start_atom | the atom number that the molecule to be swapped starts on |
natoms_tot | the total number of interaction sites in the box |
nunits | the number of interaction sites for every molecule_type |
nunits_mol | ... |
mass | the mass for every interaction site of every molecule type |
loverlap | the flag that indicates if all of the configs have an atomic overlap |
choosen_energy | the energy of the chosen config |
old_energy | the energy that we subtract from all of the trial energies to prevent numerical overflows |
ionode | indicates if we're on the main CPU |
lremove | is this the Rosenbluth weight for a removal box? |
mol_type | an array that contains the molecule type for every atom in the box |
nchains | the number of molecules of each type in this box |
source | the MPI source value, for broadcasts |
group | the MPI group value, for broadcasts |
rng_stream | the random number stream that we draw from |
avbmc_atom | ... |
rmin | ... |
rmax | ... |
move_type | ... |
target_atom | ... |
Definition at line 326 of file mc_coordinates.F.
subroutine, public mc_coordinates::rotate_molecule | ( | real(kind=dp), dimension(1:3, 1:natoms), intent(inout) | r, |
real(kind=dp), dimension(1:natoms), intent(in) | mass, | ||
integer, intent(in) | natoms, | ||
type(rng_stream_type), intent(inout) | rng_stream | ||
) |
rotates a molecule randomly around the center of mass, sequentially in x, y, and z directions
r | the coordinates of the molecule to rotate |
mass | the mass of all the atoms in the molecule |
natoms | the number of atoms in the molecule |
rng_stream | the stream we pull random numbers from |
Use only in serial.
Definition at line 626 of file mc_coordinates.F.
subroutine, public mc_coordinates::find_mc_test_molecule | ( | type(mc_molecule_info_type), pointer | mc_molecule_info, |
integer, intent(out) | start_atom, | ||
integer, intent(out) | box_number, | ||
integer, intent(out) | molecule_type, | ||
type(rng_stream_type), intent(inout) | rng_stream, | ||
integer, intent(in), optional | box, | ||
integer, intent(in), optional | molecule_type_old | ||
) |
selects a molecule at random to perform a MC move on...you can specify the box the molecule should be in, its type, both, or neither
mc_molecule_info | the structure that contains some global molecule data |
start_atom | the number of the first atom in the chosen molecule in relation to the force_env it's in |
box_number | the box the chosen molecule is in |
molecule_type | the type of molecule the chosen molecule is |
rng_stream | the stream we pull random numbers from |
box | if present, tells the routine which box to grab a molecule from |
molecule_type_old | if present, tells the routine which molecule type to select from |
Definition at line 714 of file mc_coordinates.F.
subroutine, public mc_coordinates::create_discrete_array | ( | real(dp), dimension(1:3), intent(in) | cell, |
integer, dimension(1:3, 1:2), intent(out) | discrete_array, | ||
real(dp), intent(in) | step_size | ||
) |
generates an array that tells us which sides of the simulation cell we can increase or decrease using a discrete volume move
cell | the lengths of the sides of the cell |
discrete_array | the array that indicates which sides we can move |
step_size | the size of the discrete volume move |
Suitable for parallel.
Definition at line 866 of file mc_coordinates.F.
subroutine, public mc_coordinates::cluster_search | ( | type(mc_simpar_type), pointer | mc_par, |
type(force_env_type), pointer | force_env, | ||
integer, dimension(:, :), intent(inout) | cluster, | ||
integer, dimension(:), intent(in) | nchains, | ||
integer, dimension(:), intent(in) | nunits, | ||
integer, dimension(:), intent(in) | mol_type, | ||
integer, intent(inout) | total_clus | ||
) |
determine the number of cluster present in the given configuration based on the rclus value
mc_par | the mc parameters for the force env |
force_env | the force environment containing the coordinates |
cluster | ... |
nchains | the number of molecules of each type in the box |
nunits | the number of interaction sites for each molecule |
mol_type | an array that indicates the type of each molecule |
total_clus | ... |
Definition at line 1013 of file mc_coordinates.F.