![]()  | 
  
    PixCells
    
   This project is a Cellular Potts Model (CPM) simulator. It was developped during a Master's degree in Physics as a master project. 
   | 
 
#include <eigen3/Eigen/Eigenvalues>#include <fstream>#include <vector>#include <iostream>#include "math.hpp"Functions | |
| std::pair< float, float > | calculate_center_of_mass_cell (const std::vector< std::pair< int, int > > &m_position) | 
| std::array< float, 3 > | calculate_inertia_tensor_cell (const std::vector< std::pair< int, int > > &m_position) | 
| Calculate the inertia tensor of a cell.   | |
| std::array< std::array< float, 2 >, 2 > | calculate_eigenvectors_inertia_tensor_cell (const std::vector< std::pair< int, int > > &m_position) | 
| Calculate the eigenvectors of the inertia tensor of a cell.   | |
| std::pair< float, float > | calculate_projection_on_principal_axis (const std::vector< std::pair< int, int > > &m_position) | 
| Calculate the projection of a cell on its principal axis.   | |
| std::pair< float, float > | calculate_projection_std_on_principal_axis (const std::vector< std::pair< int, int > > &m_position) | 
| Calculate the standard deviation of the projection of a cell on its principal axis. This way, we can have an idea of the cell length and not the absolute length.   | |
| float | get_length_cell (const std::vector< std::pair< int, int > > &m_position) | 
| Calculate the length of a cell.   | |
| void | testGrid () | 
| Function to test the grid.  | |
| void | initializeGrid (std::vector< std::vector< double > > &grid, double initConc) | 
| Function to initialize the grid with a given initial concentration.   | |
| void | applyBoundaryConditions (std::vector< std::vector< double > > &grid, double boundaryConc) | 
| Function to apply the boundary conditions to the grid.   | |
| double | secretionTerm (double secretionRate, int id_cell) | 
| Function to define the secretion term S(x, y, t)   | |
| double | decayTerm (double decayRate, int id_cell) | 
| Function to define the decay term D(x, y, t)   | |
| void | solve_aStepOfDiffusionSecretionDecay (std::vector< std::vector< double > > &grid, double dx, double dy, double dt, double D, double boundaryConc, double secretionRate, double decayRate, std::vector< std::vector< int > > lattice) | 
| Solve a step of the diffusion-secretion-decay PDE.   | |
Math functions
| void applyBoundaryConditions | ( | std::vector< std::vector< double > > & | grid, | 
| double | boundaryConc | ||
| ) | 
Function to apply the boundary conditions to the grid.
| grid | the grid to apply the boundary conditions | 
| boundaryConc | the boundary concentration value | 
| std::array< std::array< float, 2 >, 2 > calculate_eigenvectors_inertia_tensor_cell | ( | const std::vector< std::pair< int, int > > & | m_position | ) | 
Calculate the eigenvectors of the inertia tensor of a cell.
| m_position | All the positions of the cell | 
| std::array< float, 3 > calculate_inertia_tensor_cell | ( | const std::vector< std::pair< int, int > > & | m_position | ) | 
Calculate the inertia tensor of a cell.
| m_position | All the positions of the cell | 
| std::pair< float, float > calculate_projection_on_principal_axis | ( | const std::vector< std::pair< int, int > > & | m_position | ) | 
Calculate the projection of a cell on its principal axis.
| m_position | All the positions of the cell | 
| std::pair< float, float > calculate_projection_std_on_principal_axis | ( | const std::vector< std::pair< int, int > > & | m_position | ) | 
Calculate the standard deviation of the projection of a cell on its principal axis. This way, we can have an idea of the cell length and not the absolute length.
| m_position | All the positions of the cell | 
| double decayTerm | ( | double | decayRate, | 
| int | id_cell | ||
| ) | 
Function to define the decay term D(x, y, t)
| decayRate | the decay rate | 
| id_cell | the id of the cell | 
| float get_length_cell | ( | const std::vector< std::pair< int, int > > & | m_position | ) | 
Calculate the length of a cell.
| m_position | All the positions of the cell | 
| void initializeGrid | ( | std::vector< std::vector< double > > & | grid, | 
| double | initConc | ||
| ) | 
Function to initialize the grid with a given initial concentration.
| grid | the grid to initialize | 
| initConc | the initial concentration value | 
| double secretionTerm | ( | double | secretionRate, | 
| int | id_cell | ||
| ) | 
Function to define the secretion term S(x, y, t)
| secretionRate | the secretion rate | 
| id_cell | the id of the cell | 
| void solve_aStepOfDiffusionSecretionDecay | ( | std::vector< std::vector< double > > & | grid, | 
| double | dx, | ||
| double | dy, | ||
| double | dt, | ||
| double | D, | ||
| double | boundaryConc, | ||
| double | secretionRate, | ||
| double | decayRate, | ||
| std::vector< std::vector< int > > | lattice | ||
| ) | 
Solve a step of the diffusion-secretion-decay PDE.
| grid | the grid to solve | 
| dx | the x step | 
| dy | the y step (usually equal to dx) | 
| dt | the time step | 
| D | the diffusion coefficient | 
| boundaryConc | the boundary concentration value | 
| secretionRate | the secretion rate | 
| decayRate | the decay rate | 
| lattice | the lattice of the cells |