Chaste Release::3.1
PostProcessingWriter< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <PostProcessingWriter.hpp>

Collaboration diagram for PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >:

List of all members.

Public Member Functions

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

Private Member Functions

void WriteVariablesOverTimeAtNodes (std::vector< unsigned > &rNodeIndices)
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, const std::string &rFileName)
void WriteGenericFileToMeshalyzer (std::vector< std::vector< double > > &rDataPayload, const std::string &rFolder, const std::string &rFileName)

Private Attributes

std::string mDirectory
std::string mHdf5File
bool mMakeAbsolute
std::string mVoltageName
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

  • APD map
  • Upstroke time map
  • Upstroke Velocity map
  • Conduction Velocity map

Definition at line 54 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,
std::string  voltageName = "V" 
)

Constructor

Parameters:
rMeshA reference to the mesh used to calculate the distance map to pass to the conduction velocity calculator.
directoryThe directory the data is in. The output is written to <directory>/output
hdf5FileThe file the data is in.
makeAbsoluteWhether to convert the path to absolute using the OutputFileHandler (via the HdfDataReader)
voltageName(Optional) The name of the variable representing the membrane potential. It is used in the creation of the PropagationPropertiesCalculator object. Defaults to "V".

Definition at line 49 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 ( )

Destructor

Definition at line 149 of file PostProcessingWriter.cpp.


Member Function Documentation

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

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 240 of file PostProcessingWriter.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteApdMapFile ( double  repolarisationPercentage,
double  threshold 
) [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:
repolarisationPercentageeg. 90.0 for APD90
threshold- Vm used to signify the upstroke (mV)

Definition at line 156 of file PostProcessingWriter.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteConductionVelocityMap ( unsigned  originNode,
std::vector< double distancesFromOriginNode 
) [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. Typically calculated with DistanceMapCalculator

Definition at line 215 of file PostProcessingWriter.cpp.

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

Method for investigating HeartConfig and opening file in Meshalyzer/Cmgui postprocessing subfolder Calls lower-level method(s) for actually writing data in a specific format etc.

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

Definition at line 340 of file PostProcessingWriter.cpp.

References HeartConfig::Instance().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteGenericFileToMeshalyzer ( std::vector< std::vector< double > > &  rDataPayload,
const std::string &  rFolder,
const std::string &  rFileName 
) [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:
rDataPayloadvector data for each node. Each node's data are represented by a vector of scalars (variable length)
rFoldersubfolder for postprocessing in which to put the data.
rFileNamewhere to put the data.

Definition at line 356 of file PostProcessingWriter.cpp.

References PetscTools::AmMaster(), PetscTools::BeginRoundRobin(), PetscTools::EndRoundRobin(), ChasteBuildInfo::GetProvenanceString(), HeartConfig::Instance(), and OutputFileHandler::OpenOutputFile().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteMaxUpstrokeVelocityMap ( double  threshold) [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 190 of file PostProcessingWriter.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteUpstrokeTimeMap ( double  threshold) [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 165 of file PostProcessingWriter.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::WriteVariablesOverTimeAtNodes ( std::vector< unsigned > &  rNodeIndices) [private]

Method that extrapolates the output variables over time at specified nodes and output all to file. The use of this method is intended as follows: the user supplies a list of node indices (rNodeIndices). This method outputs the time series at each node in rNodeIndices (one time series per column). The node numbering is referred to the original mesh.

Regardless of the permutation that was used in the simulation, this method will have the same output.

There will be one file per variable contained in the hdf5 file. For each file, the name will be NodalTraces_VARIABLENAME.dat. So for example, in a bidomain simulation with default variable names, output files will be:

NodalTraces_V.dat NodalTraces_Phi_e.dat

Each output file will look like (taking variable V as an example):

Line 1: <V at time 0, Node 0> <V at time 0, Node 1> <V at time 0, Node 2> etc... Line 2: <V at time 1, Node 0> <V at time 1, Node 1> <V at time 1, Node 2> etc... etc...

where Node 0, Node 1, Node 2 are the nodes included in the rIndices vector and "V" is the name of the variable.

Parameters:
rNodeIndicesthe node indices (in the unpermuted mesh) that we want the output for.

Definition at line 293 of file PostProcessingWriter.cpp.

References PetscTools::AmMaster(), HeartConfig::GetOutputUsingOriginalNodeOrdering(), and HeartConfig::Instance().


Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::string PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mDirectory [private]

The directory the HDF5 file is in

Definition at line 59 of file PostProcessingWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::string PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mHdf5File [private]

The name of the HDF5 file to post-process

Definition at line 60 of file PostProcessingWriter.hpp.

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

Cache of mHi from the mesh DitributedVectorFactory

Definition at line 67 of file PostProcessingWriter.hpp.

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

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

Cache of mLo from the mesh DitributedVectorFactory

Definition at line 66 of file PostProcessingWriter.hpp.

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

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

Whether to convert mDirectory to an absolute path

Definition at line 61 of file PostProcessingWriter.hpp.

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

An HDF5 reader from which to build the PropagationPropertiesCalculator

Definition at line 64 of file PostProcessingWriter.hpp.

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

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 68 of file PostProcessingWriter.hpp.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::string PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::mVoltageName [private]

The name of the variable representing the membrane potential

Definition at line 62 of file PostProcessingWriter.hpp.


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