Molecular Dynamics Simulation
1.0
|
Class to spawn particles in a cuboid. Implements the interface ParticleSpawner. More...
#include <CuboidSpawner.h>
Public Member Functions | |
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. More... | |
int | spawnParticles (std::vector< Particle > &particles) const override |
Spawns particles in the given container. More... | |
size_t | getEstimatedNumberOfParticles () const override |
Estimate the number of particles to be spawned. More... | |
Private Attributes | |
const std::array< double, 3 > | lower_left_corner |
Defines the lower left corner where the cuboid will be spawned. More... | |
const std::array< int, 3 > | grid_dimensions |
Defines how big the cuboid will be. Each entry defines the number of particles in the respective direction. More... | |
const double | grid_spacing |
Defines the spacing between neighboring particles in the cuboid. More... | |
const double | mass |
Defines the mass of the particles in the cuboid. More... | |
const int | type |
Defines the type of the particles in the cuboid. More... | |
double | epsilon |
Defines the Lennard-Jones epsilon parameter of the particles in the cuboid. More... | |
double | sigma |
Defines the Lennard-Jones sigma parameter of the particles in the cuboid. More... | |
const LockState | lock_state |
Defines whether the particles in the cuboid are locked. More... | |
const std::array< double, 3 > | initial_velocity |
Defines the initial velocity of the particles in the cuboid. More... | |
const ThirdDimension | third_dimension |
Defines whether to use the third dimension. More... | |
const double | initial_temperature |
Defines the initial temperature of the particles in the cuboid. More... | |
Class to spawn particles in a cuboid. Implements the interface ParticleSpawner.
Implementation of the particle spawning in a cuboid. It is possible to specify the lower left corner of the cuboid, the grid dimensions, the spacing between neighboring particles, the mass of the particles, the initial velocity of the particles and the type of the particles.
Definition at line 15 of file CuboidSpawner.h.
CuboidSpawner::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.
lower_left_corner | Lower left corner of the cuboid |
grid_dimensions | Grid dimensions |
grid_spacing | Spacing between neighboring particles |
mass | Mass of the particles |
initial_velocity | Initial velocity of the particles, the velocity is then jittered by a Maxwell-Boltzmann distribution |
type | Type of the particles in the cuboid |
epsilon | Lennard-Jones epsilon parameter of the particles in the cuboid |
sigma | Lennard-Jones sigma parameter of the particles in the cuboid |
lock_state | Whether the particles in the cuboid are locked |
third_dimension | Whether to spawn particles in the third dimension |
initial_temperature | Initial temperature of the particles |
Constructor to initialize the cuboid spawner. The velocity of the particles is jittered by a Maxwell-Boltzmann distribution.
Definition at line 7 of file CuboidSpawner.cpp.
|
overridevirtual |
Estimate the number of particles to be spawned.
returns the number of particles to be spawned by this spawner this can be used to reserve enought memory in the particle container
Implements ParticleSpawner.
Definition at line 40 of file CuboidSpawner.cpp.
|
overridevirtual |
Spawns particles in the given container.
particles | A vector of particles to spawn |
Implements ParticleSpawner.
Definition at line 22 of file CuboidSpawner.cpp.
|
private |
Defines the Lennard-Jones epsilon parameter of the particles in the cuboid.
Definition at line 45 of file CuboidSpawner.h.
|
private |
Defines how big the cuboid will be. Each entry defines the number of particles in the respective direction.
Definition at line 25 of file CuboidSpawner.h.
|
private |
Defines the spacing between neighboring particles in the cuboid.
Definition at line 30 of file CuboidSpawner.h.
|
private |
Defines the initial temperature of the particles in the cuboid.
Definition at line 70 of file CuboidSpawner.h.
|
private |
Defines the initial velocity of the particles in the cuboid.
Definition at line 60 of file CuboidSpawner.h.
|
private |
Defines whether the particles in the cuboid are locked.
Definition at line 55 of file CuboidSpawner.h.
|
private |
Defines the lower left corner where the cuboid will be spawned.
Definition at line 20 of file CuboidSpawner.h.
|
private |
Defines the mass of the particles in the cuboid.
Definition at line 35 of file CuboidSpawner.h.
|
private |
Defines the Lennard-Jones sigma parameter of the particles in the cuboid.
Definition at line 50 of file CuboidSpawner.h.
|
private |
Defines whether to use the third dimension.
Definition at line 65 of file CuboidSpawner.h.
|
private |
Defines the type of the particles in the cuboid.
Definition at line 40 of file CuboidSpawner.h.