7#ifndef BALL_MOLMEC_COMMON_FORCEFIELD_H
8#define BALL_MOLMEC_COMMON_FORCEFIELD_H
14#ifndef BALL_KERNEL_SYSTEM_H
18#ifndef BALL_DATATYPE_OPTIONS_H
22#ifndef BALL_CONCEPT_TIMESTAMP_H
26#ifndef BALL_MOLMEC_PARAMETER_FORCEFIELDPARAMETERS_H
30#ifndef BALL_MOLMEC_PARAMETER_ATOMTYPES_H
34#ifndef BALL_MOLMEC_COMMON_PERIODIC_BOUNDARY_H
38#ifndef BALL_MOLMEC_COMMON_ATOMVECTOR_H
46 class ForceFieldComponent;
99 typedef std::vector<std::pair<Atom*, Atom*> >
PairVector;
177 virtual
bool specificSetup();
183 void setMaximumNumberOfErrors(
Size nr);
188 Size getMaximumNumberOfErrors() const;
217 Size getNumberOfMovableAtoms() const;
237 bool getUseSelection() const ;
242 void disableSelection() ;
247 void enableSelection() ;
251 bool isSelectionEnabled() const ;
294 void removeComponent(const
String& name);
313 double getEnergy() const;
317 double updateEnergy();
325 double getRMSGradient() const;
331 virtual
Size getUpdateFrequency() const;
342 virtual
void update();
348 {
return "undefined";}
445# ifndef BALL_NO_INLINE_FUNCTIONS
446# include <BALL/MOLMEC/COMMON/forceField.iC>
#define BALL_CREATE(name)
PeriodicBoundary periodic_boundary
std::vector< std::pair< Atom *, Atom * > > PairVector
Size max_number_of_errors_
Size number_of_movable_atoms_
ForceFieldParameters parameters_
vector< ForceFieldComponent * > components_
void collectAtoms_(const System &system)
void sortSelectedAtomVector_()
TimeStamp setup_time_stamp_
virtual void performRequiredUpdates_()
TimeStamp update_time_stamp_
HashSet< const Atom * > unassigned_atoms_