5 #ifndef DUNE_ALBERTA_GEOMETRYCACHE_HH 6 #define DUNE_ALBERTA_GEOMETRYCACHE_HH 25 static const unsigned int flagIntegrationElement = (1 << 0);
26 static const unsigned int flagJacobianTransposed = (1 << 1);
27 static const unsigned int flagJacobianInverseTransposed = (1 << 2);
39 if( (flags_ & flagIntegrationElement) == 0 )
42 assert( integrationElement_ > 1e-14 );
43 flags_ |= flagIntegrationElement;
45 return integrationElement_;
50 if( (flags_ & flagJacobianTransposed) == 0 )
54 for(
int i = 0; i < dim; ++i )
58 jacobianTransposed_[ i ][ j ] = y[ j ] - x[ j ];
60 flags_ |= flagJacobianTransposed;
62 return jacobianTransposed_;
68 if( (flags_ & flagJacobianInverseTransposed) == 0 )
71 assert( integrationElement_ > 1e-14 );
72 flags_ |= flagIntegrationElement | flagJacobianInverseTransposed;
74 return jacobianInverseTransposed_;
79 Real integrationElement_;
80 FieldMatrix< Real, dim, dimWorld > jacobianTransposed_;
81 FieldMatrix< Real, dimWorld, dim > jacobianInverseTransposed_;
96 : geometryCache_( geometryCache ),
102 return geometryCache_.integrationElement( elInfo_ );
107 return geometryCache_.jacobianTransposed( elInfo_ );
112 return geometryCache_.jacobianInverseTransposed( elInfo_ );
117 const ALBERTA EL_INFO &elInfo_;
124 #endif // #if HAVE_ALBERTA 126 #endif // #ifndef DUNE_ALBERTA_GEOMETRYCACHE_HH void abs(const DofVectorPointer< int > &dofVector)
Definition: dofvector.hh:328
Definition: geometrycache.hh:90
Definition: geometrycache.hh:23
ALBERTA REAL_D GlobalVector
Definition: misc.hh:50
FieldMatrix< Real, dimWorld, dim > JacobianInverseTransposed
Definition: geometrycache.hh:92
GeometryCacheProxy(GeometryCache< dim > &geometryCache, const ALBERTA EL_INFO &elInfo)
Definition: geometrycache.hh:95
const JacobianInverseTransposed & jacobianInverseTransposed()
Definition: geometrycache.hh:110
ALBERTA REAL Real
Definition: misc.hh:48
GeometryCache()
Definition: geometrycache.hh:33
#define ALBERTA
Definition: albertaheader.hh:29
const JacobianTransposed & jacobianTransposed(const ALBERTA EL_INFO &elInfo)
Definition: geometrycache.hh:48
FieldMatrix< Real, dimWorld, dim > JacobianInverseTransposed
Definition: geometrycache.hh:30
const Real & integrationElement()
Definition: geometrycache.hh:100
Include standard header files.
Definition: agrid.hh:59
FieldMatrix< Real, dim, dimWorld > JacobianTransposed
Definition: geometrycache.hh:93
const JacobianTransposed & jacobianTransposed()
Definition: geometrycache.hh:105
const JacobianInverseTransposed & jacobianInverseTransposed(const ALBERTA EL_INFO &elInfo)
Definition: geometrycache.hh:66
const Real & integrationElement(const ALBERTA EL_INFO &elInfo)
Definition: geometrycache.hh:37
static K determinant([[maybe_unused]] const FieldMatrix< K, 0, m > &matrix)
Definition: algebra.hh:30
FieldMatrix< Real, dim, dimWorld > JacobianTransposed
Definition: geometrycache.hh:31
static K invert([[maybe_unused]] const FieldMatrix< K, 0, m > &matrix, [[maybe_unused]] FieldMatrix< K, m, 0 > &inverse)
Definition: algebra.hh:81
static const int dimWorld
Definition: misc.hh:46