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 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 for 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::SetUseTimeAdaptivityController (bool useAdaptivity, AbstractTimeAdaptivityController *pController=NULL)
#1704 add default adaptivity controller and allow the user just to call with true

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)
#1199 test this

Member AbstractCellPopulation::OutputCellPopulationInfo (out_stream &rParamsFile)
this currently ignores different parameter regimes (#1453)

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 AbstractChasteRegion::Destroy ()
Proper memory management Cleans any data which the concrete class may have created (archiving)

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::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::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 CardiacSimulationArchiver::Save (PROBLEM_CLASS &rSimulationToArchive, 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::UpdateNodePositions (const std::vector< c_vector< double, DIM > > &rNodeForces)
#1589 this should be removed

Member CellBasedSimulation::ApplyCellPopulationBoundaryConditions (const std::vector< c_vector< double, DIM > > &rOldLocations)
#1589 this should be removed

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 CellProperties::CalculateProperties ()
#1495 a horrible magic number but seems to work OK.

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

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::HaloNodeIterator
#1494, this iterator needs to be dereferenced twice because it is an STL iterator to a pointer.

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)
#1216 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::Close ()
: move code to the destructor???

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::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, bool parallelVtk)
What if the mesh has been scaled, translated or rotated?

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

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

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

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)
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

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
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::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::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 HeartConfig::HeartConfig ()
#1703 This defaults should be set in HeartConfigDefaults.hpp

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

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::Solve (Vec lhsGuess=NULL)
#1695 Store this number in a member variable.

Member LinearSystem::ResetKspSolver ()
#1695 Store this number in a member variable.

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 MassMatrixAssembler::ComputeMatrixTerm (c_vector< double, ELEMENT_DIM+1 > &rPhi, c_matrix< double, SPACE_DIM, ELEMENT_DIM+1 > &rGradPhi, ChastePoint< SPACE_DIM > &rX, c_vector< double, 1 > &rU, c_matrix< double, 1, SPACE_DIM > &rGradU, Element< ELEMENT_DIM, SPACE_DIM > *pElement)
: #1637 If we decide to go ahead with mass lumping, reimplement this without nested loops.

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::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

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, bool ignoreOffProcEntries=true)
#1216 Fix the 0.7 magic number

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

Class PlaneBoundaryCondition< DIM >
The naming of this class indicates that it is specific to 3D (see #1589)

Member PlaneBoundaryCondition::ImposeBoundaryCondition ()
this is only for AbstractCentreBasedCellPopulations (see #1589)

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)

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

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

Member VtkMeshWriter::WriteFilesUsingMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, bool keepOriginalElementIndexing=true)
#1494 Do we need a barrier?

Generated on Mon Apr 18 11:35:42 2011 for Chaste by  doxygen 1.5.5