gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
HierarchicalBasisHcurlPri Class Reference

#include <HierarchicalBasisHcurlPri.h>

Inheritance diagram for HierarchicalBasisHcurlPri:
Collaboration diagram for HierarchicalBasisHcurlPri:

Public Member Functions

 HierarchicalBasisHcurlPri (int order)
 
virtual ~HierarchicalBasisHcurlPri ()
 
virtual unsigned int getNumberOfOrientations () const
 
virtual void generateBasis (double const &u, double const &v, double const &w, std::vector< std::vector< double > > &vertexBasis, std::vector< std::vector< double > > &edgeBasis, std::vector< std::vector< double > > &faceBasis, std::vector< std::vector< double > > &bubbleBasis, std::string typeFunction)
 
virtual void orientEdge (int const &flagOrientation, int const &edgeNumber, std::vector< std::vector< double > > &edgeBasis, const std::vector< std::vector< double > > &eTablePositiveFlag, const std::vector< std::vector< double > > &eTableNegativeFlag)
 
virtual void orientEdgeFunctionsForNegativeFlag (std::vector< std::vector< double > > &edgeFunctions)
 
virtual void orientFace (int const &flag1, int const &flag2, int const &flag3, int const &faceNumber, const std::vector< std::vector< double > > &quadFaceFunctionsAllOrientation, const std::vector< std::vector< double > > &triFaceFunctionsAllOrientation, std::vector< std::vector< double > > &fTableCopy)
 
virtual void getKeysInfo (std::vector< int > &functionTypeInfo, std::vector< int > &orderInfo)
 
- Public Member Functions inherited from HierarchicalBasisHcurl
virtual ~HierarchicalBasisHcurl ()=0
 
virtual void generateBasis (double const &u, double const &v, double const &w, std::vector< double > &vertexBasis, std::vector< double > &edgeBasis, std::vector< double > &faceBasis, std::vector< double > &bubbleBasis)
 
virtual void orientFace (int const &flag1, int const &flag2, int const &flag3, int const &faceNumber, const std::vector< double > &quadFaceFunctionsAllOrientations, const std::vector< double > &triFaceFunctionsAllOrientations, std::vector< double > &fTableCopy)
 
virtual void orientEdge (int const &flagOrientation, int const &edgeNumber, std::vector< double > &edgeFunctions, const std::vector< double > &eTablePositiveFlag, const std::vector< double > &eTableNegativeFlag)
 
virtual void orientEdgeFunctionsForNegativeFlag (std::vector< double > &edgeFunctions)
 
virtual void addAllOrientedFaceFunctions (double const &u, double const &v, double const &w, const std::vector< double > &faceFunctions, std::vector< double > &quadFaceFunctionsAllOrientations, std::vector< double > &triFaceFunctionsAllOrientations)
 
virtual void addAllOrientedFaceFunctions (double const &u, double const &v, double const &w, const std::vector< std::vector< double > > &faceFunctions, std::vector< std::vector< double > > &quadFaceFunctionsAllOrientations, std::vector< std::vector< double > > &triFaceFunctionsAllOrientations, std::string typeFunction)
 
- Public Member Functions inherited from HierarchicalBasis
virtual ~HierarchicalBasis ()=0
 
int getnVertexFunction () const
 
int getnEdgeFunction () const
 
int getnTriFaceFunction () const
 
int getnQuadFaceFunction () const
 
int getnBubbleFunction () const
 
int getNumTriFace () const
 
int getNumQuadFace () const
 
int getNumEdge () const
 
int numberOrientationQuadFace (int const &flag1, int const &flag2, int const &flag3)
 
int numberOrientationTriFace (int const &flag1, int const &flag2)
 

Private Member Functions

virtual void generateHcurlBasis (double const &u, double const &v, double const &w, std::vector< std::vector< double > > &edgeBasis, std::vector< std::vector< double > > &faceBasis, std::vector< std::vector< double > > &bubbleBasis)
 
virtual void generateCurlBasis (double const &u, double const &v, double const &w, std::vector< std::vector< double > > &edgeBasis, std::vector< std::vector< double > > &faceBasis, std::vector< std::vector< double > > &bubbleBasis)
 
virtual void orientOneFace (double const &u, double const &v, double const &w, int const &flag1, int const &flag2, int const &flag3, int const &faceNumber, std::vector< std::vector< double > > &faceFunctions, std::string typeFunction)
 

Static Private Member Functions

static double _affineCoordinate (const int &j, const double &u, const double &v, const double &w)
 
static double dotProduct (const std::vector< double > &u1, const std::vector< double > &u2)
 
static void matrixVectorProductForMapping (const double &a, const std::vector< double > &u, std::vector< double > &result)
 
static void matrixVectorProductForCurlMapping (std::vector< double > &result)
 

Private Attributes

int _pb1
 
int _pb2
 
int _pOrderEdge [9]
 
int _pOrderQuadFace1 [3]
 
int _pOrderQuadFace2 [3]
 
int _pOrderTriFace [2]
 

Additional Inherited Members

- Protected Member Functions inherited from HierarchicalBasisHcurl
virtual void orientOneFace (double const &u, double const &v, double const &w, int const &flag1, int const &flag2, int const &flag3, int const &faceNumber, std::vector< double > &faceFunctions)
 
- Protected Attributes inherited from HierarchicalBasis
int _nvertex
 
int _nedge
 
int _nfaceQuad
 
int _nfaceTri
 
int _nVertexFunction
 
int _nEdgeFunction
 
int _nQuadFaceFunction
 
int _nTriFaceFunction
 
int _nBubbleFunction
 

Detailed Description

MPrism

          w
          ^
          |
          3
        ,/|`\
      ,/  |  `\
    ,/    |    `\
   4------+------5
   |      |      |
   |    ,/|`\    |
   |  ,/  |  `\  |
   |,/    |    `\|
  ,|      |      `\
,/ |      0      | `\

u | ,/ \ | v | ,/\ | |,/ `| 1----------—2

Oriented Edges: e0={0, 1}, e1={0, 2}, e2={0, 3}, e3={1, 2}, e4={1, 4}, e5={2, 5}, e6={3, 4}, e7={3, 5}, e8={4, 5}

Oriented Surfaces: s3={0, 1, 2}, s4={3, 4, 5}, s0={0, 1, 3, 4}, s1={0, 2, 3,5} s2={1,2,4,5} Local (directional) orders on mesh faces are not allowed to exceed the mini- mum of the (appropriate directional) orders of approximation associated with the interior of the adjacent elements. Local orders of approximation on mesh edges are limited by the minimum of all (appropriate directional) orders cor- responding to faces sharing that edge

Definition at line 55 of file HierarchicalBasisHcurlPri.h.

Constructor & Destructor Documentation

◆ HierarchicalBasisHcurlPri()

HierarchicalBasisHcurlPri::HierarchicalBasisHcurlPri ( int  order)

Definition at line 14 of file HierarchicalBasisHcurlPri.cpp.

◆ ~HierarchicalBasisHcurlPri()

HierarchicalBasisHcurlPri::~HierarchicalBasisHcurlPri ( )
virtual

Definition at line 43 of file HierarchicalBasisHcurlPri.cpp.

Member Function Documentation

◆ _affineCoordinate()

double HierarchicalBasisHcurlPri::_affineCoordinate ( const int &  j,
const double &  u,
const double &  v,
const double &  w 
)
staticprivate

Definition at line 50 of file HierarchicalBasisHcurlPri.cpp.

Referenced by generateCurlBasis(), generateHcurlBasis(), and orientOneFace().

Here is the caller graph for this function:

◆ dotProduct()

double HierarchicalBasisHcurlPri::dotProduct ( const std::vector< double > &  u1,
const std::vector< double > &  u2 
)
staticprivate

Definition at line 66 of file HierarchicalBasisHcurlPri.cpp.

Referenced by generateCurlBasis(), and generateHcurlBasis().

Here is the caller graph for this function:

◆ generateBasis()

virtual void HierarchicalBasisHcurlPri::generateBasis ( double const &  u,
double const &  v,
double const &  w,
std::vector< std::vector< double > > &  vertexBasis,
std::vector< std::vector< double > > &  edgeBasis,
std::vector< std::vector< double > > &  faceBasis,
std::vector< std::vector< double > > &  bubbleBasis,
std::string  typeFunction 
)
inlinevirtual

Implements HierarchicalBasisHcurl.

Definition at line 60 of file HierarchicalBasisHcurlPri.h.

Here is the call graph for this function:

◆ generateCurlBasis()

void HierarchicalBasisHcurlPri::generateCurlBasis ( double const &  u,
double const &  v,
double const &  w,
std::vector< std::vector< double > > &  edgeBasis,
std::vector< std::vector< double > > &  faceBasis,
std::vector< std::vector< double > > &  bubbleBasis 
)
privatevirtual

Definition at line 1249 of file HierarchicalBasisHcurlPri.cpp.

Referenced by generateBasis().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ generateHcurlBasis()

void HierarchicalBasisHcurlPri::generateHcurlBasis ( double const &  u,
double const &  v,
double const &  w,
std::vector< std::vector< double > > &  edgeBasis,
std::vector< std::vector< double > > &  faceBasis,
std::vector< std::vector< double > > &  bubbleBasis 
)
privatevirtual

Definition at line 79 of file HierarchicalBasisHcurlPri.cpp.

Referenced by generateBasis().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getKeysInfo()

void HierarchicalBasisHcurlPri::getKeysInfo ( std::vector< int > &  functionTypeInfo,
std::vector< int > &  orderInfo 
)
virtual

Implements HierarchicalBasisHcurl.

Definition at line 1828 of file HierarchicalBasisHcurlPri.cpp.

◆ getNumberOfOrientations()

unsigned int HierarchicalBasisHcurlPri::getNumberOfOrientations ( ) const
virtual

Implements HierarchicalBasis.

Definition at line 45 of file HierarchicalBasisHcurlPri.cpp.

◆ matrixVectorProductForCurlMapping()

void HierarchicalBasisHcurlPri::matrixVectorProductForCurlMapping ( std::vector< double > &  result)
staticprivate

Definition at line 1241 of file HierarchicalBasisHcurlPri.cpp.

Referenced by generateCurlBasis().

Here is the caller graph for this function:

◆ matrixVectorProductForMapping()

void HierarchicalBasisHcurlPri::matrixVectorProductForMapping ( const double &  a,
const std::vector< double > &  u,
std::vector< double > &  result 
)
staticprivate

Definition at line 72 of file HierarchicalBasisHcurlPri.cpp.

Referenced by generateHcurlBasis().

Here is the caller graph for this function:

◆ orientEdge()

void HierarchicalBasisHcurlPri::orientEdge ( int const &  flagOrientation,
int const &  edgeNumber,
std::vector< std::vector< double > > &  edgeBasis,
const std::vector< std::vector< double > > &  eTablePositiveFlag,
const std::vector< std::vector< double > > &  eTableNegativeFlag 
)
virtual

Implements HierarchicalBasisHcurl.

Definition at line 440 of file HierarchicalBasisHcurlPri.cpp.

◆ orientEdgeFunctionsForNegativeFlag()

void HierarchicalBasisHcurlPri::orientEdgeFunctionsForNegativeFlag ( std::vector< std::vector< double > > &  edgeFunctions)
virtual

Implements HierarchicalBasisHcurl.

Definition at line 471 of file HierarchicalBasisHcurlPri.cpp.

◆ orientFace()

void HierarchicalBasisHcurlPri::orientFace ( int const &  flag1,
int const &  flag2,
int const &  flag3,
int const &  faceNumber,
const std::vector< std::vector< double > > &  quadFaceFunctionsAllOrientation,
const std::vector< std::vector< double > > &  triFaceFunctionsAllOrientation,
std::vector< std::vector< double > > &  fTableCopy 
)
virtual

Implements HierarchicalBasisHcurl.

Definition at line 1196 of file HierarchicalBasisHcurlPri.cpp.

Here is the call graph for this function:

◆ orientOneFace()

void HierarchicalBasisHcurlPri::orientOneFace ( double const &  u,
double const &  v,
double const &  w,
int const &  flag1,
int const &  flag2,
int const &  flag3,
int const &  faceNumber,
std::vector< std::vector< double > > &  faceFunctions,
std::string  typeFunction 
)
privatevirtual

Implements HierarchicalBasisHcurl.

Definition at line 491 of file HierarchicalBasisHcurlPri.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ _pb1

int HierarchicalBasisHcurlPri::_pb1
private

◆ _pb2

int HierarchicalBasisHcurlPri::_pb2
private

◆ _pOrderEdge

int HierarchicalBasisHcurlPri::_pOrderEdge[9]
private

◆ _pOrderQuadFace1

int HierarchicalBasisHcurlPri::_pOrderQuadFace1[3]
private

◆ _pOrderQuadFace2

int HierarchicalBasisHcurlPri::_pOrderQuadFace2[3]
private

◆ _pOrderTriFace

int HierarchicalBasisHcurlPri::_pOrderTriFace[2]
private

The documentation for this class was generated from the following files: