38 case(1):
return 0.5 * (1 + u);
39 case(2):
return 0.5 * (1 - u);
40 default:
throw std::runtime_error(
"j must be : 1<=j<=2");
46 std::vector<double> &vertexBasis,
47 std::vector<double> &edgeBasis,
48 std::vector<double> &faceBasis,
49 std::vector<double> &bubbleBasis)
53 double product = lambda1 * lambda2;
54 double substraction = lambda1 - lambda2;
56 vertexBasis[0] = lambda2;
57 vertexBasis[1] = lambda1;
59 for(
int k = 2; k <=
_pe; k++) {
66 double const &u,
double const &v,
double const &w,
67 std::vector<std::vector<double> > &gradientVertex,
68 std::vector<std::vector<double> > &gradientEdge,
69 std::vector<std::vector<double> > &gradientFace,
70 std::vector<std::vector<double> > &gradientBubble)
72 double dlambda1 = 0.5;
73 double dlambda2 = -0.5;
75 gradientVertex[0][0] = dlambda2;
76 gradientVertex[1][0] = dlambda1;
77 for(
int k = 2; k <=
_pe; k++) {
83 int const &flagOrientation,
int const &edgeNumber,
84 std::vector<double> &edgeFunctions,
85 const std::vector<double> &eTablePositiveFlag,
86 const std::vector<double> &eTableNegativeFlag)
88 if(flagOrientation == -1) {
89 for(
int k = 0; k <=
_pe - 2; k++) {
90 edgeFunctions[k] = eTableNegativeFlag[k];
94 for(
int k = 0; k <=
_pe - 2; k++) {
95 edgeFunctions[k] = eTablePositiveFlag[k];
101 int const &flagOrientation,
int const &edgeNumber,
102 std::vector<std::vector<double> > &edgeFunctions,
103 const std::vector<std::vector<double> > &eTablePositiveFlag,
104 const std::vector<std::vector<double> > &eTableNegativeFlag)
106 if(flagOrientation == -1) {
107 for(
int k = 0; k <=
_pe - 2; k++) {
108 edgeFunctions[k][0] = eTableNegativeFlag[k][0];
112 for(
int k = 0; k <=
_pe - 2; k++) {
113 edgeFunctions[k][0] = eTablePositiveFlag[k][0];
118 std::vector<double> &edgeFunctions)
120 for(
int k = 0; k <=
_pe - 2; k++) {
121 if(k % 2 != 0) { edgeFunctions[k] = edgeFunctions[k] * (-1); }
126 std::vector<std::vector<double> > &edgeFunctions)
128 for(
int k = 0; k <=
_pe - 2; k++) {
129 if(k % 2 != 0) { edgeFunctions[k][0] = edgeFunctions[k][0] * (-1); }
134 std::vector<int> &orderInfo)
136 functionTypeInfo[0] = 0;
138 functionTypeInfo[1] = 0;
140 for(
int k = 2; k <=
_pe; k++) {
142 functionTypeInfo[k] = 1;