36 #ifndef NEKTAR_SPATIALDOMAINS_GEOMFACTORS_H 
   37 #define NEKTAR_SPATIALDOMAINS_GEOMFACTORS_H 
   39 #include <boost/unordered_set.hpp> 
   49 namespace SpatialDomains
 
   59                                            const GeomFactors &rhs);
 
   68     typedef boost::unordered_set< GeomFactorsSharedPtr >
 
  145             std::map<LibUtilities::PointsKeyVector, Array<OneD, NekDouble> >
 
  148             std::map<LibUtilities::PointsKeyVector, Array<TwoD, NekDouble> >
 
  323         boost::hash_combine(hash, (
int)
m_type);
 
  324         boost::hash_combine(hash, 
m_expDim);
 
  328             boost::hash_range(hash, jac.begin(), jac.end());
 
  332             boost::hash_combine(hash, jac[0]);
 
const Array< TwoD, const NekDouble > GetDerivFactors(const LibUtilities::PointsKeyVector &keyTgt)
Return the derivative of the reference coordinates with respect to the mapping, . ...
GeomFactorsVector::iterator GeomFactorsVectorIter
Iterator for the GeomFactorsVector. 
Array< OneD, NekDouble > ComputeJac(const LibUtilities::PointsKeyVector &keyTgt) const 
Return the Jacobian of the mapping and cache the result. 
void Adjoint(const Array< TwoD, const NekDouble > &src, Array< TwoD, NekDouble > &tgt) const 
Compute the transpose of the cofactors matrix. 
bool IsValid() const 
Determine if element is valid and not self-intersecting. 
std::vector< PointsKey > PointsKeyVector
boost::unordered_set< GeomFactorsSharedPtr >::iterator GeomFactorsSetIter
Iterator for the GeomFactorsSet. 
GeomType m_type
Type of geometry (e.g. eRegular, eDeformed, eMovingRegular). 
friend bool operator==(const GeomFactors &lhs, const GeomFactors &rhs)
Tests if two GeomFactors classes are equal. 
GeomType GetGtype()
Returns whether the geometry is regular or deformed. 
DerivStorage GetDeriv(const LibUtilities::PointsKeyVector &keyTgt)
Return the derivative of the mapping with respect to the reference coordinates, . ...
size_t GetHash()
Computes a hash of this GeomFactors element. 
boost::unordered_set< GeomFactorsSharedPtr > GeomFactorsSet
An unordered set of GeomFactor pointers. 
void CheckIfValid()
Tests if the element is valid and not self-intersecting. 
int m_coordDim
Dimension of coordinate system. 
std::map< LibUtilities::PointsKeyVector, Array< OneD, NekDouble > > m_jacCache
Jacobian vector cache. 
Array< TwoD, NekDouble > ComputeGmat(const LibUtilities::PointsKeyVector &keyTgt) const 
Computes the Laplacian coefficients . 
~GeomFactors()
Destructor. 
const Array< TwoD, const NekDouble > GetGmat(const LibUtilities::PointsKeyVector &keyTgt)
Return the Laplacian coefficients . 
Array< OneD, Array< OneD, Array< OneD, NekDouble > > > DerivStorage
Storage type for derivative of mapping. 
bool m_valid
Validity of element (Jacobian positive) 
StdRegions::StdExpansionSharedPtr & GetXmap()
Return the Xmap;. 
std::vector< GeomFactorsSharedPtr > GeomFactorsVector
A vector of GeomFactor pointers. 
void Interp(const LibUtilities::PointsKeyVector &src_points, const Array< OneD, const NekDouble > &src, const LibUtilities::PointsKeyVector &tgt_points, Array< OneD, NekDouble > &tgt) const 
Perform interpolation of data between two point distributions. 
std::size_t operator()(GeomFactorsSharedPtr const &p) const 
const Array< OneD, const NekDouble > GetJac(const LibUtilities::PointsKeyVector &keyTgt)
Return the Jacobian of the mapping and cache the result. 
A hash functor for geometric factors. Utilises GeomFactors::GetHash. 
StandardMatrixTag boost::call_traits< LhsDataType >::const_reference rhs typedef NekMatrix< LhsDataType, StandardMatrixTag >::iterator iterator
int GetCoordim() const 
Return the number of dimensions of the coordinate system. 
int m_expDim
Dimension of expansion. 
Calculation and storage of geometric factors associated with the mapping from StdRegions reference el...
boost::shared_ptr< GeomFactors > GeomFactorsSharedPtr
Pointer to a GeomFactors object. 
GeomFactors(const GeomType gtype, const int coordim, const StdRegions::StdExpansionSharedPtr &xmap, const Array< OneD, Array< OneD, NekDouble > > &coords)
Constructor for GeomFactors class. 
bool operator==(const GeomFactors &lhs, const GeomFactors &rhs)
Equivalence test for GeomFactors objects. 
Array< TwoD, NekDouble > ComputeDerivFactors(const LibUtilities::PointsKeyVector &keyTgt) const 
Return the derivative of the reference coordinates with respect to the mapping, . ...
Array< OneD, Array< OneD, NekDouble > > m_coords
Stores coordinates of the geometry. 
StdRegions::StdExpansionSharedPtr m_xmap
Stores information about the expansion. 
GeomType
Indicates the type of element geometry. 
boost::shared_ptr< StdExpansion > StdExpansionSharedPtr
Geometry is curved or has non-constant factors. 
boost::shared_ptr< Geometry > GeometrySharedPtr
DerivStorage ComputeDeriv(const LibUtilities::PointsKeyVector &keyTgt) const 
#define SPATIAL_DOMAINS_EXPORT
std::map< LibUtilities::PointsKeyVector, Array< TwoD, NekDouble > > m_derivFactorCache
DerivFactors vector cache.