SingleTraceOutputModifier.hpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef SINGLETRACEOUTPUTMODIFIER_HPP_
00037 #define SINGLETRACEOUTPUTMODIFIER_HPP_
00038
00039 #include "ChasteSerialization.hpp"
00040 #include <boost/serialization/base_object.hpp>
00041
00042 #include "AbstractOutputModifier.hpp"
00043 #include "OutputFileHandler.hpp"
00044
00054 class SingleTraceOutputModifier : public AbstractOutputModifier
00055 {
00056 private:
00058 friend class TestMonodomainProblem;
00060 friend class boost::serialization::access;
00065 unsigned mGlobalIndex;
00066 unsigned mLocalIndex;
00067 out_stream mFileStream;
00069 friend class TestOutputModifiers;
00070
00077 template<class Archive>
00078 void serialize(Archive & archive, const unsigned int version)
00079 {
00080
00081 archive & boost::serialization::base_object<AbstractOutputModifier>(*this);
00082 archive & mGlobalIndex;
00083
00084 }
00085
00087 SingleTraceOutputModifier()
00088 : mLocalIndex(UINT_MAX),
00089 mFileStream(NULL)
00090 {}
00091
00092 public:
00114 SingleTraceOutputModifier(const std::string& rFilename, unsigned globalIndex, double flushTime=0.0)
00115 : AbstractOutputModifier(rFilename, flushTime),
00116 mGlobalIndex(globalIndex),
00117 mLocalIndex(UINT_MAX),
00118 mFileStream(NULL)
00119 {
00120 }
00121
00129 virtual void InitialiseAtStart(DistributedVectorFactory* pVectorFactory);
00130
00134 virtual void FinaliseAtEnd();
00135
00142 virtual void ProcessSolutionAtTimeStep(double time, Vec solution, unsigned problemDim);
00143 };
00144
00145 #include "SerializationExportWrapper.hpp"
00146 CHASTE_CLASS_EXPORT(SingleTraceOutputModifier)
00147
00148 #endif // SINGLETRACEOUTPUTMODIFIER_HPP_