3 #ifndef DUNE_ALBERTA_COORDCACHE_HH
4 #define DUNE_ALBERTA_COORDCACHE_HH
39 assert( !(!coords_) );
41 return array[ dofAccess_( element, vertex ) ];
46 return (*
this)( elementInfo.
el(),
vertex );
49 void create (
const DofNumbering &dofNumbering )
51 MeshPointer mesh = dofNumbering.
mesh();
54 coords_.
create( dofSpace,
"Coordinate Cache" );
57 coords_.template setupInterpolation< Interpolation >();
59 dofAccess_ = DofAccess( dofSpace );
68 CoordVectorPointer coords_;
86 dofAccess_( coords.dofSpace() )
120 const Element *element = patch[ 0 ];
123 assert( element->child[ 0 ] != NULL );
124 GlobalVector &newCoord = array[ dofAccess( element->child[ 0 ], dimension ) ];
126 if( element->new_coord != NULL )
129 newCoord[ j ] = element->new_coord[ j ];
135 const GlobalVector &coord0 = array[ dofAccess( element, 0 ) ];
136 const GlobalVector &coord1 = array[ dofAccess( element, 1 ) ];
138 newCoord[ j ] = 0.5 * (coord0[ j ] + coord1[ j ]);
147 #endif // #if HAVE_ALBERTA
149 #endif // #ifndef DUNE_ALBERTA_COORDCACHE_HH
const DofSpace * dofSpace(int codim) const
Definition: dofadmin.hh:139
ALBERTA REAL_D GlobalVector
Definition: misc.hh:47
static void interpolateVector(const CoordVectorPointer &dofVector, const Patch &patch)
Definition: coordcache.hh:115
static const int dimWorld
Definition: misc.hh:43
void release()
Definition: coordcache.hh:62
HierarchyDofNumbering< dimension > DofNumbering
Definition: coordcache.hh:35
LocalCaching(const CoordVectorPointer &coords)
Definition: coordcache.hh:84
const DofSpace * dofSpace() const
Definition: dofvector.hh:221
static const int dimension
Definition: coordcache.hh:31
ALBERTA FE_SPACE DofSpace
Definition: misc.hh:62
Alberta::ElementInfo< dimension > ElementInfo
Definition: coordcache.hh:33
Definition: coordcache.hh:78
void hierarchicTraverse(Functor &functor, typename FillFlags::Flags fillFlags=FillFlags::standard) const
Definition: meshpointer.hh:368
static const int numSubEntities
Definition: dofadmin.hh:34
Definition: coordcache.hh:108
void release()
Definition: dofvector.hh:252
Alberta::Patch< dimension > Patch
Definition: coordcache.hh:112
const GlobalVector & coordinate(int vertex) const
Definition: elementinfo.hh:683
Definition: common.hh:179
void create(const DofSpace *dofSpace, const std::string &name="")
Definition: dofvector.hh:234
Element * el() const
Definition: elementinfo.hh:735
void create(const DofNumbering &dofNumbering)
Definition: coordcache.hh:49
Definition: coordcache.hh:22
GlobalVector & operator()(const Element *element, int vertex) const
Definition: coordcache.hh:37
Include standard header files.
Definition: agrid.hh:59
ALBERTA EL Element
Definition: misc.hh:51
Definition: refinement.hh:37
const MeshPointer & mesh() const
Definition: dofadmin.hh:152
provides a wrapper for ALBERTA's mesh structure
Alberta::MeshPointer< dimension > MeshPointer
Definition: coordcache.hh:34