Chaste Release::3.1
Todo List

Member AbstractBidomainSolver< ELEMENT_DIM, SPACE_DIM >::InitialiseForSolve (Vec initialSolution)

: block preconditioners only make sense in Bidomain... Add some warning/error message

: #1082 only works if you know about the whole mesh.

Member AbstractCardiacMechanicsSolver< ELASTICITY_SOLVER, DIM >::SetCalciumAndVoltage (std::vector< double > &rCalciumConcentrations, std::vector< double > &rVoltages)
#1828 / #1211 don't pass in entire vector

Member AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CreateInitialCondition ()
Perhaps this should be a method of AbstractCardiacTissue??

Member AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::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

#1317 is there a reason we can't use PETSc's load/save vector functionality?

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

Member AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::PreSolveChecks ()
remove magic number? (#1884)

Member AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::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 for Mono and BidomainProblem

#1369

Member AbstractCardiacProblem< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::SetUseTimeAdaptivityController (bool useAdaptivity, AbstractTimeAdaptivityController *pController=NULL)
#1704 add default adaptivity controller and allow the user just to call with true

Member AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::CreateIntracellularConductivityTensor ()

#1316 Create a class defining constant tensors to be used when no fibre orientation is provided.

#1316 Create a class defining constant tensors to be used when no fibre orientation is provided.

Member AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::LoadCardiacCells (Archive &archive, const unsigned int version)
#1199 test this

Member AbstractCardiacTissue< ELEMENT_DIM, SPACE_DIM >::SolveCellSystems (Vec existingSolution, double time, double nextTime, bool updateVoltage=false)
#2017 This code will be needed in the future, not being covered now. Add a test which covers this, e.g. by doing a simulation with a bad stimulus for one of the Purkinje cells - stimulating with the wrong choice of sign say.

Member AbstractChasteRegion< SPACE_DIM >::Destroy ()
Proper memory management Cleans any data which the concrete class may have created (archiving)

Member AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::Converge (std::string nameOfTest)

This is a scarily long method; could do with some parts extracted?

consider reducing all stimuli to match this one.

remove magic number? (#1884)

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

Member AbstractDynamicallyLoadableEntity::~AbstractDynamicallyLoadableEntity ()
#1957

Member AbstractFeCableIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::AssembleOnCableElement (Element< CABLE_ELEMENT_DIM, SPACE_DIM > &rElement, c_matrix< double, PROBLEM_DIM *NUM_CABLE_ELEMENT_NODES, PROBLEM_DIM *NUM_CABLE_ELEMENT_NODES > &rAElem, c_vector< double, PROBLEM_DIM *NUM_CABLE_ELEMENT_NODES > &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 AbstractFeSurfaceIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::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 AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::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 AbstractFeVolumeIntegralAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX, INTERPOLATION_LEVEL >::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 AbstractIsotropicIncompressibleMaterialLaw< DIM >::Get_d2W_dI1 (double I1, double I2)=0
The name of this method should not include underscores.

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

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

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

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

Member AbstractLookupTableCollection::SetTableProperties (const std::string &rKeyingVariableName, double min, double step, double max)
remove magic number? (#1884)

Member AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundingBox () const
#1322 use a const version of NodeIterator here

Class AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::NodeIterator
#1930. We could roll most iterator functionality into a base class here

Member AbstractNonlinearElasticitySolver< DIM >::SetKspSolverAndPcType (KSP solver)

#2057 Make better choices here...

#2057 Make better choices..

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

Member AbstractTetrahedralElement< 0, SPACE_DIM >::CalculateNormal ()
should throw?

Member AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMinMaxEdgeLengths ()
Should be const

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

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

Member AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, bool keepOriginalElementIndexing=true)

#1322 Mesh should really be const!

#1322 Mesh should be const

#1322 This should be const too

#1322, This should be const too

Member AbstractTwoBodyInteractionForce< ELEMENT_DIM, SPACE_DIM >::AddForceContribution (std::vector< c_vector< double, SPACE_DIM > > &rForces, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM > &rCellPopulation)
this could be tidied by using the rGetNodePairs for all populatioins and moving the below calculation into the MutableMesh.

Member AdaptiveBidomainProblem::SetupNeumannBoundaryConditionOnMesh ()
remove magic number? (#1884)

Member AdaptiveTetrahedralMesh::Adapt ()
I can't see the point of this, since the VTK mesh is discarded (but not garbage collected)

Member AdhesionPottsUpdateRule< DIM >::mCellBoundaryAdhesionEnergyParameter
provide units

Member AdhesionPottsUpdateRule< DIM >::mCellCellAdhesionEnergyParameter
provide units

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

Member BidomainProblem< DIM >::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< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::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?

Class BuskeAdhesiveForce< DIM >
does this mean natural radius of a cell? If so at what age? (#1764) Time is in hours.

Class BuskeCompressionForce< DIM >
does this mean natural radius of a cell? If so at what age? (#1764) Time is in hours.

Member BuskeCompressionForce< DIM >::AddForceContribution (std::vector< c_vector< double, DIM > > &rForces, AbstractCellPopulation< DIM > &rCellPopulation)
Doesn't say in the Buske paper how they calculate this, so we need to look at this to be sure it's what we want (#1764)

Class BuskeElasticForce< DIM >
does this mean natural radius of a cell? If so at what age? (#1764) Time is in hours.

Member CardiacElectroMechanicsProblem< DIM, ELEC_PROB_DIM >::Initialise ()
This is fragile: check how the TimeStepper does it, and possibly refactor the behaviour there into a static helper method if it isn't already.

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

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

Member CellBasedPdeHandler< DIM >::CellBasedPdeHandler (AbstractCellPopulation< DIM > *pCellPopulation, bool deleteMemberPointersInDestructor=false)
change to exceptions (#1891)

Member CellBasedPdeHandler< DIM >::SolvePdeAndWriteResultsToFile (unsigned samplingTimestepMultiple)

enable this (#1891)

enable the coarse PDE mesh to change size, e.g. for a growing domain (#630/#1891)

enable this in the case where a coarse PDE mesh is used

Worry about round-off errors (#1891)

Member CellBasedPdeHandler< DIM >::WritePdeSolution (double time)
consider whether a different initial condition is more appropriate (#1891)

Member CellData::GetKeys () const
Note: Does the order of the keys matter? If so, then sort the vector + Doxygen

Member CellProperties::CalculateProperties ()
#1495 a horrible magic number but seems to work OK.

Member CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFiles ()
: EXCEPTION maybe...

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

Member CryptSimulationBoundaryCondition< DIM >::OutputCellPopulationBoundaryConditionParameters (out_stream &rParamsFile)
Can we abstract these XML out methods and do automatic indentation?

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

Member DeltaNotchOdeSystem::DeltaNotchOdeSystem (std::vector< double > stateVariables=std::vector< double >())
extract model parameters as member variables

Member DifferentialAdhesionPottsUpdateRule< DIM >::mLabelledCellBoundaryAdhesionEnergyParameter
provide units

Member DifferentialAdhesionPottsUpdateRule< DIM >::mLabelledCellCellAdhesionEnergyParameter
provide units

Member DifferentialAdhesionPottsUpdateRule< DIM >::mLabelledCellLabelledCellAdhesionEnergyParameter
provide units

Member DiffusionMultipleCaUpdateRule< DIM >::mDiffusionParameter
provide units

Member DiffusionMultipleCaUpdateRule< DIM >::mDt
#2066

Member DiffusionMultipleCaUpdateRule< DIM >::OutputUpdateRuleParameters (out_stream &rParamsFile)

#2066 return the time step (mDt) defined in the calculation of the probability of a cell moving to a certain site

#2066 define the time step (dt) defined in the calculation of the probability of a cell moving to a certain site

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

Member DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMinMaxEdgeLengths ()
Should be const

Member DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::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< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader)

#1930 We should use a reader set iterator for this bit now.

#1730 and we should be able to combine ASCII branch

#1930 We should use a reader set iterator for this bit now.

#1289 assert the node is not considered both owned and halo-owned.

Member DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::HaloNodeIterator
#1494, this iterator needs to be dereferenced twice because it is an STL iterator to a pointer.

Member DynamicModelLoaderRegistry::GetLoader (const std::string &rPath)

#1957 causes segfaults

#1957 remove when unloading working

Member Electrodes< DIM >::SwitchOff (double time)
remove magic number? (#1884)

Member Electrodes< DIM >::SwitchOn (double time)
remove magic number? (#1884)

Member Element< ELEMENT_DIM, SPACE_DIM >::CalculateXi (const ChastePoint< SPACE_DIM > &rTestPoint)

: #1361 ComputeContainingElements and related methods, and methods called by that down to here, should really take in const c_vector& rather than ChastePoints.

#1326 This method shouldn't need a new Jacobian inverse for every Xi

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

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

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

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

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

Member ExtendedBidomainProblem< DIM >::save (Archive &archive, const unsigned int version) const
#1369

Member ExtendedBidomainSolver< ELEM_DIM, SPACE_DIM >::SetupLinearSystem (Vec currentSolution, bool computeMatrix)
turn these into exceptions somewhere else

Member FineCoarseMeshPair< DIM >::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 FineCoarseMeshPair< DIM >::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 GeneralPlaneStimulusCellFactory< CELL, ELEMENT_DIM, SPACE_DIM >::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

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 Hdf5DataWriter::DATASET_DIMS
: define it once

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< ELEMENT_DIM, SPACE_DIM >::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< ELEMENT_DIM, SPACE_DIM >::Hdf5ToMeshalyzerConverter (std::string inputDirectory, std::string fileBaseName, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > *pMesh, bool usingOriginalNodeOrdering)
What if the mesh has been scaled, translated or rotated?

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

Member HeartConfig::GetCellHeterogeneities (std::vector< boost::shared_ptr< 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

There is no set method

Member HeartConfig::GetConductivityHeterogeneities (std::vector< boost::shared_ptr< 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

When this is implemented, then we require an example in ChasteParametersFullFormat.xml

Member HeartConfig::GetIonicModelRegions (std::vector< boost::shared_ptr< AbstractChasteRegion< 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::GetStimuli (std::vector< boost::shared_ptr< AbstractStimulusFunction > > &rStimuliApplied, std::vector< boost::shared_ptr< AbstractChasteRegion< DIM > > > &rStimulatedAreas) const

- do we assume the vectors are initially empty? The returned std::vectors are all of the same length

There is no set method

Member HeartConfig::HeartConfig ()
#1703 This defaults should be set in HeartConfigDefaults.hpp

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

Member HeartConfig::SetBathMultipleConductivities (std::map< unsigned, double > bathConductivities)
: This implementation is temporary until we incorporate the bath heterogeneities to the XML schema

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

Member HeartConfig::SetSurfaceAreaToVolumeRatio (double ratio)
#1703 Think about adding this convenience method either copying the existing BathIds, resetting them out of the way, or making them empty...

Member HeartGeometryInformation< SPACE_DIM >::LEFT_VENTRICLE_WALL
#1703 Perhaps add these constants to HeartConfig...

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::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::ResetKspSolver ()
#1695 Store this number in a member variable.

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=boost::shared_ptr< std::vector< PetscInt > >())

: #1082 is this the way of defining a null pointer as the default value of pBathNodes?

: #1082 use a single pointer to abstract class

: #1082 use a single pointer to abstract class

: #1082 use a single pointer to abstract class

Member LinearSystem::Solve (Vec lhsGuess=NULL)

never tested in linalg component

Should it be compulsory for the caller to supply this and manage the memory?

#1695 Store this number in a member variable.

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

Member MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetRestLength (unsigned indexA, unsigned indexB)
#2110 This code is not covered by any tests

Member MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetVolumeOfVoronoiElement (unsigned index)
This method is somewhat redundant following the introduction of the method GetVolumeOfCell() (see #1985).

Member MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::WriteCellVolumeResultsToFile ()
It would be simpler to merely iterate over the cell population here

Member MeshBasedCellPopulationWithGhostNodes< DIM >::WriteVtkResultsToFile ()
#1975

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

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

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

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

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

Class MultipleCaBasedCellPopulation< DIM >
This description is pasted from Potts. Please change it.

Member MultipleCaBasedCellPopulation< DIM >::WriteVtkResultsToFile ()

#2032 Compare with MeshBasedCellPopulation::WriteVtkResultsToFile etc.

#2032 Add CellData

Member MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsVoronoi (double maxPenetration=0.0)
use ElementIterator here?

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

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

Member MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForT1Swaps (VertexElementMap &rElementMap)

This method currently assumes SPACE_DIM = 2 (see #866)

use iterators to tidy this up

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

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

This method currently assumes SPACE_DIM = 2 (see #866)

this could be more efficient

Member MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::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)

or should we move a and b apart, it may interfere with neighbouring edges? (see #1399)

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

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

Member MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformIntersectionSwap (Node< SPACE_DIM > *pNode, unsigned elementIndex)
This method currently assumes SPACE_DIM = 2 (see #866)

Member MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT1Swap (Node< SPACE_DIM > *pNodeA, Node< SPACE_DIM > *pNodeB, std::set< unsigned > &rElementsContainingNodes)

This method currently assumes SPACE_DIM = 2 (see #866)

remove magic number? (#1884)

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

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

Member NodeBasedCellPopulation< DIM >::Update (bool hasHadBirthsOrDeaths=true)
we want to make mCellLocationMap private - we need to find a better way of doing this

Member NodePartitioner< ELEMENT_DIM, SPACE_DIM >::PetscMatrixPartitioning (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, std::vector< unsigned > &rNodesPermutation, std::set< unsigned > &rNodesOwned, std::vector< unsigned > &rProcessorsOffset)

(#1930) Should this be stronger?

#1216 change the number 54 below (row nonzero allocation) to be nonmagic

: This assembly is likely to generate many communications. Try to interleave other operations by executing them between Begin() and End().

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

Member OffLatticeSimulation< ELEMENT_DIM, SPACE_DIM >::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.

do something for vertex models here

Member OffLatticeSimulation< ELEMENT_DIM, SPACE_DIM >::UpdateCellLocationsAndTopology ()
Is it faster to preallocate and have forces as a member variable? see #1890

Member OffLatticeSimulation< ELEMENT_DIM, SPACE_DIM >::WriteVisualizerSetupFile ()
Check whether this comment is still valid

Member OnLatticeSimulation< DIM >::CalculateCellDivisionVector (CellPtr pParentCell)
do something for Potts models here

Member OnLatticeSimulation< DIM >::UpdateCellPopulation ()
#2066 This code should be covered by cell_based/test/simulation/TestOnLatticeSimulationWithMultipleCaBasedCellPopulation.hpp TestLoad

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

: #1082 won't work in parallel

: #1082 assert size(x1) = size(x21) + size(x22)

: #1082 legacy, no need to use the references

: #1082 OK in parallel. Use as an example for the other two blocks

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

Member PetscTools::SetupMat (Mat &rMat, int numRows, int numColumns, unsigned rowPreallocation, int numLocalRows=PETSC_DECIDE, int numLocalColumns=PETSC_DECIDE, bool ignoreOffProcEntries=true)
#1216 Fix the 0.7 magic number

Member PlaneBoundaryCondition< DIM >::ImposeBoundaryCondition (const std::vector< c_vector< double, DIM > > &rOldLocations)
Move this to constructor. If this is in the constructor then Exception always throws.

Member PlaneStimulusCellFactory< CELL, ELEMENT_DIM, SPACE_DIM >::CreateCardiacCellForTissueNode (unsigned node)
remove magic number? (#1884)

Member PolynomialMaterialLaw3d::Get_d2W_dI1 (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 PolynomialMaterialLaw3d::Get_d2W_dI2 (double I1, double I2)
The name of this method should not include underscores.

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 PostProcessingWriter< ELEMENT_DIM, SPACE_DIM >::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 PottsBasedCellPopulation< DIM >::CreateElementTessellation ()
implement this method (#1666)

Member PottsBasedCellPopulation< DIM >::UpdateCellLocations (double dt)
If this causes the element to have no nodes then flag the element and cell to be deleted

Member PottsMesh< DIM >::DivideElement (PottsElement< DIM > *pElement, bool placeOriginalElementBelow=false)
this could be more efficient

Member PottsMesh< DIM >::GetCentroidOfElement (unsigned index)
This should probably be returning the nearest node

Member PottsMesh< DIM >::GetSurfaceAreaOfElement (unsigned index)
not implemented in 3d yet

Class PottsMesh< DIM >::PottsElementIterator
This is the same as in AbstractTetrahedralMesh and VertexMesh- merge? (#1379)

Member PottsMeshReader< SPACE_DIM >::GetNextFaceData ()
Implement this method (#1663, #1377)

Member PottsMeshReader< SPACE_DIM >::GetNumFaces () const
Implement this method (#1663)

Member PottsMeshWriter< SPACE_DIM >::WriteFiles ()
#2146 - this looks like a bug in the making - what if the attribute IS zero!?!?

Member PottsMeshWriter< SPACE_DIM >::WriteFilesUsingMesh (PottsMesh< SPACE_DIM > &rMesh)

Mesh should be const (#1076)

Mesh should be const (#1663)

Member PropagationPropertiesCalculator::CalculateAllConductionVelocities (unsigned globalNearNodeIndex, unsigned globalFarNodeIndex, const double euclideanDistance)
remove magic number? (#1884)

Member PropagationPropertiesCalculator::CalculateConductionVelocity (unsigned globalNearNodeIndex, unsigned globalFarNodeIndex, const double euclideanDistance)
remove magic number? (#1884)

Member QuadraticMeshHelper< DIM >::AddNodesToBoundaryElements (AbstractTetrahedralMesh< DIM, DIM > *pMesh, TrianglesMeshReader< DIM, DIM > *pMeshReader)

#1930 Until there is an interator_facade over boundary elements,

#1930 Once there is an interator_facade then we can do: elem_index = pMeshReader->GetFaceData(face_index).ContainingElement;

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

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

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

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

Class SemMesh< DIM >::SemElementIterator
This is the same as in AbstractTetrahedralMesh and VertexMesh- merge? (#1379)

Member SemMeshReader< SPACE_DIM >::GetNextFaceData ()
Implement this method (#1663, #1377)

Member SemMeshReader< SPACE_DIM >::GetNumFaces () const
Implement this method (#1663)

Member SemMeshWriter< SPACE_DIM >::WriteFiles ()
#2146 - this looks like a bug in the making - what if the attribute IS zero!?!?

Member SemMeshWriter< SPACE_DIM >::WriteFilesUsingMesh (SemMesh< SPACE_DIM > &rMesh)

Mesh should be const (#1076)

Mesh should be const (#1663)

Member SurfaceAreaConstraintPottsUpdateRule< DIM >::mDeformationEnergyParameter
provide units

Member SurfaceAreaConstraintPottsUpdateRule< DIM >::mMatureCellTargetSurfaceArea
provide units #1829 Non-dimensional target surface area of a mature (fully-grown) cell, given in units of area of lattice site. Set to the default value 16 in the constructor.

Member SurfaceAreaConstraintPottsUpdateRule< DIM >::SurfaceAreaConstraintPottsUpdateRule ()
Default values don't apply in 3D.

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

Member TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::OpenNodeFile ()
Change name to OpenNodesFile for consistency with OpenElementsFile and OpenFacesFile? (#991)

Member TrianglesMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFiles ()

#1949

#1899 or #1949 Is this necessary?

#1949

#1949

#1949

Member VertexBasedCellPopulation< DIM >::Update (bool hasHadBirthsOrDeaths=true)

We want to make these maps private, so we need a better way of doing the code below.

this is a kludge to remove the cell once a T2Swap occurs this is not included in the dead cells counter. This should be included in the RemoveDeadCells method so the death is counted

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

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

Member VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetShortAxisOfElement (unsigned index)
remove magic number? (#1884)

Member VertexMesh< ELEMENT_DIM, SPACE_DIM >::SolveBoundaryElementMapping (unsigned index) const
sort out boundary elements in a vertex mesh (#1263)

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

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

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

Member VertexMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementDataWithFaces ()
Store face orientations? (#1076/#1377)

Member VertexMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextFaceData ()
Implement this method (#1076, #1377)

Member VertexMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumEdges () const
Implement this method (#1076)

Member VertexMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumFaces () const
Implement this method (#1076)

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

Member VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::GetNextElementWithFaces ()
Store face orientations? (#1076/#1377)

Member VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::mpVtkUnstructedMesh
Merge into VtkMeshWriter (#1076)

Member VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFiles ()

#2146 - bug in the making? If this attribute is supposed to be zero we will assume there isn't one!

Store face orientations? (#1076/#1377)

Member VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh (VertexMesh< ELEMENT_DIM, SPACE_DIM > &rMesh)

Mesh should be const (#1076)

Mesh should be const (#1076)

Member VolumeConstraintPottsUpdateRule< DIM >::mDeformationEnergyParameter
provide units

Member VolumeConstraintPottsUpdateRule< DIM >::VolumeConstraintPottsUpdateRule ()
Default values don't apply in 3D.

Member VolumeTrackedOffLatticeSimulation< DIM >::UpdateCellData ()
work out how to properly fix this (#1986)

Member VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, bool keepOriginalElementIndexing=true)

#1322 Mesh should really be const!

#1322 Mesh should be const

#1494 Do we need a barrier?