Todo List

Member AbstractBidomainSolver::InitialiseForSolve (Vec initialSolution)
: block preconditioners only make sense in Bidomain... Add some warning/error message

Member AbstractBidomainSolver::InitialiseForSolve (Vec initialSolution)
: #1082 only works if you know about the whole mesh.

Member AbstractBidomainSolver::CheckCompatibilityCondition ()
#1327 This could be a collective MPI-like operation

Member AbstractBidomainSolver::FinaliseForBath (bool computeMatrix, bool computeVector)
: #1215 #1328 this seems not to be an issue anymore. Document and remove code.

Member AbstractBidomainSolver::FinaliseForBath (bool computeMatrix, bool computeVector)
#1328 This code may no longer be needed since all the operations in the following loop may apply only to local elements. MatSetValue and VecSetValue are not collective...

Member AbstractCardiacProblem::save (Archive &archive, const unsigned int version) const
#1317 code for saving/loading mSolution is PROBLEM_DIM specific, move it into the save/load methods fo Mono and BidomainProblem

Member AbstractCardiacProblem::save (Archive &archive, const unsigned int version) const
#1369

Member AbstractCardiacProblem::load (Archive &archive, const unsigned int version)
#1317 code for saving/loading mSolution is PROBLEM_DIM specific, move it into the save/load methods fo Mono and BidomainProblem

Member AbstractCardiacProblem::load (Archive &archive, const unsigned int version)
#1317 is there a reason we can't use PETSc's load/save vector functionality?

Member AbstractCardiacProblem::Solve ()
#1318 the following line will deadlock if not every process throws in the Solve call

Member AbstractCardiacProblem::InitialiseWriter ()
1242

Member AbstractCardiacProblem::LoadExtraArchive (Archive &archive, unsigned version)
#1159 sanity check that the contents of p_bcc and mpBoundaryConditionsContainer match.

Member AbstractCardiacTissue::CreateIntracellularConductivityTensor ()
#1316 Create a class defining constant tensors to be used when no fibre orientation is provided.

Member AbstractCardiacTissue::LoadCardiacCells (Archive &archive, const unsigned int version, std::vector< AbstractCardiacCell * > &rCells, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
#1199 test this

Member AbstractCellPopulation::AbstractCellPopulation (std::vector< CellPtr > &rCells, const std::vector< unsigned > locationIndices=stdvector< unsigned >())
remove explicit use of NUM_CELL_PROLIFERATIVE_TYPES and NUM_CELL_CYCLE_PHASES as these may eventually differ between simulations (see #1285)

Member AbstractConvergenceTester::Converge (std::string nameOfTest)
This is a scarily long method; could do with some parts extracted?

Member AbstractConvergenceTester::Converge (std::string nameOfTest)
consider reducing all stimuli to match this one.

Member AbstractConvergenceTester::Converge (std::string nameOfTest)
Cover this

Member AbstractConvergenceTester::DisplayRun ()
The UseAbsoluteStimulus is temporary, while we are sorting out 3D stimulus. It is to be removed later (along with StimulusConvergenceTester)

Class AbstractCvodeCell
#890 Add an option to just initialise once, and assume subsequent Solve calls are continuing from where we left off.

Class AbstractCvodeCell
#889 Integrate this better into the main hierarchy?

Member AbstractCvodeCell::SetStateVariables (N_Vector stateVars)
#890 re-init CVODE here?

Member AbstractFeObjectAssembler::ComputeTransformedBasisFunctionDerivatives (const ChastePoint< ELEMENT_DIM > &rPoint, const c_matrix< double, ELEMENT_DIM, SPACE_DIM > &rInverseJacobian, c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rReturnValue)
#1319 Template LinearBasisFunction over SPACE_DIM and remove this method?

Member AbstractFeObjectAssembler::AssembleOnElement (Element< ELEMENT_DIM, SPACE_DIM > &rElement, c_matrix< double, PROBLEM_DIM *(ELEMENT_DIM+1), PROBLEM_DIM *(ELEMENT_DIM+1) > &rAElem, c_vector< double, PROBLEM_DIM *(ELEMENT_DIM+1)> &rBElem)
#1320 This assumes that the Jacobian is constant on an element. This is true for linear basis functions, but not for any other type of basis function.

Member AbstractFeObjectAssembler::AssembleOnSurfaceElement (const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > &rSurfaceElement, c_vector< double, PROBLEM_DIM *ELEMENT_DIM > &rBSurfElem)
#1321 Improve efficiency of Neumann BC implementation.

Member AbstractIsotropicIncompressibleMaterialLaw::Get_dW_dI1 (double I1, double I2)=0
The name of this method should not include underscores.

Member AbstractIsotropicIncompressibleMaterialLaw::Get_dW_dI2 (double I1, double I2)=0
The name of this method should not include underscores.

Member AbstractIsotropicIncompressibleMaterialLaw::Get_d2W_dI1 (double I1, double I2)=0
The name of this method should not include underscores.

Member AbstractIsotropicIncompressibleMaterialLaw::Get_d2W_dI2 (double I1, double I2)=0
The name of this method should not include underscores.

Member AbstractIsotropicIncompressibleMaterialLaw::Get_d2W_dI1I2 (double I1, double I2)=0
The name of this method should not include underscores.

Member AbstractMesh::CalculateBoundingBox () const
#1322 use a const version of NodeIterator here

Member AbstractOdeSystem::rGetConstStateVariables () const
move to AbstractParameterisedSystem? (1540)

Member AbstractTetrahedralMesh::save (Archive &archive, const unsigned int version) const
#1200 This is bad for very large meshes. Consider making a symlink and just writing the permutation. Perhaps even copy the permutation file from an earlier checkpoint?

Member AbstractTetrahedralMesh::load (Archive &archive, const unsigned int version)
#1199 make this work for everything else...

Member AbstractTetrahedralMesh::ConstructFromMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rOtherMesh)
Can we make this const?

Member AbstractTetrahedralMeshWriter::WriteFilesUsingMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, bool keepOriginalElementIndexing=true)
#1322 Mesh should really be const!

Member AbstractTetrahedralMeshWriter::WriteFilesUsingMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, bool keepOriginalElementIndexing=true)
#1322 Mesh should be const

Member AbstractTetrahedralMeshWriter::WriteFilesUsingMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, bool keepOriginalElementIndexing=true)
#1322 This should be const too

Member Alarcon2004OxygenBasedCellCycleOdeSystem::Alarcon2004OxygenBasedCellCycleOdeSystem (double oxygenConcentration, bool isLabelled, std::vector< double > stateVariables=stdvector< double >())
should this be 0.004??

Member BidomainProblem::AtBeginningOfTimestep (double time)
#1159 #1324 heart/src/problem/AbstractCardiacProblem.hpp:657 expects both pointing at the same place when unarchiving

Member BidomainProblem::LoadExtraArchiveForBidomain (Archive &archive, unsigned version)
#1159 sanity check that the contents of p_bcc and mpElectrodes->GetBoundaryConditionsContainer() match.

Class BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >
#1321 Various operations are currently very inefficient - there is certainly scope for optimisation here!

Member BoundaryConditionsContainer::HasNeumannBoundaryCondition (const BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > *pSurfaceElement, unsigned indexOfUnknown=0)
#1321 This is a horrendously inefficient fix. Perhaps have flag in element object?

Member CardiacElectroMechanicsProblem::WriteWatchedLocationData (double time, Vec voltage)
Improve efficiency of this method?

Member CardiacElectroMechanicsProblem::CardiacElectroMechanicsProblem (ContractionModel contractionModel, TetrahedralMesh< DIM, DIM > *pElectricsMesh, QuadraticMesh< DIM > *pMechanicsMesh, std::vector< unsigned > fixedMechanicsNodes, AbstractCardiacCellFactory< DIM > *pCellFactory, double endTime, double electricsPdeTimeStep, unsigned numElecTimeStepsPerMechTimestep, double contractionModelOdeTimeStep, std::string outputDirectory)
Cover these lines

Member CardiacSimulationArchiver::Save (PROBLEM_CLASS &simulationToArchive, const std::string &rDirectory, bool clearDirectory=true)
#1026 get a real version number!

Member Cell::GetMutationState () const
allow a cell to have less/more than one mutation state? (#1285)

Member Cell::AddCellProperty (const boost::shared_ptr< AbstractCellProperty > &rProperty)
Be stricter and throw an exception if rProperty is already in mCellPropertyCollection? (#1285)

Member Cell::RemoveCellProperty ()
Be stricter and throw an exception if cell does not have this property? (#1285)

Member CellBasedSimulation::CalculateCellDivisionVector (CellPtr pParentCell)
Could remove this dynamic_cast by moving the code block below into AbstractCentreBasedCellPopulation::AddCell(), allowing it to be overruled by this method when overridden in subclasses. See also comment on #1093.

Member CellBasedSimulation::OutputSimulationSetup ()
Loop over cell cycle models (#1453)

Member CellBasedSimulationWithPdes::PostSolve ()
Worry about round-off errors

Member CellBasedSimulationWithPdes::CreateCoarsePdeMesh (double coarseGrainScaleFactor)
currently only works in 2D (see #737)

Member CellBasedSimulationWithPdes::SetPdeAndBcCollection (std::vector< PdeAndBoundaryConditions< DIM > * > pdeAndBcCollection)
Check if archiving has been implemented yet for PDE classes (#1460)

Class CellCycleModelOdeSolver< CELL_CYCLE_MODEL, BackwardEulerIvpOdeSolver >
there must be an easier way to deal with this peculiarity (#1427)

Member CmguiMeshWriter::WriteFiles ()
: EXCEPTION maybe...

Member CML_noble_varghese_kohl_noble_1998_basic_with_sac::GetIIonic ()
we need to + Ask JonC to amend PyCml if necessary

Member ColumnDataReader::mVariablesToColumns
Change int to unsigned? (#991)

Class CryptSimulationArchiver< DIM, SIM >
reduce code duplication with CellBasedSimulationArchiver (#1568)

Class CvodeAdaptor
Add an option to just initialise once, and assume subsequent Solve calls are continuing from where we left off.

Member DistanceMapCalculator::SingleDistance (unsigned sourceNodeIndex, unsigned destinationNodeIndex)
#1414 premature termination when we find the correct one (parallel)

Member DistributedTetrahedralMesh::ConstructFromMeshReader (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader)
#1289 assert the node is not considered both owned and halo-owned.

Member DistributedTetrahedralMesh::ComputeMeshPartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::set< unsigned > &rNodesOwned, std::set< unsigned > &rHaloNodesOwned, std::set< unsigned > &rElementsOwned, std::vector< unsigned > &rProcessorsOffset)
#1293 add a timing event for the partitioning

Member DistributedTetrahedralMesh::PetscMatrixPartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::set< unsigned > &rNodesOwned, std::vector< unsigned > &rProcessorsOffset)
change the number 54 below (row nonzero allocation) to be nonmagic

Member DistributedTetrahedralMesh::PetscMatrixPartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::set< unsigned > &rNodesOwned, std::vector< unsigned > &rProcessorsOffset)
: This assembly is likely to generate many communications. Try to interleave other operations by executing them between Begin() and End().

Member Element::CalculateXi (const ChastePoint< SPACE_DIM > &rTestPoint)
#1326 This method shouldn't need a new Jacobian inverse for every Xi

Class Exception
Might we want this class to inherit from STL exceptions?

Member ExponentialMaterialLaw::Get_dW_dI1 (double I1, double I2)
The name of this method should not include underscores.

Member ExponentialMaterialLaw::Get_dW_dI2 (double I1, double I2)
The name of this method should not include underscores.

Member ExponentialMaterialLaw::Get_d2W_dI1 (double I1, double I2)
The name of this method should not include underscores.

Member ExponentialMaterialLaw::Get_d2W_dI2 (double I1, double I2)
The name of this method should not include underscores.

Member ExponentialMaterialLaw::Get_d2W_dI1I2 (double I1, double I2)
The name of this method should not include underscores.

Member FineCoarseMeshPair::ComputeFineElementAndWeightForGivenPoint (ChastePoint< DIM > &rPoint, bool safeMode, unsigned boxForThisPoint, unsigned index)
: could possibly merge with ComputeCoarseElementForGivenPoint(). Difference between the methods are: this uses fine mesh and fine mesh box, computes weights as well (and sets the element and weight in the vec), rather than returning the element, and this method saves information in mStatisticsCounters

Member FineCoarseMeshPair::ComputeCoarseElementForGivenPoint (ChastePoint< DIM > &rPoint, bool safeMode, unsigned boxForThisPoint)
: could possibly merge with ComputeFineElementAndWeightForGivenPoint(). Differences between the methods are: the other method uses fine mesh and fine mesh box, computes weights as well (and sets the element and weight in the vec), rather than returning the element, and that method saves information in mStatisticsCounters

Member GeneralPlaneStimulusCellFactory::GeneralPlaneStimulusCellFactory (unsigned numEleAcross, double meshWidth, bool useMeshWidthAsMag=false, double stimulusMagnitude=-1e7, double stimulusDuration=0.5)
The useMeshWidth is temporary, while we are sorting out 3D stimulus. It is to be removed later (along with StimulusConvergenceTester) scale stimulus depending on space_step of elements

Member GeneralPlaneStimulusCellFactory::GeneralPlaneStimulusCellFactory (unsigned numEleAcross, double meshWidth, bool useMeshWidthAsMag=false, double stimulusMagnitude=-1e7, double stimulusDuration=0.5)
It looks like the value of the stimulus is specific to 3D

Class Hdf5DataReader
: magic number

Member Hdf5DataReader::MAX_DATASET_RANK
: define it once

Member Hdf5DataReader::GetVariableOverNodes (Vec data, const std::string &rVariableName, unsigned timestep=0)
Use DistributedVector?

Member Hdf5DataReader::Close ()
: move code to the destructor???

Member Hdf5DataWriter::DATASET_DIMS
: define it once

Member Hdf5DataWriter::PutStripedVector (std::vector< int > variableIDs, Vec petscVector)
Use distributed vector functionality here?

Member Hdf5DataWriter::Hdf5DataWriter (DistributedVectorFactory &rVectorFactory, const std::string &rDirectory, const std::string &rBaseName, bool cleanDirectory=true, bool extendData=false)
1300 We can't set mDataFixedDimensionSize, because the information isn't in the input file. This means that checking the size of input vectors in PutVector and PutStripedVector is impossible.

Member Hdf5ToCmguiConverter::Hdf5ToCmguiConverter (std::string inputDirectory, std::string fileBaseName, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, bool hasBath=false)
What if the mesh has been scaled, translated or rotated?

Member Hdf5ToMeshalyzerConverter::Hdf5ToMeshalyzerConverter (std::string inputDirectory, std::string fileBaseName, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
What if the mesh has been scaled, translated or rotated?

Member Hdf5ToVtkConverter::Hdf5ToVtkConverter (std::string inputDirectory, std::string fileBaseName, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
Can we get this as a std::vector?

Member Hdf5ToVtkConverter::Hdf5ToVtkConverter (std::string inputDirectory, std::string fileBaseName, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh)
What if the mesh has been scaled, translated or rotated?

Member HeartConfig::GetIonicModelRegions (std::vector< ChasteCuboid< DIM > > &rDefinedRegions, std::vector< cp::ionic_model_selection_type > &rIonicModels) const
When this is implemented, then we require an example in ChasteParametersFullFormat.xml

Member HeartConfig::SetIonicModelRegions (std::vector< ChasteCuboid< 3 > > &rDefinedRegions, std::vector< cp::ionic_model_selection_type > &rIonicModels) const
will this break if the user parameters don't include an IonicModels element?

Member HeartConfig::GetSlabDimensions (c_vector< double, 3 > &slabDimensions) const
IsMeshProvided and GetLoadMesh are subtly different but very similar. Can one of them go?

Member HeartConfig::GetStimuli (std::vector< boost::shared_ptr< AbstractStimulusFunction > > &rStimuliApplied, std::vector< ChasteCuboid< DIM > > &rStimulatedAreas) const
- do we assume the vectors are initially empty? The returned std::vectors are all of the same length

Member HeartConfig::GetStimuli (std::vector< boost::shared_ptr< AbstractStimulusFunction > > &rStimuliApplied, std::vector< ChasteCuboid< DIM > > &rStimulatedAreas) const
There is no set method

Member HeartConfig::GetCellHeterogeneities (std::vector< AbstractChasteRegion< DIM > * > &rCellHeterogeneityRegions, std::vector< double > &rScaleFactorGks, std::vector< double > &rScaleFactorIto, std::vector< double > &rScaleFactorGkr, std::vector< std::map< std::string, double > > *pParameterSettings)
- do we assume the vectors are initially empty? The returned std::vectors are all of the same length

Member HeartConfig::GetCellHeterogeneities (std::vector< AbstractChasteRegion< DIM > * > &rCellHeterogeneityRegions, std::vector< double > &rScaleFactorGks, std::vector< double > &rScaleFactorIto, std::vector< double > &rScaleFactorGkr, std::vector< std::map< std::string, double > > *pParameterSettings)
There is no set method

Member HeartConfig::GetConductivityHeterogeneities (std::vector< AbstractChasteRegion< DIM > * > &conductivitiesHeterogeneityAreas, std::vector< c_vector< double, 3 > > &intraConductivities, std::vector< c_vector< double, 3 > > &extraConductivities) const
- do we assume the vectors are initially empty? The returned std::vectors are all of the same length

Member HeartConfig::GetConductivityHeterogeneities (std::vector< AbstractChasteRegion< DIM > * > &conductivitiesHeterogeneityAreas, std::vector< c_vector< double, 3 > > &intraConductivities, std::vector< c_vector< double, 3 > > &extraConductivities) const
When this is implemented, then we require an example in ChasteParametersFullFormat.xml

Member HeartConfig::GetCheckpointSimulation () const
#1160 What code covers this? Should be removed ideally.

Member HeartConfig::GetCheckpointTimestep () const
#1160 What code covers this? Should be removed ideally.

Member HeartConfig::GetMaxCheckpointsOnDisk () const
#1160 What code covers this? Should be removed ideally.

Member HeartConfig::SetMeshFileName (std::string meshPrefix, cp::media_type fibreDefinition=cpmedia_type::NoFibreOrientation)
There is no Get method

Member HeartConfig::SetOutputVariables (const std::vector< std::string > &rOutputVariables)
#1596 is this no longer needed?

Member HeartConfig::SetBathConductivity (double bathConductivity)
Is this used anywhere?

Member HeartConfig::SetAdaptivityParameters (double targetError, double sigma, double maxEdgeLength, double minEdgeLength, double gradation, unsigned maxNodes, unsigned numSweeps)
I think you can just do the 'if' clause regardless.

Member HeartConfig::SetUpstrokeTimeMaps (std::vector< double > &rUpstrokeTimeMaps)
improve the description of threshold) with respect to which the upstroke time maps are calculated.

Member HeartConfig::SetMaxUpstrokeVelocityMaps (std::vector< double > &rMaxUpstrokeVelocityMaps)
improve the description of threshold) with respect to which the upstroke velocity maps are calculated.

Member Identifiable::TidyTemplatedExportIdentifier (std::string identifier) const
#1453 - implement the following if needed if (i != identifier.npos) { identifier.replace(i, s_comma.length(), s_dash); }

Member LinearSystem::mOwnershipRangeLo
Verify claim that ownership range for Vec and Mat is same. This should only matter for efficiency if the claim is false.

Member LinearSystem::mpBlockDiagonalPC
: #1082 Create an abstract class for the preconditioners and use a single pointer

Member LinearSystem::SetMatrixIsSymmetric (bool isSymmetric=true)
: shall we allow modifying the symmetry flag anytime?

Member LinearSystem::SetPcType (const char *pcType, boost::shared_ptr< std::vector< PetscInt > > pBathNodes=boostshared_ptr< std::vector< PetscInt > >())
: #1082 is this the way of defining a null pointer as the default value of pBathNodes?

Member LinearSystem::SetPcType (const char *pcType, boost::shared_ptr< std::vector< PetscInt > > pBathNodes=boostshared_ptr< std::vector< PetscInt > >())
: #1082 use a single pointer to abstract class

Member LinearSystem::Solve (Vec lhsGuess=NULL)
never tested in linalg component

Member LinearSystem::Solve (Vec lhsGuess=NULL)
Should it be compulsory for the caller to supply this and manage the memory?

Member LinearSystem::LinearSystem (PetscInt lhsVectorSize, unsigned rowPreallocation=UINT_MAX)
: if we create a linear system object outside a cardiac solver, these are gonna be the default solver and preconditioner. Not consitent with ChasteDefaults.xml though...

Member LinearSystem::LinearSystem (Vec templateVector, unsigned rowPreallocation)
: if we create a linear system object outside a cardiac solver, these are gonna be the default solver and preconditioner. Not consitent with ChasteDefaults.xml though...

Member LinearSystem::LinearSystem (Vec residualVector, Mat jacobianMatrix)
: if we create a linear system object outside a cardiac solver, these are gonna be the default solver and preconditioner. Not consitent with ChasteDefaults.xml though...

Member LinearSystem::~LinearSystem ()
Never tested in linalg component

Member MeshBasedCellPopulation::mpVoronoiTessellation
Make this static/const? (#1075)

Member MooneyRivlinMaterialLaw::Get_dW_dI1 (double I1, double I2)
The name of this method should not include underscores.

Member MooneyRivlinMaterialLaw::Get_dW_dI2 (double I1, double I2)
The name of this method should not include underscores.

Member MooneyRivlinMaterialLaw::Get_d2W_dI1 (double I1, double I2)
The name of this method should not include underscores.

Member MooneyRivlinMaterialLaw::Get_d2W_dI2 (double I1, double I2)
The name of this method should not include underscores.

Member MooneyRivlinMaterialLaw::Get_d2W_dI1I2 (double I1, double I2)
The name of this method should not include underscores.

Member MutableMesh::CheckIsVoronoi (Element< ELEMENT_DIM, SPACE_DIM > *pElement, double maxPenetration)
Should use a set union operation here

Member MutableMesh::RescaleMeshFromBoundaryNode (ChastePoint< 1 > updatedPoint, unsigned boundaryNodeIndex)
should unsigned GetNumBoundaryNodes() be overloaded too??

Member MutableMesh::CheckIsVoronoi (double maxPenetration=0.0)
use ElementIterator here?

Member MutableVertexMesh::DivideElement (VertexElement< ELEMENT_DIM, SPACE_DIM > *pElement, unsigned nodeAIndex, unsigned nodeBIndex, bool placeOriginalElementBelow=false)
This method currently assumes SPACE_DIM = 2 (see #866)

Member MutableVertexMesh::DivideElement (VertexElement< ELEMENT_DIM, SPACE_DIM > *pElement, unsigned nodeAIndex, unsigned nodeBIndex, bool placeOriginalElementBelow=false)
this could be more efficient

Member MutableVertexMesh::CheckForT1Swaps (VertexElementMap &rElementMap)
This method currently assumes SPACE_DIM = 2 (see #866)

Member MutableVertexMesh::CheckForT1Swaps (VertexElementMap &rElementMap)
use iterators to tidy this up

Member MutableVertexMesh::CheckForT2Swaps (VertexElementMap &rElementMap)
This method currently assumes SPACE_DIM = 2 (see #866)

Member MutableVertexMesh::CheckForIntersections ()
This method currently assumes SPACE_DIM = 2 (see #866)

Member MutableVertexMesh::IdentifySwapType (Node< SPACE_DIM > *pNodeA, Node< SPACE_DIM > *pNodeB, VertexElementMap &rElementMap)
This method currently assumes SPACE_DIM = 2 (see #866)

Member MutableVertexMesh::PerformT1Swap (Node< SPACE_DIM > *pNodeA, Node< SPACE_DIM > *pNodeB, std::set< unsigned > &rElementsContainingNodes)
This method currently assumes SPACE_DIM = 2 (see #866)

Member MutableVertexMesh::PerformT1Swap (Node< SPACE_DIM > *pNodeA, Node< SPACE_DIM > *pNodeB, std::set< unsigned > &rElementsContainingNodes)
this is a magic number - think of something better

Member MutableVertexMesh::PerformT2Swap (VertexElement< ELEMENT_DIM, SPACE_DIM > &rElement)
This method currently assumes SPACE_DIM = 2 (see #866)

Member MutableVertexMesh::DivideElementAlongShortAxis (VertexElement< ELEMENT_DIM, SPACE_DIM > *pElement, bool placeOriginalElementBelow=false)
This method currently assumes SPACE_DIM = 2 (see #866)

Member MutableVertexMesh::DivideElementAlongGivenAxis (VertexElement< ELEMENT_DIM, SPACE_DIM > *pElement, c_vector< double, SPACE_DIM > axisOfDivision, bool placeOriginalElementBelow=false)
This method currently assumes SPACE_DIM = 2 (see #866)

Member MutableVertexMesh::DivideElementAlongGivenAxis (VertexElement< ELEMENT_DIM, SPACE_DIM > *pElement, c_vector< double, SPACE_DIM > axisOfDivision, bool placeOriginalElementBelow=false)
or should we move a and b apart, it may interfere with neighboring edges? (see #1399)

Member MutableVertexMesh::ReMesh (VertexElementMap &rElementMap)
put code for remeshing in 3D here - see #866 and the paper doi:10.1016/j.jtbi.2003.10.001

Class NonlinearElasticitySolver< DIM >
: factor out Dof handling?

Member OdeSystemInformation::mpInstance
see if using weak_ptr would work and give funkier semantics (automatically destroy the singleton when no ODE systems were using it)

Class pack< void(T)>
Check if we need this on Boost>=1.38. Even if it's not needed there, we might still need it to load earlier archives.

Member ParallelColumnDataWriter::PutVectorStripe (int variableId, DistributedVector::Stripe &rStripe)
allow this to be a const-reference

Member PCLDUFactorisation::PCLDUFactorisationContext::PC_amg_A11
- don't create this every iteration but save it first time is needed.

Member PCLDUFactorisation::PCLDUFactorisationContext::PC_amg_A22
- don't create this every iteration but save it first time is needed.

Class PCTwoLevelsBlockDiagonal
: #1082 update this description

Member PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate (KSP &rKspObject, std::vector< PetscInt > &rBathNodes)
: #1082 won't work in parallel

Member PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate (KSP &rKspObject, std::vector< PetscInt > &rBathNodes)
: #1082 assert size(x1) = size(x21) + size(x22)

Member PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate (KSP &rKspObject, std::vector< PetscInt > &rBathNodes)
: #1082 legacy, no need to use the references

Member PCTwoLevelsBlockDiagonal::PCTwoLevelsBlockDiagonalCreate (KSP &rKspObject, std::vector< PetscInt > &rBathNodes)
: #1082 OK in parallel. Use as an example for the other two blocks

Member PetscTools::SetupMat (Mat &rMat, int numRows, int numColumns, unsigned rowPreallocation, int numLocalRows=PETSC_DECIDE, int numLocalColumns=PETSC_DECIDE)
#1216 Fix the 1, 0.7 hack

Member PetscTools::ReadPetscObject (Mat &rMat, const std::string &rOutputFileFullPath, Vec rParallelLayout=NULL)
: #1082 work out appropriate nz allocation.

Member PolynomialMaterialLaw3d::Get_dW_dI1 (double I1, double I2)
The name of this method should not include underscores.

Member PolynomialMaterialLaw3d::Get_dW_dI2 (double I1, double I2)
The name of this method should not include underscores.

Member PolynomialMaterialLaw3d::Get_d2W_dI1 (double I1, double I2)
The name of this method should not include underscores.

Member PolynomialMaterialLaw3d::Get_d2W_dI2 (double I1, double I2)
The name of this method should not include underscores.

Member PolynomialMaterialLaw3d::Get_d2W_dI1I2 (double I1, double I2)
The name of this method should not include underscores.

Member PostProcessingWriter::WriteAboveThresholdDepolarisationFile (double threshold)
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

Member QuadraticMesh::HelperMethod1 (unsigned boundaryElemNode0, unsigned boundaryElemNode1, Element< DIM, DIM > *pElement, unsigned node0, unsigned node1, unsigned node2, unsigned &rOffset, bool &rReverse)
document these parameters

Member QuadraticMesh::HelperMethod2 (BoundaryElement< DIM-1, DIM > *pBoundaryElement, Element< DIM, DIM > *pElement, unsigned internalNode0, unsigned internalNode1, unsigned internalNode2, unsigned offset, bool reverse)
document these parameters

Member QuadraturePointsGroup::Get (unsigned elementIndex, unsigned quadIndex)
this method should be renamed rGet() as it returns a reference

Member QuadraturePointsGroup::Get (unsigned i)
this method should be renamed rGet() as it returns a reference

Member TetrahedralMesh::ImportFromMesher (MESHER_IO &mesherOutput, unsigned numberOfElements, int *elementList, unsigned numberOfFaces, int *faceList, int *edgeMarkerList)
#1545 ...)

Member TrianglesMeshReader::OpenNodeFile ()
Change name to OpenNodesFile for consistency with OpenElementsFile and OpenFacesFile? (#991)

Member VertexBasedCellPopulation::GetLocationOfCellCentre (CellPtr pCell)
If required, we could come up with a more clever definition of cell location for a VertexCellPopulation (for example, there is no guarantee of convexity so the centre of mass may lie outside the element)

Member VertexBasedCellPopulation::VertexBasedCellPopulation (MutableVertexMesh< DIM, DIM > &rMesh, std::vector< CellPtr > &rCells, bool deleteMesh=false, bool validate=true, const std::vector< unsigned > locationIndices=stdvector< unsigned >())
we should be able to do this, but mBoundaryNodes is not used in vertex meshes (#1558)

Member VertexMesh::SolveBoundaryElementMapping (unsigned index) const
sort out boundary elements in a vertex mesh (#1263)

Member VertexMesh::GetCentroidOfElement (unsigned index)
Why isn't this just the centre of mass? (#1075)

Member VertexMesh::VertexMesh (TetrahedralMesh< 2, 2 > &rMesh, bool isPeriodic=false)
Merge with 3D Voronoi constructor? (#1075)

Member VertexMesh::VertexMesh (TetrahedralMesh< 3, 3 > &rMesh)
Merge with 2D Voronoi constructor? (#1075)

Class VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexElementIterator
This is the same as in AbstractTetrahedralMesh - merge? (#1379)

Member VertexMeshReader::GetNumFaces () const
Implement this method (#1076)

Member VertexMeshReader::GetNextFaceData ()
Implement this method (#1076, #1377)

Member VertexMeshReader::GetNumEdges () const
Implement this method (#1076)

Member VertexMeshReader::GetNextElementDataWithFaces ()
Store face orientations? (#1076/#1377)

Member VertexMeshWriter::mpVtkUnstructedMesh
Merge into VtkMeshWriter (#1076)

Member VertexMeshWriter::WriteFilesUsingMesh (VertexMesh< ELEMENT_DIM, SPACE_DIM > &rMesh)
Mesh should be const (#1076)

Member VertexMeshWriter::WriteFilesUsingMesh (VertexMesh< ELEMENT_DIM, SPACE_DIM > &rMesh)
Mesh should be const (#1076)

Member VertexMeshWriter::GetNextElement ()
Assert this method should only be called in 2D? (#1076/#1377)

Member VertexMeshWriter::GetNextElement ()
: set attribute (#1076)

Member VertexMeshWriter::GetNextElementWithFaces ()
Store face orientations? (#1076/#1377)

Member VertexMeshWriter::GetNextElementWithFaces ()
set attribute (#1076)

Member VertexMeshWriter::WriteFiles ()
write element attributes if necessary

Member VertexMeshWriter::WriteFiles ()
Store face orientations? (#1076/#1377)

Member VertexMeshWriter::WriteFiles ()
write element attribute (#1076/#1377)

Class VtkMeshReader< ELEMENT_DIM, SPACE_DIM >
Provide <2,2> functionality

File NobleVargheseKohlNoble1998WithSac.hpp
: do something with this..

Member CalculateEigenvectorForSmallestNonzeroEigenvalue
Only covered by TestPapillaryFibreCalculator, cover in TestUblasCustomFunctions.hpp

Generated on Mon Nov 1 12:35:28 2010 for Chaste by  doxygen 1.5.5