Skip to content
Snippets Groups Projects
Commit 24eaa751 authored by Robert Klöfkorn's avatar Robert Klöfkorn
Browse files

size methods use size cache and not index sets anymore.

removed deprecated index,globalIndex and subIndex methods.

[[Imported from SVN: r3312]]
parent 6f5eaa29
No related branches found
No related tags found
No related merge requests found
......@@ -124,13 +124,6 @@ namespace Dune {
//! level of this element
int level () const;
//! index is unique and consecutive per level and codim
//! used for access to degrees of freedom
int index () const DUNE_DEPRECATED;
//! index is unique within the grid hierachie and per codim
int globalIndex () const DUNE_DEPRECATED;
//! return partition type of this entity ( see grid.hh )
PartitionType partitionType() const;
......@@ -261,12 +254,6 @@ namespace Dune {
//! level of this element
int level () const ;
//! index is unique and consecutive per level and codim used for access to degrees of freedo
int index () const DUNE_DEPRECATED;
//! index is unique within the grid hierachie and per codim
int globalIndex () const DUNE_DEPRECATED;
//! geometry of this entity
const Geometry & geometry () const;
......@@ -278,14 +265,6 @@ namespace Dune {
*/
template<int cc> int count () const ;
//! return index of sub entity with codim = cc and local number i
//! i.e. return global number of vertex i
template<int cc> int subIndex (int i) const DUNE_DEPRECATED;
//! return index of sub entity with codim = cc and local number i
//! i.e. return global number of vertex i
template<int cc> int getSubIndex (int i) const;
//! Provide access to mesh entity i of given codimension. Entities
//! are numbered 0 ... count<cc>()-1
template <int cc>
......@@ -360,6 +339,11 @@ namespace Dune {
void setEntity ( const ALU3dGridEntity<0,dim,GridImp> & org );
//! return index of sub entity with codim = cc and local number i
//! i.e. return global number of vertex i
//! for use in hierarchical index set
template<int cc> int getSubIndex (int i) const;
private:
typedef typename ALU3dImplTraits<GridImp::elementType>::IMPLElementType IMPLElementType;
......
......@@ -98,19 +98,6 @@ namespace Dune {
localFCoordCalced_ = false;
}
template<int cd, int dim, class GridImp>
inline int ALU3dGridEntity<cd,dim,GridImp> :: index () const
{
const Entity en (*this);
return grid_.levelIndexSet(en.level()).index(en);
}
template<int cd, int dim, class GridImp>
inline int ALU3dGridEntity<cd,dim,GridImp> :: globalIndex () const
{
return gIndex_;
}
template<int cd, int dim, class GridImp>
inline int ALU3dGridEntity<cd,dim,GridImp> :: getIndex () const
{
......@@ -338,19 +325,6 @@ namespace Dune {
return geoInFather_;
}
template<int dim, class GridImp>
inline int ALU3dGridEntity<0,dim,GridImp> :: index() const
{
const Entity en (*this);
return grid_.levelIndexSet(en.level()).index(en);
}
template<int dim, class GridImp>
inline int ALU3dGridEntity<0,dim,GridImp> :: globalIndex() const
{
return glIndex_;
}
template<int dim, class GridImp>
inline int ALU3dGridEntity<0,dim,GridImp> :: getIndex() const
{
......@@ -410,17 +384,6 @@ namespace Dune {
}
};
// this method os deprecated
template<int dim, class GridImp>
template<int cc>
inline int ALU3dGridEntity<0,dim,GridImp> :: subIndex (int i) const
{
dwarn << "This method is deprecated: " << __FILE__ << " line: " << __LINE__ << "\n";
assert(item_ != 0);
typedef typename ALU3dImplTraits<GridImp::elementType>::IMPLElementType IMPLElType;
return IndexWrapper<IMPLElType,GridImp::elementType,cc>::subIndex ( *item_ ,i);
}
template<int dim, class GridImp>
template<int cc>
inline int ALU3dGridEntity<0,dim,GridImp> :: getSubIndex (int i) const
......
......@@ -15,6 +15,7 @@
#include "../common/referenceelements.hh"
#include "../common/defaultindexsets.hh"
#include "../common/leafindexset.hh"
#include "../common/sizecache.hh"
//- Local includes
#include "alu3dinclude.hh"
......@@ -540,6 +541,10 @@ namespace Dune {
typedef ALU3dGridVertexList VertexListType;
mutable VertexListType vertexList_[MAXL];
// the type of our size cache
typedef SingleTypeSizeCache<MyType, (elType == tetra) ? simplex : cube> SizeCacheType;
SizeCacheType * sizeCache_;
}; // end class ALU3dGrid
template <class GridImp, int codim>
......
......@@ -69,6 +69,7 @@ namespace Dune {
, hIndexSet_ (*this)
, globalIdSet_(*this), localIdSet_(*this)
, levelIndexVec_(MAXL,0) , leafIndexSet_(0)
, sizeCache_ (0)
{
mygrid_ = new ALU3DSPACE GitterImplType (macroTriangFilename.c_str()
#ifdef _ALU3DGRID_PARALLEL_
......@@ -106,6 +107,7 @@ namespace Dune {
, hIndexSet_ (*this)
, globalIdSet_(*this), localIdSet_(*this)
, levelIndexVec_(MAXL,0) , leafIndexSet_(0)
, sizeCache_ (0)
{}
#else
template <int dim, int dimworld, ALU3dGridElementType elType>
......@@ -131,6 +133,7 @@ namespace Dune {
, globalIdSet_ (*this)
, localIdSet_ (*this)
, levelIndexVec_(MAXL,0) , leafIndexSet_(0)
, sizeCache_ (0)
{
DUNE_THROW(GridError,"Do not use copy constructor of ALU3dGrid! \n");
}
......@@ -150,6 +153,7 @@ namespace Dune {
if(levelIndexVec_[i]) delete levelIndexVec_[i];
}
if(leafIndexSet_) delete leafIndexSet_;
if(sizeCache_) delete sizeCache_;sizeCache_ = 0;
if(mygrid_) delete mygrid_;
}
......@@ -158,7 +162,13 @@ namespace Dune {
{
// if we dont have this level return 0
if( (level > maxlevel_) || (level < 0) ) return 0;
return levelIndexSet(level).size(codim,this->geomTypes(codim)[0]);
assert( codim >= 0);
assert( codim < dim+1 );
assert( levelIndexSet(level).size(codim,this->geomTypes(codim)[0]) ==
sizeCache_->size(level,codim) );
return sizeCache_->size(level,codim);
}
template <int dim, int dimworld, ALU3dGridElementType elType>
......@@ -172,7 +182,10 @@ namespace Dune {
template <int dim, int dimworld, ALU3dGridElementType elType>
inline int ALU3dGrid<dim, dimworld, elType>::size(int codim) const
{
return leafIndexSet().size(codim);
assert( codim >= 0 );
assert( codim < dim +1 );
assert( leafIndexSet().size(codim) == sizeCache_->size(codim) );
return sizeCache_->size(codim);
}
template <int dim, int dimworld, ALU3dGridElementType elType>
......@@ -189,8 +202,6 @@ namespace Dune {
{
calcMaxlevel();
calcExtras();
//myGrid().printsize();
}
template <int dim, int dimworld, ALU3dGridElementType elType>
......@@ -214,6 +225,9 @@ namespace Dune {
for(unsigned int i=0; i<MAXL; i++) vertexList_[i].unsetUp2Date();
if(sizeCache_) delete sizeCache_;
sizeCache_ = new SizeCacheType (*this,true);
coarsenMarked_ = 0;
refineMarked_ = 0;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment