36 #ifndef FINECOARSEMESHPAIR_HPP_
37 #define FINECOARSEMESHPAIR_HPP_
39 #include "AbstractTetrahedralMesh.hpp"
40 #include "DistributedBoxCollection.hpp"
41 #include "QuadraturePointsGroup.hpp"
42 #include "GaussianQuadratureRule.hpp"
43 #include "Warnings.hpp"
44 #include "CommandLineArguments.hpp"
52 template<
unsigned DIM>
105 template <
unsigned DIM>
108 friend class TestFineCoarseMeshPair;
181 unsigned boxForThisPoint,
193 unsigned boxForThisPoint);
221 std::set<unsigned>& rElementIndices);
234 std::set<unsigned>& rElementIndices);
void ShareCoarseElementData()
void ComputeFineElementAndWeightForGivenPoint(ChastePoint< DIM > &rPoint, bool safeMode, unsigned boxForThisPoint, unsigned index)
std::vector< unsigned > mNotInMesh
DistributedBoxCollection< DIM > * mpFineMeshBoxCollection
void ShareFineElementData()
FineCoarseMeshPair(AbstractTetrahedralMesh< DIM, DIM > &rFineMesh, AbstractTetrahedralMesh< DIM, DIM > &rCoarseMesh)
void ResetStatisticsVariables()
void ComputeFineElementsAndWeightsForCoarseNodes(bool safeMode)
std::vector< ElementAndWeights< DIM > > & rGetElementsAndWeights()
void DeleteCoarseBoxCollection()
std::vector< unsigned > & rGetCoarseElementsForFineNodes()
const AbstractTetrahedralMesh< DIM, DIM > & GetCoarseMesh() const
std::vector< unsigned > mCoarseElementsForFineElementCentroids
unsigned ComputeCoarseElementForGivenPoint(ChastePoint< DIM > &rPoint, bool safeMode, unsigned boxForThisPoint)
std::vector< unsigned > mStatisticsCounters
AbstractTetrahedralMesh< DIM, DIM > & mrCoarseMesh
AbstractTetrahedralMesh< DIM, DIM > & mrFineMesh
void ComputeFineElementsAndWeightsForCoarseQuadPoints(GaussianQuadratureRule< DIM > &rQuadRule, bool safeMode)
std::vector< ElementAndWeights< DIM > > mFineMeshElementsAndWeights
std::vector< unsigned > mCoarseElementsForFineNodes
void CollectElementsInLocalBoxes(DistributedBoxCollection< DIM > *&rpBoxCollection, unsigned boxIndex, std::set< unsigned > &rElementIndices)
void CollectElementsInContainingBox(DistributedBoxCollection< DIM > *&rpBoxCollection, unsigned boxIndex, std::set< unsigned > &rElementIndices)
void SetUpBoxesOnCoarseMesh(double boxWidth=-1)
std::vector< unsigned > & rGetCoarseElementsForFineElementCentroids()
void SetUpBoxes(AbstractTetrahedralMesh< DIM, DIM > &rMesh, double boxWidth, DistributedBoxCollection< DIM > *&rpBoxCollection)
void DeleteFineBoxCollection()
void SetUpBoxesOnFineMesh(double boxWidth=-1)
std::vector< c_vector< double, DIM+1 > > mNotInMeshNearestElementWeights
void ComputeCoarseElementsForFineNodes(bool safeMode)
const AbstractTetrahedralMesh< DIM, DIM > & GetFineMesh() const
DistributedBoxCollection< DIM > * mpCoarseMeshBoxCollection
void ComputeCoarseElementsForFineElementCentroids(bool safeMode)
c_vector< double, DIM+1 > Weights