Molecular Dynamics Simulation  1.0
SimpleForceSource.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <iostream>
4 
5 #include "particles/Particle.h"
6 
17  public:
23  virtual ~SimpleForceSource() = default;
24 
33  virtual std::array<double, 3UL> calculateForce(Particle& p) const = 0;
34 
38  virtual explicit operator std::string() const = 0;
39 };
40 
41 // overload the << operator for the ForceSource class to allow easier printing
42 inline std::ostream& operator<<(std::ostream& os, const SimpleForceSource& forceSource) {
43  os << static_cast<std::string>(forceSource);
44  return os;
45 }
std::ostream & operator<<(std::ostream &os, const SimpleForceSource &forceSource)
Class to represent a particle.
Definition: Particle.h:26
Interface for simple force source classes.
virtual std::array< double, 3UL > calculateForce(Particle &p) const =0
Calculates the force a particle q exerts on another particle p.
virtual ~SimpleForceSource()=default
Virtual destructor for correct cleanup of derived classes.