void CellIdWriter<ELEMENT_DIM, SPACE_DIM>::VisitCell(CellPtr pCell, AbstractCellPopulation<ELEMENT_DIM, SPACE_DIM>* pCellPopulation) { unsigned cell_id = pCell->GetCellId(); unsigned location_index = pCellPopulation->GetLocationIndexUsingCell(pCell); *this->mpOutStream << " " << cell_id << " " << location_index; c_vector<double, SPACE_DIM> coords = pCellPopulation->GetLocationOfCellCentre(pCell); for (unsigned i=0; i<SPACE_DIM; i++) { *this->mpOutStream << " " << coords[i]; } }
void CellDataItemWriter<ELEMENT_DIM, SPACE_DIM>::VisitCell(CellPtr pCell, AbstractCellPopulation<ELEMENT_DIM, SPACE_DIM>* pCellPopulation) { // Output the location index corresponding to this cell unsigned location_index = pCellPopulation->GetLocationIndexUsingCell(pCell); *this->mpOutStream << location_index << " "; // Output this cell's ID unsigned cell_id = pCell->GetCellId(); *this->mpOutStream << cell_id << " "; // Output the position of this cell's centre c_vector<double, SPACE_DIM> centre_location = pCellPopulation->GetLocationOfCellCentre(pCell); for (unsigned i=0; i<SPACE_DIM; i++) { *this->mpOutStream << centre_location[i] << " "; } // Output this cell's level of mCellDataVariableName double value = pCell->GetCellData()->GetItem(mCellDataVariableName); *this->mpOutStream << value << " "; }
void RandomCellKillerInCuboid<DIM>::CheckAndLabelSingleCellForApoptosis(CellPtr pCell) { /* * We assume a constant time step and that there are an integer number (n = 1/dt) * of time steps per hour. We also assume that this method is called every time step * and that the probabilities of dying at different times are independent. * * Let q=mProbabilityOfDeathInAnHour and p="probability of death in a given time step". * * Probability of not dying in an hour: * (1-q) = (1-p)^n = (1-p)^(1/dt). * * Rearranging for p: * p = 1 - (1-q)^dt. */ double death_prob_this_timestep = 1.0 - pow((1.0 - mProbabilityOfDeathInAnHour), SimulationTime::Instance()->GetTimeStep()); if (!pCell->HasApoptosisBegun() && RandomNumberGenerator::Instance()->ranf() < death_prob_this_timestep) { OUTPUT<<SimulationTime::Instance()->GetTime()<<" "<<pCell->GetCellId()<<std::endl; pCell->StartApoptosis(); } }
double CellIdWriter<ELEMENT_DIM, SPACE_DIM>::GetCellDataForVtkOutput(CellPtr pCell, AbstractCellPopulation<ELEMENT_DIM, SPACE_DIM>* pCellPopulation) { double cell_id = pCell->GetCellId(); return cell_id; }