36 #include "Owen11CaUpdateRule.hpp" 37 #include "Owen11Parameters.hpp" 38 #include "BaseUnits.hpp" 39 #include "CancerCellMutationState.hpp" 40 #include "QuiescentCancerCellMutationState.hpp" 42 template<
unsigned DIM>
45 mDiffusionParameter(
Owen11Parameters::mpCellMotilityCancer->GetValue(
"Owen11CaUpdateRule")),
48 mReferenceLengthScale(
BaseUnits::Instance()->GetReferenceLengthScale()),
49 mCancerCellCarryingCapacity(2)
54 template<
unsigned DIM>
59 template<
unsigned DIM>
61 unsigned targetNodeIndex,
70 unsigned num_cells_at_site = 0;
76 EXCEPTION(
"A regular grid is required for determining vessel based lattice occupancy");
78 if(
mpRegularGrid->IsSegmentAtLatticeSite(targetNodeIndex,
false))
80 num_cells_at_site = 1;
84 num_cells_at_site += rCellPopulation.GetCellsUsingLocationIndex(targetNodeIndex).size();
87 c_vector<double, DIM> node_index_location = rCellPopulation.GetNode(currentNodeIndex)->rGetLocation();
88 c_vector<double, DIM> node_neighbour_location = rCellPopulation.GetNode(targetNodeIndex)->rGetLocation();
89 units::quantity<unit::length> grid_distance = norm_2(rCellPopulation.rGetMesh().GetVectorFromAtoB(node_index_location,
94 return mDiffusionParameter*time_increment*carrying_capacity_factor/(2.0* units::pow<2>(grid_distance));
114 unsigned targetNodeIndex,
120 EXCEPTION(
"This update rule is not supported in 1D");
123 template<
unsigned DIM>
129 template<
unsigned DIM>
135 template<
unsigned DIM>
141 template<
unsigned DIM>
147 template<
unsigned DIM>
153 template<
unsigned DIM>
156 *rParamsFile <<
"\t\t\t<DiffusionParameter>" <<
mDiffusionParameter <<
"</DiffusionParameter>\n";
167 #include "SerializationExportWrapperForCpp.hpp" unsigned mCancerCellCarryingCapacity
void SetVesselNetwork(boost::shared_ptr< VesselNetwork< DIM > > pVesselNetwork)
boost::shared_ptr< VesselNetwork< DIM > > mpVesselNetwork
void OutputUpdateRuleParameters(out_stream &rParamsFile)
units::quantity< unit::time > GetReferenceTimeScale()
units::quantity< unit::length > mReferenceLengthScale
units::quantity< unit::diffusivity > mDiffusionParameter
double EvaluateProbability(unsigned currentNodeIndex, unsigned targetNodeIndex, CaBasedCellPopulation< DIM > &rCellPopulation, double dt, double deltaX, CellPtr cell)
units::quantity< unit::diffusivity > GetDiffusionParameter()
void SetReferenceLengthScale(units::quantity< unit::length > referenceLengthScale)
void SetDiffusionParameter(units::quantity< unit::diffusivity > diffusionParameter)
boost::shared_ptr< RegularGrid< DIM > > mpRegularGrid
static BaseUnits * Instance()
void SetRegularGrid(boost::shared_ptr< RegularGrid< DIM > > pRegularGrid)