Particle​ Simulation Documentation
Loading...
Searching...
No Matches
Universe Class Reference

#include <universe.h>

Collaboration diagram for Universe:

Public Member Functions

 Universe (const Config &config)
 Initialize universe.
 
void makeStep ()
 Makes a simulation step.
 
void saveStep (std::ofstream &file)
 Saves all particle positions in file.
 
void addParticle (const Particle &particle)
 Adds a particle.
 
void applyAccelerationToParticles (const std::array< double, 3 > &accelerationContribution)
 Sum an acceleration contribution to the actual acceleration of all particles.
 
void computeGravitationalForces ()
 Computes and applies gravitational forces between all particles.
 
void computeParticleCollisions ()
 Computes and resolve particle collisions between all particles.
 
void computeBoxesCollision (Particle &particle)
 Compute and resolve particle collisions between all boxes.
 
std::vector< Particle > & getParticles ()
 Return the vector containing all particles.
 
void toggleGravity ()
 Toggle the gravitational forces.
 
bool getIsGravity ()
 Return the gravitational forces state.
 

Public Attributes

double m_simuationTime = 0
 Current time in the universe.
 
bool m_isRunning = false
 Universe running state.
 

Private Attributes

const Config m_config
 Configuration of the universe.
 
std::vector< Particlem_particles
 Vector containing all particles.
 
std::vector< Boxm_boxes
 Vector containing all boxes.
 
bool m_applyGravity
 Vector containing all boxes.
 
std::array< double, 3 > m_globalAcceleration
 Acceleration force apply on all universe.
 
const double m_G = 6.67430e-11
 Gravitational constant.
 

Constructor & Destructor Documentation

◆ Universe()

Universe::Universe ( const Config & config)

Initialize universe.

Parameters
[in]configThe simulation configuration
Here is the call graph for this function:

Member Function Documentation

◆ addParticle()

void Universe::addParticle ( const Particle & particle)

Adds a particle.

Parameters
[in]particleThe particle
Here is the caller graph for this function:

◆ applyAccelerationToParticles()

void Universe::applyAccelerationToParticles ( const std::array< double, 3 > & accelerationContribution)

Sum an acceleration contribution to the actual acceleration of all particles.

Parameters
[in]accelerationContributionThe acceleration contribution
Here is the caller graph for this function:

◆ computeBoxesCollision()

void Universe::computeBoxesCollision ( Particle & particle)

Compute and resolve particle collisions between all boxes.

Parameters
particleThe particle
Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeGravitationalForces()

void Universe::computeGravitationalForces ( )

Computes and applies gravitational forces between all particles.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ computeParticleCollisions()

void Universe::computeParticleCollisions ( )

Computes and resolve particle collisions between all particles.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getIsGravity()

bool Universe::getIsGravity ( )

Return the gravitational forces state.

Returns
The gravitational forces state
Here is the caller graph for this function:

◆ getParticles()

std::vector< Particle > & Universe::getParticles ( )

Return the vector containing all particles.

Returns
The vector containing all particles
Here is the caller graph for this function:

◆ makeStep()

void Universe::makeStep ( )

Makes a simulation step.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ saveStep()

void Universe::saveStep ( std::ofstream & file)

Saves all particle positions in file.

Parameters
fileThe file where to save all positions
Here is the caller graph for this function:

◆ toggleGravity()

void Universe::toggleGravity ( )

Toggle the gravitational forces.

Here is the caller graph for this function:

Member Data Documentation

◆ m_applyGravity

bool Universe::m_applyGravity
private

Vector containing all boxes.

◆ m_boxes

std::vector<Box> Universe::m_boxes
private

Vector containing all boxes.

◆ m_config

const Config Universe::m_config
private

Configuration of the universe.

◆ m_G

const double Universe::m_G = 6.67430e-11
private

Gravitational constant.

◆ m_globalAcceleration

std::array<double, 3> Universe::m_globalAcceleration
private

Acceleration force apply on all universe.

◆ m_isRunning

bool Universe::m_isRunning = false

Universe running state.

◆ m_particles

std::vector<Particle> Universe::m_particles
private

Vector containing all particles.

◆ m_simuationTime

double Universe::m_simuationTime = 0

Current time in the universe.