8#ifndef BALL_MOLMEC_COMMON_SUPPORT_H
9#define BALL_MOLMEC_COMMON_SUPPORT_H
15#ifndef BALL_MATHS_SIMPLEBOX3_H
19#ifndef BALL_MOLMEC_COMMON_FORCEFIELD_H
23#ifndef BALL_MOLMEC_COMMON_ATOMVECTOR_H
27#ifndef BALL_DATATYPE_HASHGRID_H
31#ifndef BALL_KERNEL_BOND_H
89 double distance,
bool periodic_boundary_enabled,
145 template <
typename TorsionType,
typename AtomIteratorType>
147 (
const AtomIteratorType& start,
const AtomIteratorType& end,
148 std::vector<TorsionType>& torsions,
bool use_selection =
false);
152 template <
typename TorsionType,
typename AtomIteratorType>
154 (
const AtomIteratorType& start,
const AtomIteratorType& end,
155 std::vector<TorsionType>& torsions,
bool use_selection)
163 Size number_of_added_torsions = 0;
167 AtomIteratorType atom_it = start;
168 for (; atom_it != end; ++atom_it)
173 for (; +it1 ; ++ it1)
187 for (it2 = (*atom_it)->beginBond(); +it2 ; ++it2)
215 if (use_selection ==
false
216 || (use_selection ==
true
226 torsions.push_back(tmp);
227 number_of_added_torsions++;
238 return number_of_added_torsions;
BondIterator beginBond()
Return a bond iterator pointing to the first bond of the atom.
RandomAccessIterator< Atom, Bond, BondIteratorPosition, BondIteratorTraits > BondIterator
const Atom * getFirstAtom() const
Return a pointer to the first atom.
const Atom * getSecondAtom() const
Return a pointer to the second atom.
std::vector< std::pair< Atom *, Atom * > > PairVector
Three-dimensional Hash Grid Class.
TSimpleBox3< float > SimpleBox3
Size computeTorsions(const AtomIteratorType &start, const AtomIteratorType &end, std::vector< TorsionType > &torsions, bool use_selection=false)
BALL_EXPORT BALL::Size calculateNonBondedAtomPairs(ForceField::PairVector &pair_vector, const AtomVector &atom_vector, const SimpleBox3 &box, double distance, bool periodic_boundary_enabled, PairListAlgorithmType type)
BALL_EXPORT BALL::Size addNonOverlappingMolecules(System &system, const HashGrid3< const Atom * > &solute_grid, const System &solvent, const SimpleBox3 &box, double distance)
BALL_EXPORT void calculateMinimumImage(Vector3 &distance, const Vector3 &period)
BALL_EXPORT Size sortNonBondedAtomPairsAfterSelection(ForceField::PairVector &pair_vector)
BALL_EXPORT void adaptWaterBox(System &system, const SimpleBox3 &box)
TVector3< float > Vector3