![]() |
(git:51bfb72)
|
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.