PostProcessingWriter< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <PostProcessingWriter.hpp>

Collaboration diagram for PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 PostProcessingWriter (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, std::string directory, std::string hdf5File, bool makeAbsolute)
void WritePostProcessingFiles ()
 ~PostProcessingWriter ()
void WriteAboveThresholdDepolarisationFile (double threshold)

Private Member Functions

void WriteApdMapFile (double repolarisationPercentage, double threshold)
void WriteUpstrokeTimeMap (double threshold)
void WriteMaxUpstrokeVelocityMap (double threshold)
void WriteConductionVelocityMap (unsigned originNode, std::vector< double > distancesFromOriginNode)
void WriteGenericFile (std::vector< std::vector< double > > &rDataPayload, std::string fileName)

Private Attributes

Hdf5DataReadermpDataReader
PropagationPropertiesCalculatormpCalculator
unsigned mLo
unsigned mHi
AbstractTetrahedralMesh
< ELEMENT_DIM, SPACE_DIM > & 
mrMesh

Friends

class TestPostProcessingWriter


Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
class PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >

Write out physiological parameters at the end of a simulation

Definition at line 47 of file PostProcessingWriter.hpp.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::PostProcessingWriter ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &  rMesh,
std::string  directory,
std::string  hdf5File,
bool  makeAbsolute 
) [inline]

Constructor

Parameters:
rMesh A reference to the mesh used to calculate the distance map to pass to the conduction velocity calculator.
directory The directory the data is in. The output is written to <directory>/output
hdf5File The file the data is in.
makeAbsolute Whether to convert the path to absolute using the OutputFileHandler (via the HdfDataReader)

Definition at line 40 of file PostProcessingWriter.cpp.

References Hdf5DataReader::GetNumberOfRows(), PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mHi, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mLo, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mpCalculator, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mpDataReader, and PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mrMesh.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::~PostProcessingWriter (  )  [inline]


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WritePostProcessingFiles (  )  [inline]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteAboveThresholdDepolarisationFile ( double  threshold  )  [inline]

Method for opening a file and writing one row per node: line 1: <number of upstrokes for node 0> <number of above-threshold depolarisations for node 0> line 2: <number of upstrokes for node 1> <number of above-threshold depolarisations for node 1> etc.

For the nodes where the threshold isn't crossed, the 'number of upstrokes' will be 0 (so will the number of above-threshold depolarisations for that node)

Todo:
This method ought to be private and called by the WritePostProcessingFiles method if the user requests for it. This will be possible after modifying the schema and specifying Get and Set methods in HeartConfig to check whetehr the user wants this file or not
Parameters:
threshold - used to signify the upstroke (mV) AND to specify above which voltage value the depolarisations are counted

Definition at line 217 of file PostProcessingWriter.cpp.

References PropagationPropertiesCalculator::CalculateAllAboveThresholdDepolarisations(), PropagationPropertiesCalculator::CalculateAllMaximumUpstrokeVelocities(), PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mHi, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mLo, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mpCalculator, and PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteGenericFile().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteApdMapFile ( double  repolarisationPercentage,
double  threshold 
) [inline, private]

Method for opening an APD map file and writing one row per node line 1: <first APD for node 0> <second APD for node 0> ... line 2: <first APD for node 1> <second APD for node 1> ... etc.

Nodes where there is no APD are respresented by a single 0

Parameters:
repolarisationPercentage eg. 90.0 for APD90
threshold - Vm used to signify the upstroke (mV)

Definition at line 115 of file PostProcessingWriter.cpp.

References PropagationPropertiesCalculator::CalculateAllActionPotentialDurations(), Exception::GetShortMessage(), PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mHi, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mLo, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mpCalculator, and PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteGenericFile().

Referenced by PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WritePostProcessingFiles().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteUpstrokeTimeMap ( double  threshold  )  [inline, private]

Write out times of each upstroke for each node:

line 1: <first upstroke time for node 0> <second upstroke time for node 0> ... line 2: <first upstroke time for node 1> <second upstroke time for node 1> ... etc.

If there is no upstroke then there will a blank line

Parameters:
threshold - Vm used to signify the upstroke (mV)

Definition at line 142 of file PostProcessingWriter.cpp.

References PropagationPropertiesCalculator::CalculateUpstrokeTimes(), PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mHi, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mLo, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mpCalculator, and PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteGenericFile().

Referenced by PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WritePostProcessingFiles().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteMaxUpstrokeVelocityMap ( double  threshold  )  [inline, private]

Write out velocities of each max upstroke for each node:

line 1: <first upstroke velocity for node 0> <second upstroke velocity for node 0> ... line 2: <first upstroke velocity for node 1> <second upstroke velocity for node 1> ... etc.

If there is no upstroke then there will a blank line

Parameters:
threshold - Vm used to signify the upstroke (mV)

Definition at line 167 of file PostProcessingWriter.cpp.

References PropagationPropertiesCalculator::CalculateAllMaximumUpstrokeVelocities(), PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mHi, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mLo, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mpCalculator, and PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteGenericFile().

Referenced by PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WritePostProcessingFiles().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteConductionVelocityMap ( unsigned  originNode,
std::vector< double >  distancesFromOriginNode 
) [inline, private]

Write out conduction velocity map from the given node the rest of the mesh:

line 1: <conduction velocity for node 0 and AP 0> <conduction velocity for node 0 and AP 1> ... line 2: <conduction velocity for node 1 and AP 0> <conduction velocity for node 1 and AP 1> ... etc.

Note: the line corresponding to node number originNode will contain ...

Parameters:
originNode - Node to compute the conduction velocity from
distancesFromOriginNode - Distance map from originNode to all the nodes in the simulation. Tipically calculated with DistanceMapCalculator

Definition at line 192 of file PostProcessingWriter.cpp.

References PropagationPropertiesCalculator::CalculateAllConductionVelocities(), PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mHi, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mLo, PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mpCalculator, and PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteGenericFile().

Referenced by PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WritePostProcessingFiles().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteGenericFile ( std::vector< std::vector< double > > &  rDataPayload,
std::string  fileName 
) [inline, private]

Method for opening a file and writing one row per node line 1: <first scalar data for node 0> <second scalar data for node 0> ... line 2: <first scalar data for node 1> <second scalar data for node 1> ... etc.

Parameters:
rDataPayload vector data for each node. Each node's data are represented by a vector of scalars (variable length)
fileName where to put the data.

Definition at line 270 of file PostProcessingWriter.cpp.

References PetscTools::AmMaster(), PetscTools::Barrier(), PetscTools::GetMyRank(), PetscTools::GetNumProcs(), ChasteBuildInfo::GetProvenanceString(), HeartConfig::Instance(), and OutputFileHandler::OpenOutputFile().

Referenced by PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteAboveThresholdDepolarisationFile(), PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteApdMapFile(), PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteConductionVelocityMap(), PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteMaxUpstrokeVelocityMap(), and PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteUpstrokeTimeMap().


Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
Hdf5DataReader* PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mpDataReader [private]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
PropagationPropertiesCalculator* PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mpCalculator [private]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mLo [private]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mHi [private]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractTetrahedralMesh<ELEMENT_DIM,SPACE_DIM>& PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mrMesh [private]

A mesh used to calculate the distance map to pass to the conduction velocity calculator

Definition at line 57 of file PostProcessingWriter.hpp.

Referenced by PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::PostProcessingWriter(), and PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WritePostProcessingFiles().


The documentation for this class was generated from the following files:

Generated on Mon Nov 1 12:37:14 2010 for Chaste by  doxygen 1.5.5