3 #ifndef DUNE_ALBERTA_GEOMETRYCACHE_HH 4 #define DUNE_ALBERTA_GEOMETRYCACHE_HH 23 static const unsigned int flagIntegrationElement = (1 << 0);
24 static const unsigned int flagJacobianTransposed = (1 << 1);
25 static const unsigned int flagJacobianInverseTransposed = (1 << 2);
37 if( (flags_ & flagIntegrationElement) == 0 )
40 assert( integrationElement_ > 1e-14 );
41 flags_ |= flagIntegrationElement;
43 return integrationElement_;
48 if( (flags_ & flagJacobianTransposed) == 0 )
52 for(
int i = 0; i < dim; ++i )
56 jacobianTransposed_[ i ][ j ] = y[ j ] - x[ j ];
58 flags_ |= flagJacobianTransposed;
60 return jacobianTransposed_;
63 const JacobianInverseTransposed &
66 if( (flags_ & flagJacobianInverseTransposed) == 0 )
69 assert( integrationElement_ > 1e-14 );
70 flags_ |= flagIntegrationElement | flagJacobianInverseTransposed;
72 return jacobianInverseTransposed_;
77 Real integrationElement_;
78 FieldMatrix< Real, dim, dimWorld > jacobianTransposed_;
79 FieldMatrix< Real, dimWorld, dim > jacobianInverseTransposed_;
94 : geometryCache_( geometryCache ),
100 return geometryCache_.integrationElement( elInfo_ );
105 return geometryCache_.jacobianTransposed( elInfo_ );
110 return geometryCache_.jacobianInverseTransposed( elInfo_ );
115 const ALBERTA EL_INFO &elInfo_;
122 #endif // #if HAVE_ALBERTA 124 #endif // #ifndef DUNE_ALBERTA_GEOMETRYCACHE_HH static const int dimWorld
Definition: misc.hh:43
static K invert(const FieldMatrix< K, 0, m > &matrix, FieldMatrix< K, m, 0 > &inverse)
Definition: algebra.hh:77
const JacobianInverseTransposed & jacobianInverseTransposed()
Definition: geometrycache.hh:108
FieldMatrix< Real, dim, dimWorld > JacobianTransposed
Definition: geometrycache.hh:91
#define ALBERTA
Definition: albertaheader.hh:27
const JacobianInverseTransposed & jacobianInverseTransposed(const ALBERTA EL_INFO &elInfo)
Definition: geometrycache.hh:64
const Real & integrationElement(const ALBERTA EL_INFO &elInfo)
Definition: geometrycache.hh:35
void abs(const DofVectorPointer< int > &dofVector)
Definition: dofvector.hh:326
GeometryCacheProxy(GeometryCache< dim > &geometryCache, const ALBERTA EL_INFO &elInfo)
Definition: geometrycache.hh:93
const JacobianTransposed & jacobianTransposed(const ALBERTA EL_INFO &elInfo)
Definition: geometrycache.hh:46
Include standard header files.
Definition: agrid.hh:59
FieldMatrix< Real, dimWorld, dim > JacobianInverseTransposed
Definition: geometrycache.hh:28
const JacobianTransposed & jacobianTransposed()
Definition: geometrycache.hh:103
Definition: geometrycache.hh:88
static K determinant(const FieldMatrix< K, 0, m > &matrix)
Definition: algebra.hh:28
FieldMatrix< Real, dim, dimWorld > JacobianTransposed
Definition: geometrycache.hh:29
FieldMatrix< Real, dimWorld, dim > JacobianInverseTransposed
Definition: geometrycache.hh:90
Definition: geometrycache.hh:21
const Real & integrationElement()
Definition: geometrycache.hh:98
GeometryCache()
Definition: geometrycache.hh:31
ALBERTA REAL Real
Definition: misc.hh:45
ALBERTA REAL_D GlobalVector
Definition: misc.hh:47