CellModules
Diffusion2D::DiffusionGrid Class Reference

molecules grid based class More...

#include <DiffusionGrid.hpp>

Public Member Functions

 DiffusionGrid ()=default
 
void setToreX (bool b)
 toreX setter More...
 
void setToreY (bool b)
 toreY setter More...
 
void setTore (bool x, bool y)
 tore setter More...
 
double getMolecule (int x, int y, int m)
 molecule quantity getter More...
 
int getWidth () const
 grid's width getter More...
 
int getHeight () const
 grid's height getter More...
 
vector< vector< GridCell > > & getGrid ()
 grid getter More...
 
vector< MoleculegetMolecules () const
 molecules getter More...
 
void addMolecule (int n, Molecule m)
 molecule adder More...
 
void initGrid (int w, int h)
 grid initializer More...
 
void initGrid (int size)
 square grid initializer More...
 
template<typename world_t >
void computeMolecules (world_t *w)
 molecules quantities updater More...
 

Public Attributes

unordered_map< int, int > moleculesDict
 

Private Member Functions

void preStep ()
 next step cells initializer More...
 
void diffuse (int x, int y)
 apply diffusion to the molecule m at position (x,y) More...
 
void computeStep ()
 molecules updater More...
 
template<typename world_t >
void updateConsumptions (world_t *w)
 consumptions updater More...
 

Private Attributes

vector< vector< GridCell > > grid
 
vector< Moleculemolecules
 
bool toreX = true
 
bool toreY = true
 
int height = 10
 
int width = 10
 

Detailed Description

molecules grid based class

Definition at line 70 of file DiffusionGrid.hpp.

Constructor & Destructor Documentation

◆ DiffusionGrid()

Diffusion2D::DiffusionGrid::DiffusionGrid ( )
default

Member Function Documentation

◆ addMolecule()

void Diffusion2D::DiffusionGrid::addMolecule ( int  n,
Molecule  m 
)
inline

molecule adder

Parameters
n: number of the molecule
m: molecule to be added

Definition at line 251 of file DiffusionGrid.hpp.

◆ computeMolecules()

template<typename world_t >
void Diffusion2D::DiffusionGrid::computeMolecules ( world_t *  w)
inline

molecules quantities updater

Template Parameters
world_t
Parameters
w

Definition at line 287 of file DiffusionGrid.hpp.

◆ computeStep()

void Diffusion2D::DiffusionGrid::computeStep ( )
inlineprivate

molecules updater

updates the quantity of a molecule for each cell and returns the total amount of this molecule

Definition at line 159 of file DiffusionGrid.hpp.

◆ diffuse()

void Diffusion2D::DiffusionGrid::diffuse ( int  x,
int  y 
)
inlineprivate

apply diffusion to the molecule m at position (x,y)

Parameters
x
y

Definition at line 103 of file DiffusionGrid.hpp.

◆ getGrid()

vector< vector< GridCell > > & Diffusion2D::DiffusionGrid::getGrid ( )
inline

grid getter

Returns
vector<vector<GridCell>>

Definition at line 238 of file DiffusionGrid.hpp.

◆ getHeight()

int Diffusion2D::DiffusionGrid::getHeight ( ) const
inline

grid's height getter

Returns
int

Definition at line 232 of file DiffusionGrid.hpp.

◆ getMolecule()

double Diffusion2D::DiffusionGrid::getMolecule ( int  x,
int  y,
int  m 
)
inline

molecule quantity getter

Parameters
x: x pos
y: y pos
m: number of the molecule
Returns
double

Definition at line 220 of file DiffusionGrid.hpp.

◆ getMolecules()

vector< Molecule > Diffusion2D::DiffusionGrid::getMolecules ( ) const
inline

molecules getter

Returns
vector<Molecule>

Definition at line 244 of file DiffusionGrid.hpp.

◆ getWidth()

int Diffusion2D::DiffusionGrid::getWidth ( ) const
inline

grid's width getter

Returns
int

Definition at line 226 of file DiffusionGrid.hpp.

◆ initGrid() [1/2]

void Diffusion2D::DiffusionGrid::initGrid ( int  size)
inline

square grid initializer

Parameters
size: grid size

Definition at line 279 of file DiffusionGrid.hpp.

◆ initGrid() [2/2]

void Diffusion2D::DiffusionGrid::initGrid ( int  w,
int  h 
)
inline

grid initializer

Parameters
w: grid width
h: grid height

Definition at line 262 of file DiffusionGrid.hpp.

◆ preStep()

void Diffusion2D::DiffusionGrid::preStep ( )
inlineprivate

next step cells initializer

Definition at line 84 of file DiffusionGrid.hpp.

◆ setTore()

void Diffusion2D::DiffusionGrid::setTore ( bool  x,
bool  y 
)
inline

tore setter

Parameters
x
y

Definition at line 211 of file DiffusionGrid.hpp.

◆ setToreX()

void Diffusion2D::DiffusionGrid::setToreX ( bool  b)
inline

toreX setter

Parameters
b

Definition at line 195 of file DiffusionGrid.hpp.

◆ setToreY()

void Diffusion2D::DiffusionGrid::setToreY ( bool  b)
inline

toreY setter

Parameters
b

Definition at line 202 of file DiffusionGrid.hpp.

◆ updateConsumptions()

template<typename world_t >
void Diffusion2D::DiffusionGrid::updateConsumptions ( world_t *  w)
inlineprivate

consumptions updater

Template Parameters
world_t
Parameters
w

Definition at line 174 of file DiffusionGrid.hpp.

Member Data Documentation

◆ grid

vector<vector<GridCell> > Diffusion2D::DiffusionGrid::grid
private

Definition at line 72 of file DiffusionGrid.hpp.

◆ height

int Diffusion2D::DiffusionGrid::height = 10
private

tore property on y-axis of the grid

Definition at line 78 of file DiffusionGrid.hpp.

◆ molecules

vector<Molecule> Diffusion2D::DiffusionGrid::molecules
private

gridcells matrix

Definition at line 73 of file DiffusionGrid.hpp.

◆ moleculesDict

unordered_map<int,int> Diffusion2D::DiffusionGrid::moleculesDict

Definition at line 186 of file DiffusionGrid.hpp.

◆ toreX

bool Diffusion2D::DiffusionGrid::toreX = true
private

existing molecules in the simulation

Definition at line 75 of file DiffusionGrid.hpp.

◆ toreY

bool Diffusion2D::DiffusionGrid::toreY = true
private

tore property on x-axis of the grid

Definition at line 76 of file DiffusionGrid.hpp.

◆ width

int Diffusion2D::DiffusionGrid::width = 10
private

Definition at line 79 of file DiffusionGrid.hpp.


The documentation for this class was generated from the following file: