2025-04-16 14:01:40 -04:00
|
|
|
#ifndef BOX_H
|
|
|
|
#define BOX_H
|
|
|
|
|
2025-04-27 14:33:46 -04:00
|
|
|
#include "precision.hpp"
|
2025-04-16 14:01:40 -04:00
|
|
|
/**
|
|
|
|
* Struct representing the simulation box.
|
|
|
|
* Currently the simulation box is always assumed to be perfectly rectangular.
|
|
|
|
* This code does not support shearing the box. This functionality may be added
|
|
|
|
* in later.
|
|
|
|
*/
|
2025-04-27 14:33:46 -04:00
|
|
|
struct Box {
|
|
|
|
real xlo;
|
|
|
|
real xhi;
|
|
|
|
real ylo;
|
|
|
|
real yhi;
|
|
|
|
real zlo;
|
|
|
|
real zhi;
|
2025-04-16 14:01:40 -04:00
|
|
|
bool x_is_periodic;
|
|
|
|
bool y_is_periodic;
|
|
|
|
bool z_is_periodic;
|
2025-09-19 23:46:21 -04:00
|
|
|
|
|
|
|
Box(real xlo, real xhi, real ylo, real yhi, real zlo, real zhi,
|
|
|
|
bool x_is_periodic, bool y_is_periodic, bool z_is_periodic)
|
|
|
|
: xlo(xlo), xhi(xhi), ylo(ylo), yhi(yhi), zlo(zlo), zhi(zhi),
|
|
|
|
x_is_periodic(x_is_periodic), y_is_periodic(y_is_periodic),
|
|
|
|
z_is_periodic(z_is_periodic) {}
|
|
|
|
|
|
|
|
Box(real xlo, real xhi, real ylo, real yhi, real zlo, real zhi)
|
|
|
|
: xlo(xlo), xhi(xhi), ylo(ylo), yhi(yhi), zlo(zlo), zhi(zhi),
|
|
|
|
x_is_periodic(true), y_is_periodic(true), z_is_periodic(true) {}
|
2025-04-16 14:01:40 -04:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|