Chaste
Release::2017.1
|
#include <ParallelColumnDataWriter.hpp>
Public Member Functions | |
ParallelColumnDataWriter (const std::string &rDirectory, const std::string &rBaseName, bool cleanDirectory=true) | |
virtual | ~ParallelColumnDataWriter () |
void | PutVector (int variableID, Vec petscVector) |
void | PutVectorStripe (int variableId, DistributedVector::Stripe &rStripe) |
void | PutVariable (int variableID, double variableValue, long dimensionPosition=-1) |
void | EndDefineMode () |
void | AdvanceAlongUnlimitedDimension () |
void | Close () |
Public Member Functions inherited from ColumnDataWriter | |
ColumnDataWriter (const std::string &rDirectory, const std::string &rBaseName, bool cleanDirectory=true, unsigned precision=8) | |
virtual | ~ColumnDataWriter () |
int | DefineUnlimitedDimension (const std::string &rDimensionName, const std::string &rDimensionUnits) |
int | DefineFixedDimension (const std::string &rDimensionName, const std::string &rDimensionUnits, long dimensionSize) |
int | DefineVariable (const std::string &rVariableName, const std::string &rVariableUnits) |
void | SetCommentForInfoFile (std::string comment) |
std::string | GetOutputDirectory () |
Public Member Functions inherited from AbstractDataWriter | |
virtual | ~AbstractDataWriter () |
Private Attributes | |
bool | mIsParallel |
Vec | mConcentrated |
VecScatter | mToMaster |
A parallelised column data writer class.
Definition at line 49 of file ParallelColumnDataWriter.hpp.
ParallelColumnDataWriter::ParallelColumnDataWriter | ( | const std::string & | rDirectory, |
const std::string & | rBaseName, | ||
bool | cleanDirectory = true |
||
) |
Constructor.
rDirectory | the directory in which to write the data to file |
rBaseName | the name of the file in which to write the data |
cleanDirectory | whether to clean the directory (defaults to true) |
Definition at line 40 of file ParallelColumnDataWriter.cpp.
References mIsParallel.
|
virtual |
Destructor.
Definition at line 148 of file ParallelColumnDataWriter.cpp.
References Close(), PetscTools::Destroy(), mConcentrated, mToMaster, and PETSC_DESTROY_PARAM.
|
virtual |
Advance along the unlimited dimension. Normally this will be called when all variables in a row have been input.
Reimplemented from ColumnDataWriter.
Definition at line 158 of file ParallelColumnDataWriter.cpp.
References PetscTools::AmMaster(), PetscTools::Barrier(), and ColumnDataWriter::DoAdvanceAlongUnlimitedDimension().
|
virtual |
Close any open files.
Reimplemented from ColumnDataWriter.
Definition at line 169 of file ParallelColumnDataWriter.cpp.
References PetscTools::AmMaster(), PetscTools::Barrier(), and ColumnDataWriter::Close().
Referenced by ~ParallelColumnDataWriter().
|
virtual |
End the define mode of the DataWriter.
Reimplemented from ColumnDataWriter.
Definition at line 119 of file ParallelColumnDataWriter.cpp.
References PetscTools::AmMaster(), ColumnDataWriter::EndDefineMode(), and ColumnDataWriter::mIsInDefineMode.
|
virtual |
Input the variable value to the output file or ancillary file
variableID | |
variableValue | |
dimensionPosition | The position in column (defaults to -1). This is required if there is a fixed dimension, and will be the position along that dimension |
There are two ways of calling PutVariable: 1) All processes call it as a collective operation from the user's code. This only makes sense if they are writing the unlimited dimension (time) variable. It is actually a no-op if any non-master process attempts to write anything at all. 2) The master calls the equivalent method in the parent class after concentrating the data into a single Vec (ie. from the method PutVector() above).
Reimplemented from ColumnDataWriter.
Definition at line 139 of file ParallelColumnDataWriter.cpp.
References PetscTools::AmMaster(), and ColumnDataWriter::PutVariable().
void ParallelColumnDataWriter::PutVector | ( | int | variableID, |
Vec | petscVector | ||
) |
Write data for a given variable from a PETSc vector to the dataset.
variableID | the variable |
petscVector | the data |
Definition at line 58 of file ParallelColumnDataWriter.cpp.
References PetscTools::AmMaster(), EXCEPTION, mConcentrated, ColumnDataWriter::mFixedDimensionSize, mToMaster, and ColumnDataWriter::PutVariable().
Referenced by PutVectorStripe().
void ParallelColumnDataWriter::PutVectorStripe | ( | int | variableId, |
DistributedVector::Stripe & | rStripe | ||
) |
Write data for a given variable from a stripe to the dataset.
variableId | the variable |
rStripe | the data |
Definition at line 101 of file ParallelColumnDataWriter.cpp.
References DistributedVector::Begin(), DistributedVectorFactory::CreateDistributedVector(), DistributedVectorFactory::CreateVec(), PetscTools::Destroy(), DistributedVector::End(), DistributedVector::Stripe::GetFactory(), and PutVector().
|
private |
Vector to hold concentrated copy of distributed vector on the master process
Definition at line 54 of file ParallelColumnDataWriter.hpp.
Referenced by PutVector(), and ~ParallelColumnDataWriter().
|
private |
Set to true in constructor if running in parallel
Definition at line 53 of file ParallelColumnDataWriter.hpp.
Referenced by ParallelColumnDataWriter().
|
private |
variable holding information for concentrating a vector
Definition at line 55 of file ParallelColumnDataWriter.hpp.
Referenced by PutVector(), and ~ParallelColumnDataWriter().