Molecular Dynamics  v0.4
Project for the Practical hosted by the Scientific Computing Chair
ParticleContainer.h
Go to the documentation of this file.
1 //
2 // Created by daniel on 22.05.24.
3 //
4 
5 #pragma once
7 
12 public:
13 
22  virtual void add(Particle& p) = 0;
23 
29  [[nodiscard]] virtual size_t size() const = 0;
30 
36  virtual void applyToEachParticle(const std::function<void(Particle&)> &function) = 0;
37 
43  virtual void applyToEachParticleInDomain(const std::function<void(Particle&)> &function) = 0;
44 
54  virtual void applyToAllUniquePairsInDomain(const std::function<void(Particle&, Particle&)> &function) = 0;
55 
59  virtual ~ParticleContainer() = default;
60 };
Definition: ParticleContainer.h:11
virtual size_t size() const =0
Get the number of particles stored in this container.
virtual void applyToAllUniquePairsInDomain(const std::function< void(Particle &, Particle &)> &function)=0
Iterate over all unique pairs of particles being part of the simulation domain and apply a lambda fun...
virtual void applyToEachParticle(const std::function< void(Particle &)> &function)=0
Iterate over all particles in this container and apply a lambda function to them.
virtual void add(Particle &p)=0
Add one particle to this container.
virtual void applyToEachParticleInDomain(const std::function< void(Particle &)> &function)=0
Iterate over all particles that are part of the domain and apply a lambda function to them.
virtual ~ParticleContainer()=default
Virtual default constructor to guarantee appropriate memory clean up.
Definition: Particle.h:16