Enumerations |
|
Enums
|
|
enum | PairListAlgorithmType { HASH_GRID, BRUTE_FORCE } |
The type of algorithm used to
calculate the pair list.
More... |
|
Functions |
|
BALL_EXPORT BALL::Size | calculateNonBondedAtomPairs (ForceField::PairVector &pair_vector, const AtomVector &atom_vector, const SimpleBox3 &box, double distance, bool periodic_boundary_enabled, PairListAlgorithmType type) throw (Exception::OutOfMemory) |
Create a pair vector for non-bonded
interactions. |
|
BALL_EXPORT Size | sortNonBondedAtomPairsAfterSelection (ForceField::PairVector &pair_vector) |
Sort the pair list. |
|
BALL_EXPORT BALL::Size | addNonOverlappingMolecules (System &system, const HashGrid3< const Atom * > &solute_grid, const System &solvent, const SimpleBox3 &box, double distance) |
Merge the non-overlapping molecules
of a system into another system. |
|
BALL_EXPORT void | adaptWaterBox (System &system, const SimpleBox3 &box) |
Adapt periodic water (or general
solvent) boxes to our periodic boundary definition.
|
|
BALL_EXPORT void | calculateMinimumImage (Vector3 &distance, const Vector3 &period) |
Compute the minimum
image. |
|
template<typename TorsionType , typename AtomIteratorType > | |
Size | computeTorsions (const AtomIteratorType &start, const AtomIteratorType &end, std::vector< TorsionType > &torsions, bool use_selection=false) |
Compute all torsions in a given set
of molecules. |
BALL_EXPORT void BALL::MolmecSupport::adaptWaterBox | ( | System & | system, | |
const SimpleBox3 & | box | |||
) |
Adapt periodic water (or general solvent) boxes to our periodic boundary definition.
Periodic water boxes created by different programs might contain molecules which have their center of gravity outside of the box because of a different defintion of the periodic boundary. This function adapts such boxes to our definition by simply translating such molecules to the opposite boundary wall such that their center of gravity lies in the box afterwards.
system | the system containing the water box which is to be adapted | |
box | the box definition for the periodic boundary |
BALL_EXPORT BALL::Size BALL::MolmecSupport::addNonOverlappingMolecules | ( | System & | system, | |
const HashGrid3< const Atom * > & | solute_grid, | |||
const System & | solvent, | |||
const SimpleBox3 & | box, | |||
double | distance | |||
) |
Merge the non-overlapping molecules of a system into another system.
Fills system
with copies of the solvent
molecules stored in solvent
. Solvent molecules
are added to system
if the molecules lie in
the box
and if they do not overlap with the
molecules in solute_grid
. A molecule has an
overlap with another molecule if any atom of the first
molecule is within distance
of any atom of the
other molecule.
system | the system to be filled | |
solute_grid | a hash grid containing the solute molecules | |
solvent | the system containing the solvent | |
box | the periodic boundary of
system |
|
distance | used to determine overlaps between two atoms |
system
BALL_EXPORT BALL::Size BALL::MolmecSupport::calculateNonBondedAtomPairs | ( | ForceField::PairVector & | pair_vector, | |
const AtomVector & | atom_vector, | |||
const SimpleBox3 & | box, | |||
double | distance, | |||
bool | periodic_boundary_enabled, | |||
PairListAlgorithmType | type | |||
) | throw (Exception::OutOfMemory) |
Create a pair vector for non-bonded interactions.
Calculates a vector of atom pairs whose distance is
smaller than distance
. The type
determines if a brute force algorithm (type ==
BRUTE_FORCE
) or a more sophisticated grid method
(type == HASH_GRID
) is used.
pair_vector | the vector containing pairs of interacting atoms | |
atom_vector | the atoms to be considered for pairs | |
box | the periodic boundary used (if
periodic_boundary_enabled ==
true ) |
|
distance | the maximum distance (cut-off distance) for two atoms | |
periodic_boundary_enabled | flag indicating the use of periodic boundary conditions | |
type | the type of algorithm used to calculate the pair vector |
pair_vector.size()
)Size BALL::MolmecSupport::computeTorsions | ( | const AtomIteratorType & | start, | |
const AtomIteratorType & | end, | |||
std::vector< TorsionType > & | torsions, | |||
bool | use_selection =
false |
|||
) |
Compute all torsions in a given set of molecules.
torsions
start | an iterator pointing to the start of the atoms | |
end | a past-the-end iterator for the atoms | |
torsions | the vector of torsions | |
use_selection | if set to true, a torsion will be added only if all four atoms are selected |
References BALL::Selectable::isSelected().
BALL_EXPORT Size BALL::MolmecSupport::sortNonBondedAtomPairsAfterSelection | ( | ForceField::PairVector & | pair_vector | ) |
Sort the pair list.
The atom pairs in the list ar sorted in such a way, that those atom pairs where at least one of the atoms is selected are at the beginning of the list. The number of such pairs is returned. Running time is linear in the length of the list.
pair_vector | the unsorted pair_list (modified during the sorting) |