Molecular Dynamics Simulation  1.0
PeriodicBoundaryType.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <array>
4 
6 
8  public:
17  static void pre(LinkedCellsContainer& container);
18 
28  static size_t applyBoundaryConditions(LinkedCellsContainer& container);
29 
30  private:
38  static void addPeriodicHaloParticlesForSide(LinkedCellsContainer& container, const std::vector<Cell*>& side_cell_references,
39  const std::array<double, 3>& offset);
40 
47  static void addPeriodicHaloParticlesForEdge(LinkedCellsContainer& container, int free_dimension, const std::array<double, 3>& offset);
48 
54  static void addPeriodicHaloParticlesForCorner(LinkedCellsContainer& container, const std::array<double, 3>& offset);
55 };
Extension of the ParticleContainer class using a linked cells data structure for improved performance...
static size_t applyBoundaryConditions(LinkedCellsContainer &container)
Applies the boundary conditions for the periodic boundary condition.
static void addPeriodicHaloParticlesForSide(LinkedCellsContainer &container, const std::vector< Cell * > &side_cell_references, const std::array< double, 3 > &offset)
Adds the periodic halo particles for the given side of the container to the other side of the contain...
static void pre(LinkedCellsContainer &container)
Applies the preconditioning step for the periodic boundary condition.
static void addPeriodicHaloParticlesForEdge(LinkedCellsContainer &container, int free_dimension, const std::array< double, 3 > &offset)
Adds the periodic halo particles for the given edge of the container to the diagonally opposite edge ...
static void addPeriodicHaloParticlesForCorner(LinkedCellsContainer &container, const std::array< double, 3 > &offset)
Adds the periodic halo particles for the given corner of the container to the diagonally opposite cor...