36 #ifndef CELLBASEDPDEHANDLER_HPP_
37 #define CELLBASEDPDEHANDLER_HPP_
43 #include <boost/serialization/vector.hpp>
45 #include "AbstractCellPopulation.hpp"
46 #include "PdeAndBoundaryConditions.hpp"
47 #include "BoundaryConditionsContainer.hpp"
48 #include "TetrahedralMesh.hpp"
49 #include "ChasteCuboid.hpp"
59 template<
unsigned DIM>
63 friend class TestCellBasedPdeHandler;
64 friend class TestOffLatticeSimulationWithPdes;
65 friend class TestOnLatticeSimulationWithPdes;
70 friend class boost::serialization::access;
77 template<
class Archive>
78 void serialize(Archive & archive,
const unsigned int version)
297 unsigned numRadialIntervals=10,
298 bool writeDailyResults=
false);
338 namespace serialization
344 template<
class Archive,
unsigned DIM>
345 inline void save_construct_data(
350 ar & p_cell_population;
356 template<
class Archive,
unsigned DIM>
357 inline void load_construct_data(
362 ar >> p_cell_population;
double GetPdeSolutionAtPoint(const c_vector< double, DIM > &rPoint, const std::string &rVariable)
std::map< CellPtr, unsigned > mCellPdeElementMap
bool mWriteDailyAverageRadialPdeSolution
bool GetWriteAverageRadialPdeSolution()
bool PdeSolveNeedsCoarseMesh()
std::string mAverageRadialSolutionVariableName
unsigned GetNumRadialIntervals()
virtual ~CellBasedPdeHandler()
void AddPdeAndBc(PdeAndBoundaryConditions< DIM > *pPdeAndBc)
CellBasedPdeHandler(AbstractCellPopulation< DIM > *pCellPopulation, bool deleteMemberPointersInDestructor=false)
bool mSetBcsOnCoarseBoundary
bool mDeleteMemberPointersInDestructor
std::vector< PdeAndBoundaryConditions< DIM > * > mPdeAndBcCollection
void serialize(Archive &archive, const unsigned int version)
TetrahedralMesh< DIM, DIM > * mpCoarsePdeMesh
unsigned FindCoarseElementContainingCell(CellPtr pCell)
virtual void UseCoarsePdeMesh(double stepSize, ChasteCuboid< DIM > meshCuboid, bool centreOnCellPopulation=false)
void SetImposeBcsOnCoarseBoundary(bool setBcsOnCoarseBoundary)
void UpdateCellPdeElementMap()
out_stream mpVizPdeSolutionResultsFile
#define EXPORT_TEMPLATE_CLASS_SAME_DIMS(CLASS)
virtual void SolvePdeAndWriteResultsToFile(unsigned samplingTimestepMultiple)
void WriteAverageRadialPdeSolution(double time)
bool mWriteAverageRadialPdeSolution
out_stream mpAverageRadialPdeSolutionResultsFile
void OpenResultsFiles(std::string outputDirectory)
unsigned mNumRadialIntervals
TetrahedralMesh< DIM, DIM > * GetCoarsePdeMesh()
AbstractCellPopulation< DIM > * mpCellPopulation
virtual void OutputParameters(out_stream &rParamsFile)
virtual std::auto_ptr< BoundaryConditionsContainer< DIM, DIM, 1 > > ConstructBoundaryConditionsContainer(PdeAndBoundaryConditions< DIM > *pPdeAndBc, TetrahedralMesh< DIM, DIM > *pMesh)
void SetWriteAverageRadialPdeSolution(const std::string &rName, unsigned numRadialIntervals=10, bool writeDailyResults=false)
bool GetImposeBcsOnCoarseBoundary()
virtual void WritePdeSolution(double time)
bool GetWriteDailyAverageRadialPdeSolution()
void InitialiseCellPdeElementMap()
const AbstractCellPopulation< DIM > * GetCellPopulation() const
virtual Vec GetPdeSolution(const std::string &rName="")