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;
118 ForceField(
System& system);
128 ForceField(const ForceField& force_field);
132 virtual ~ForceField();
146 ForceField& operator = (const ForceField& force_field);
167 bool setup(
System& system);
176 virtual
bool specificSetup()
177 throw(Exception::TooManyErrors);
183 void setMaximumNumberOfErrors(
Size nr);
188 Size getMaximumNumberOfErrors() const;
200 void setName(const
String& name);
208 Size getNumberOfAtoms() const;
217 Size getNumberOfMovableAtoms() const;
232 const
System* getSystem() const ;
237 bool getUseSelection() const ;
242 void disableSelection() ;
247 void enableSelection() ;
251 bool isSelectionEnabled() const ;
259 Size countComponents() const;
294 void removeComponent(const
String& name);
313 double getEnergy() const;
317 double updateEnergy();
325 double getRMSGradient() const;
331 virtual
Size getUpdateFrequency() const;
341 virtual
void update()
342 throw(Exception::TooManyErrors);
348 {
return "undefined";}
371 void collectAtoms_(
const System& system);
375 void sortSelectedAtomVector_();
380 virtual void performRequiredUpdates_();
445 # ifndef BALL_NO_INLINE_FUNCTIONS 446 # include <BALL/MOLMEC/COMMON/forceField.iC> 451 #endif // BALL_MOLMEC_COMMON_FORCEFIELD_H vector< ForceFieldComponent * > components_
Size max_number_of_errors_
#define BALL_CREATE(name)
HashSet< const Atom * > unassigned_atoms_
PeriodicBoundary periodic_boundary
std::vector< std::pair< Atom *, Atom * > > PairVector
Exception to be thrown if too many errors occur, e.g. in ForceField.
TimeStamp update_time_stamp_
TimeStamp setup_time_stamp_
-*- Mode: C++; tab-width: 2; -*-
ForceFieldParameters parameters_
Size number_of_movable_atoms_