gmsh-TingyuanDoc  0.1
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
BasisFactory.h
Go to the documentation of this file.
1 // Gmsh - Copyright (C) 1997-2022 C. Geuzaine, J.-F. Remacle
2 //
3 // See the LICENSE.txt file in the Gmsh root directory for license information.
4 // Please report all issues on https://gitlab.onelab.info/gmsh/gmsh/issues.
5 
6 #ifndef BASISFACTORY_H
7 #define BASISFACTORY_H
8 
9 #include <map>
10 class nodalBasis;
11 class GradientBasis;
12 class bezierBasis;
13 class CondNumBasis;
14 class JacobianBasis;
15 class FuncSpaceData;
16 
17 class BasisFactory {
18 private:
19  static std::map<int, nodalBasis *> fs;
20  static std::map<int, CondNumBasis *> cs;
21  static std::map<FuncSpaceData, JacobianBasis *> js;
22  static std::map<FuncSpaceData, bezierBasis *> bs;
23  static std::map<FuncSpaceData, GradientBasis *> gs;
24 
25 public:
26  // Caution: the returned pointer can be NULL
27 
28  // Nodal
29  static const nodalBasis *getNodalBasis(int tag);
30 
31  // Jacobian
32  // Warning: bases returned by BasisFactory::getJacobianBasis(int tag) are the
33  // only safe bases for using Bezier on the jacobian determinant!
34  static const JacobianBasis *getJacobianBasis(int tag, FuncSpaceData);
35  static const JacobianBasis *getJacobianBasis(int tag, int order);
36  static const JacobianBasis *getJacobianBasis(int tag);
37 
38  // Condition number
39  static const CondNumBasis *getCondNumBasis(int tag, int cnOrder = -1);
40 
41  // Gradients
42  static const GradientBasis *getGradientBasis(int tag, FuncSpaceData);
43  static const GradientBasis *getGradientBasis(int tag, int order);
44  static const GradientBasis *getGradientBasis(int tag);
45 
46  // Bezier
48  static const bezierBasis *getBezierBasis(int parentType, int order);
49  static const bezierBasis *getBezierBasis(int tag);
50 
51  static void clearAll();
52 };
53 
54 #endif
BasisFactory::fs
static std::map< int, nodalBasis * > fs
Definition: BasisFactory.h:19
BasisFactory::getJacobianBasis
static const JacobianBasis * getJacobianBasis(int tag, FuncSpaceData)
Definition: BasisFactory.cpp:62
BasisFactory
Definition: BasisFactory.h:17
bezierBasis
Definition: bezierBasis.h:20
BasisFactory::js
static std::map< FuncSpaceData, JacobianBasis * > js
Definition: BasisFactory.h:21
CondNumBasis
Definition: CondNumBasis.h:14
BasisFactory::gs
static std::map< FuncSpaceData, GradientBasis * > gs
Definition: BasisFactory.h:23
BasisFactory::getNodalBasis
static const nodalBasis * getNodalBasis(int tag)
Definition: BasisFactory.cpp:23
BasisFactory::getBezierBasis
static const bezierBasis * getBezierBasis(FuncSpaceData)
Definition: BasisFactory.cpp:128
BasisFactory::getGradientBasis
static const GradientBasis * getGradientBasis(int tag, FuncSpaceData)
Definition: BasisFactory.cpp:105
BasisFactory::cs
static std::map< int, CondNumBasis * > cs
Definition: BasisFactory.h:20
FuncSpaceData
Definition: FuncSpaceData.h:16
nodalBasis
Definition: nodalBasis.h:12
JacobianBasis
Definition: JacobianBasis.h:60
BasisFactory::getCondNumBasis
static const CondNumBasis * getCondNumBasis(int tag, int cnOrder=-1)
Definition: BasisFactory.cpp:95
BasisFactory::clearAll
static void clearAll()
Definition: BasisFactory.cpp:150
GradientBasis
Definition: JacobianBasis.h:12
BasisFactory::bs
static std::map< FuncSpaceData, bezierBasis * > bs
Definition: BasisFactory.h:22