60 this->GenerateFeMesh(rCellPopulation);
63 std::shared_ptr<BoundaryConditionsContainer<DIM,DIM,1> > p_bcc = ConstructBoundaryConditionsContainer();
66 UpdateSolutionVector(rCellPopulation);
75 double current_time = p_simulation_time->
GetTime();
77 solver.
SetTimes(current_time,current_time + dt);
81 Vec previous_solution = this->mSolution;
86 this->mSolution = solver.
Solve();
88 this->UpdateCellData(rCellPopulation);
116 if (this->IsNeumannBoundaryCondition())
120 elem_iter != this->mpFeMesh->GetBoundaryElementIteratorEnd();
123 p_bcc->AddNeumannBoundaryCondition(*elem_iter, this->mpBoundaryCondition.get());
130 node_iter != this->mpFeMesh->GetBoundaryNodeIteratorEnd();
133 p_bcc->AddDirichletBoundaryCondition(*node_iter, this->mpBoundaryCondition.get());
150 std::string& variable_name = this->mDependentVariableName;
153 node_iter != this->mpFeMesh->GetNodeIteratorEnd();
158 node_iter != this->mpFeMesh->GetNodeIteratorEnd();
161 unsigned node_index = node_iter->GetIndex();
162 bool dirichlet_bc_applies = (node_iter->IsBoundaryNode()) && (!(this->IsNeumannBoundaryCondition()));
163 double boundary_value = this->GetBoundaryCondition()->GetValue(node_iter->rGetLocation());
165 double solution_at_node = rCellPopulation.
GetCellDataItemAtPdeNode(node_index, variable_name, dirichlet_bc_applies, boundary_value);
void OutputSimulationModifierParameters(out_stream &rParamsFile)
virtual void SetupSolve(AbstractCellPopulation< DIM, DIM > &rCellPopulation, std::string outputDirectory)
virtual std::shared_ptr< BoundaryConditionsContainer< DIM, DIM, 1 > > ConstructBoundaryConditionsContainer()
void OutputSimulationModifierParameters(out_stream &rParamsFile)
virtual void UpdateAtEndOfTimeStep(AbstractCellPopulation< DIM, DIM > &rCellPopulation)
ParabolicGrowingDomainPdeModifier(boost::shared_ptr< AbstractLinearPde< DIM, DIM > > pPde=boost::shared_ptr< AbstractLinearPde< DIM, DIM > >(), boost::shared_ptr< AbstractBoundaryCondition< DIM > > pBoundaryCondition=boost::shared_ptr< AbstractBoundaryCondition< DIM > >(), bool isNeumannBoundaryCondition=true, Vec solution=nullptr)
virtual ~ParabolicGrowingDomainPdeModifier()
void UpdateSolutionVector(AbstractCellPopulation< DIM, DIM > &rCellPopulation)