5#ifndef DUNE_ALBERTA_COORDCACHE_HH
6#define DUNE_ALBERTA_COORDCACHE_HH
41 assert( !(!coords_) );
43 return array[ dofAccess_( element, vertex ) ];
48 return (*
this)( elementInfo.
el(), vertex );
56 coords_.create( dofSpace,
"Coordinate Cache" );
59 coords_.template setupInterpolation< Interpolation >();
61 dofAccess_ = DofAccess( dofSpace );
70 CoordVectorPointer coords_;
82 CoordVectorPointer coords_;
88 dofAccess_( coords.dofSpace() )
119 DofAccess dofAccess( dofVector.
dofSpace() );
122 const Element *element = patch[ 0 ];
125 assert( element->child[ 0 ] != NULL );
128 if( element->new_coord != NULL )
131 newCoord[ j ] = element->new_coord[ j ];
137 const GlobalVector &coord0 = array[ dofAccess( element, 0 ) ];
138 const GlobalVector &coord1 = array[ dofAccess( element, 1 ) ];
140 newCoord[ j ] = 0.5 * (coord0[ j ] + coord1[ j ]);
provides a wrapper for ALBERTA's mesh structure
Include standard header files.
Definition agrid.hh:60
Definition albertagrid.cc:23
ALBERTA EL Element
Definition misc.hh:54
ALBERTA FE_SPACE DofSpace
Definition misc.hh:65
static const int dimWorld
Definition misc.hh:46
ALBERTA REAL_D GlobalVector
Definition misc.hh:50
Definition coordcache.hh:25
static const int dimension
Definition coordcache.hh:33
GlobalVector & operator()(const Element *element, int vertex) const
Definition coordcache.hh:39
Alberta::MeshPointer< dimension > MeshPointer
Definition coordcache.hh:36
void release()
Definition coordcache.hh:64
Alberta::ElementInfo< dimension > ElementInfo
Definition coordcache.hh:35
HierarchyDofNumbering< dimension > DofNumbering
Definition coordcache.hh:37
void create(const DofNumbering &dofNumbering)
Definition coordcache.hh:51
Definition coordcache.hh:81
LocalCaching(const CoordVectorPointer &coords)
Definition coordcache.hh:86
Definition coordcache.hh:111
Alberta::Patch< dimension > Patch
Definition coordcache.hh:114
static const int dimension
Definition coordcache.hh:112
static void interpolateVector(const CoordVectorPointer &dofVector, const Patch &patch)
Definition coordcache.hh:117
void hierarchicTraverse(Functor &functor, typename FillFlags::Flags fillFlags=FillFlags::standard) const
Definition meshpointer.hh:370
static const int numSubEntities
Definition dofadmin.hh:40
const MeshPointer & mesh() const
Definition dofadmin.hh:158
const DofSpace * dofSpace(int codim) const
Definition dofadmin.hh:145
const DofSpace * dofSpace() const
Definition dofvector.hh:223
const GlobalVector & coordinate(int vertex) const
Definition elementinfo.hh:685
Element * el() const
Definition elementinfo.hh:737
static const Flags coords
Definition misc.hh:236