8 double mass,
const std::array<double, 3>& initial_velocity,
int type,
double epsilon,
double sigma,
10 : lower_left_corner(lower_left_corner),
11 grid_dimensions(grid_dimensions),
12 grid_spacing(grid_spacing),
17 lock_state(lock_state),
18 initial_velocity(initial_velocity),
19 third_dimension(third_dimension),
20 initial_temperature(initial_temperature) {}
27 const auto grid_pos = std::array<double, 3>{
static_cast<double>(i),
static_cast<double>(j),
static_cast<double>(k)};
33 particles.push_back(particle);
ThirdDimension
Enum class to define the dimension count of the simulation (2D or 3D). Affects primarily the dimensio...
LockState
Enum class to define the lockstate of particles. Locked particles are not allowed to move.
int spawnParticles(std::vector< Particle > &particles) const override
Spawns particles in the given container.
const ThirdDimension third_dimension
Defines whether to use the third dimension.
const int type
Defines the type of the particles in the cuboid.
double sigma
Defines the Lennard-Jones sigma parameter of the particles in the cuboid.
CuboidSpawner(const std::array< double, 3 > &lower_left_corner, const std::array< int, 3 > &grid_dimensions, double grid_spacing, double mass, const std::array< double, 3 > &initial_velocity, int type, double epsilon=1.0, double sigma=1.2, LockState lock_state=LockState::UNLOCKED, ThirdDimension third_dimension=ThirdDimension::ENABLED, double initial_temperature=0.1)
Constructor.
const double initial_temperature
Defines the initial temperature of the particles in the cuboid.
const std::array< double, 3 > lower_left_corner
Defines the lower left corner where the cuboid will be spawned.
size_t getEstimatedNumberOfParticles() const override
Estimate the number of particles to be spawned.
const LockState lock_state
Defines whether the particles in the cuboid are locked.
const double mass
Defines the mass of the particles in the cuboid.
const std::array< int, 3 > grid_dimensions
Defines how big the cuboid will be. Each entry defines the number of particles in the respective dire...
const double grid_spacing
Defines the spacing between neighboring particles in the cuboid.
double epsilon
Defines the Lennard-Jones epsilon parameter of the particles in the cuboid.
const std::array< double, 3 > initial_velocity
Defines the initial velocity of the particles in the cuboid.
Class to represent a particle.
static void setParticleTemperature(double new_temperature, Particle &particle, ThirdDimension third_dimension)
Set the temperature of a particle. This method adds a random velocity to the particle according to th...