Molecular Dynamics Simulation  1.0
GravitationalForce.cpp
Go to the documentation of this file.
1 #include "GravitationalForce.h"
2 
3 #include "utils/ArrayUtils.h"
4 
5 std::array<double, 3UL> GravitationalForce::calculateForce(const Particle& p, const Particle& q) const {
6  const auto displacement = q.getX() - p.getX();
7  const double dist = ArrayUtils::L2Norm(displacement);
8 
9  const auto f_gravity = (p.getM() * q.getM() / (std::pow(dist, 3))) * displacement;
10 
11  return f_gravity;
12 }
13 
14 GravitationalForce::operator std::string() const { return "Gravitational"; }
std::array< double, 3UL > calculateForce(const Particle &p, const Particle &q) const override
Calculates the gravitational forces between two particles.
Class to represent a particle.
Definition: Particle.h:26
const std::array< double, 3 > & getX() const
Gets the position of the particle.
Definition: Particle.h:157
double getM() const
Gets the mass of the particle.
Definition: Particle.h:177
auto L2Norm(const Container &c)
Definition: ArrayUtils.h:174