59 for (
unsigned pair = 0; pair < rNodePairs.size(); ++pair)
67 Node<DIM>* p_node_a = rNodePairs[pair].first;
68 Node<DIM>* p_node_b = rNodePairs[pair].second;
72 double normed_dist = norm_2(vec_a2b);
78 bool a_lamina = p_node_a->
GetRegion() == LAMINA_REGION;
79 bool b_lamina = p_node_b->
GetRegion() == LAMINA_REGION;
90 double elem_spacing = 0.5 * (node_a_elem_spacing + node_b_elem_spacing);
92 double eff_spring_const = mSpringConst * elem_spacing / rCellPopulation.
GetIntrinsicSpacing();
95 if (a_lamina || b_lamina)
97 eff_spring_const *= mLaminaSpringConstMult;
98 eff_rest_length *= mLaminaRestLengthMult;
107 vec_a2b *= eff_spring_const * (normed_dist - eff_rest_length) / normed_dist;
109 c_vector<double, DIM> force_a2b = vec_a2b * (elem_spacing / node_a_elem_spacing);
112 c_vector<double, DIM> force_b2a = vec_a2b * (-1.0 * elem_spacing / node_b_elem_spacing);
118 if (this->mAdditiveNormalNoise)
120 this->AddNormalNoiseToNodes(rCellPopulation);