Skip to content

Commit caa2bd4

Browse files
committed
Switch to Elem::positive_edge_orientation() wherever applicable
1 parent 29293bd commit caa2bd4

5 files changed

+76
-79
lines changed

src/fe/fe_bernstein_shape_2D.C

+12-12
Original file line numberDiff line numberDiff line change
@@ -208,9 +208,9 @@ Real FE<2,BERNSTEIN>::shape(const Elem * elem,
208208
unsigned int shape=i;
209209

210210

211-
if ((i==3||i==4) && elem->point(0) > elem->point(1)) shape=7-i;
212-
if ((i==5||i==6) && elem->point(1) > elem->point(2)) shape=11-i;
213-
if ((i==7||i==8) && elem->point(0) > elem->point(2)) shape=15-i;
211+
if ((i==3||i==4) && elem->positive_edge_orientation(0)) shape=7-i;
212+
if ((i==5||i==6) && elem->positive_edge_orientation(1)) shape=11-i;
213+
if ((i==7||i==8) && !elem->positive_edge_orientation(2)) shape=15-i;
214214

215215
switch(shape)
216216
{
@@ -242,9 +242,9 @@ Real FE<2,BERNSTEIN>::shape(const Elem * elem,
242242

243243
libmesh_assert_less (i, 15);
244244

245-
if ((i==3||i== 5) && elem->point(0) > elem->point(1)) shape=8-i;
246-
if ((i==6||i== 8) && elem->point(1) > elem->point(2)) shape=14-i;
247-
if ((i==9||i==11) && elem->point(0) > elem->point(2)) shape=20-i;
245+
if ((i==3||i== 5) && elem->positive_edge_orientation(0)) shape=8-i;
246+
if ((i==6||i== 8) && elem->positive_edge_orientation(1)) shape=14-i;
247+
if ((i==9||i==11) && !elem->positive_edge_orientation(2)) shape=20-i;
248248

249249

250250
switch(shape)
@@ -285,9 +285,9 @@ Real FE<2,BERNSTEIN>::shape(const Elem * elem,
285285

286286
libmesh_assert_less (i, 21);
287287

288-
if ((i>= 3&&i<= 6) && elem->point(0) > elem->point(1)) shape=9-i;
289-
if ((i>= 7&&i<=10) && elem->point(1) > elem->point(2)) shape=17-i;
290-
if ((i>=11&&i<=14) && elem->point(0) > elem->point(2)) shape=25-i;
288+
if ((i>= 3&&i<= 6) && elem->positive_edge_orientation(0)) shape=9-i;
289+
if ((i>= 7&&i<=10) && elem->positive_edge_orientation(1)) shape=17-i;
290+
if ((i>=11&&i<=14) && !elem->positive_edge_orientation(2)) shape=25-i;
291291

292292
switch(shape)
293293
{
@@ -333,9 +333,9 @@ Real FE<2,BERNSTEIN>::shape(const Elem * elem,
333333

334334
libmesh_assert_less (i, 28);
335335

336-
if ((i>= 3&&i<= 7) && elem->point(0) > elem->point(1)) shape=10-i;
337-
if ((i>= 8&&i<=12) && elem->point(1) > elem->point(2)) shape=20-i;
338-
if ((i>=13&&i<=17) && elem->point(0) > elem->point(2)) shape=30-i;
336+
if ((i>= 3&&i<= 7) && elem->positive_edge_orientation(0)) shape=10-i;
337+
if ((i>= 8&&i<=12) && elem->positive_edge_orientation(1)) shape=20-i;
338+
if ((i>=13&&i<=17) && !elem->positive_edge_orientation(2)) shape=30-i;
339339

340340
switch(shape)
341341
{

src/fe/fe_bernstein_shape_3D.C

+12-12
Original file line numberDiff line numberDiff line change
@@ -97,73 +97,73 @@ Real FE<3,BERNSTEIN>::shape(const Elem * elem,
9797
// Edge 0
9898
if ((hex_i0[i] >= 2) && (hex_i1[i] == 0) && (hex_i2[i] == 0))
9999
{
100-
if (elem->point(0) != std::min(elem->point(0), elem->point(1)))
100+
if (elem->positive_edge_orientation(0))
101101
xi_mapped = -xi;
102102
}
103103
// Edge 1
104104
else if ((hex_i0[i] == 1) && (hex_i1[i] >= 2) && (hex_i2[i] == 0))
105105
{
106-
if (elem->point(1) != std::min(elem->point(1), elem->point(2)))
106+
if (elem->positive_edge_orientation(1))
107107
eta_mapped = -eta;
108108
}
109109
// edge 2
110110
else if ((hex_i0[i] >= 2) && (hex_i1[i] == 1) && (hex_i2[i] == 0))
111111
{
112-
if (elem->point(3) != std::min(elem->point(3), elem->point(2)))
112+
if (!elem->positive_edge_orientation(2))
113113
xi_mapped = -xi;
114114
}
115115
// edge 3
116116
else if ((hex_i0[i] == 0) && (hex_i1[i] >= 2) && (hex_i2[i] == 0))
117117
{
118-
if (elem->point(0) != std::min(elem->point(0), elem->point(3)))
118+
if (elem->positive_edge_orientation(3))
119119
eta_mapped = -eta;
120120
}
121121
// edge 4
122122
else if ((hex_i0[i] == 0) && (hex_i1[i] == 0) && (hex_i2[i] >=2 ))
123123
{
124-
if (elem->point(0) != std::min(elem->point(0), elem->point(4)))
124+
if (elem->positive_edge_orientation(4))
125125
zeta_mapped = -zeta;
126126
}
127127
// edge 5
128128
else if ((hex_i0[i] == 1) && (hex_i1[i] == 0) && (hex_i2[i] >=2 ))
129129
{
130-
if (elem->point(1) != std::min(elem->point(1), elem->point(5)))
130+
if (elem->positive_edge_orientation(5))
131131
zeta_mapped = -zeta;
132132
}
133133
// edge 6
134134
else if ((hex_i0[i] == 1) && (hex_i1[i] == 1) && (hex_i2[i] >=2 ))
135135
{
136-
if (elem->point(2) != std::min(elem->point(2), elem->point(6)))
136+
if (elem->positive_edge_orientation(6))
137137
zeta_mapped = -zeta;
138138
}
139139
// edge 7
140140
else if ((hex_i0[i] == 0) && (hex_i1[i] == 1) && (hex_i2[i] >=2 ))
141141
{
142-
if (elem->point(3) != std::min(elem->point(3), elem->point(7)))
142+
if (elem->positive_edge_orientation(7))
143143
zeta_mapped = -zeta;
144144
}
145145
// edge 8
146146
else if ((hex_i0[i] >=2 ) && (hex_i1[i] == 0) && (hex_i2[i] == 1))
147147
{
148-
if (elem->point(4) != std::min(elem->point(4), elem->point(5)))
148+
if (elem->positive_edge_orientation(8))
149149
xi_mapped = -xi;
150150
}
151151
// edge 9
152152
else if ((hex_i0[i] == 1) && (hex_i1[i] >=2 ) && (hex_i2[i] == 1))
153153
{
154-
if (elem->point(5) != std::min(elem->point(5), elem->point(6)))
154+
if (elem->positive_edge_orientation(9))
155155
eta_mapped = -eta;
156156
}
157157
// edge 10
158158
else if ((hex_i0[i] >=2 ) && (hex_i1[i] == 1) && (hex_i2[i] == 1))
159159
{
160-
if (elem->point(7) != std::min(elem->point(7), elem->point(6)))
160+
if (!elem->positive_edge_orientation(10))
161161
xi_mapped = -xi;
162162
}
163163
// edge 11
164164
else if ((hex_i0[i] == 0) && (hex_i1[i] >=2 ) && (hex_i2[i] == 1))
165165
{
166-
if (elem->point(4) != std::min(elem->point(4), elem->point(7)))
166+
if (elem->positive_edge_orientation(11))
167167
eta_mapped = -eta;
168168
}
169169
}

src/fe/fe_hierarchic_shape_2D.C

+22-22
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,13 @@ quad_indices(const Elem * elem,
109109
Real f = 1.;
110110

111111
if ((i0%2) && (i0 > 2) && (i1 == 0))
112-
f = (elem->point(0) > elem->point(1))?-1.:1.;
112+
f = elem->positive_edge_orientation(0)?-1.:1.;
113113
else if ((i0%2) && (i0>2) && (i1 == 1))
114-
f = (elem->point(3) > elem->point(2))?-1.:1.;
114+
f = !elem->positive_edge_orientation(2)?-1.:1.;
115115
else if ((i0 == 0) && (i1%2) && (i1>2))
116-
f = (elem->point(0) > elem->point(3))?-1.:1.;
116+
f = !elem->positive_edge_orientation(3)?-1.:1.;
117117
else if ((i0 == 1) && (i1%2) && (i1>2))
118-
f = (elem->point(1) > elem->point(2))?-1.:1.;
118+
f = elem->positive_edge_orientation(1)?-1.:1.;
119119

120120
return {i0, i1, f};
121121
}
@@ -254,7 +254,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape(const Elem * elem,
254254
return 1;
255255

256256
if ((i < 2 || i % 2) &&
257-
elem->point(0) > elem->point(1))
257+
elem->positive_edge_orientation(0))
258258
f = -1;
259259

260260
return FE<1,HIERARCHIC>::shape(EDGE3, totalorder, i, f*(zeta1-zeta0));
@@ -271,7 +271,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape(const Elem * elem,
271271
const unsigned int side_i = i - dofs_per_side;
272272

273273
if ((side_i < 2 || side_i % 2) &&
274-
elem->point(1) > elem->point(2))
274+
elem->positive_edge_orientation(1))
275275
f = -1;
276276

277277
return FE<1,HIERARCHIC>::shape(EDGE3, totalorder, side_i, f*(zeta2-zeta1));
@@ -289,7 +289,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape(const Elem * elem,
289289
const unsigned int side_i = i - 2*dofs_per_side;
290290

291291
if ((side_i < 2 || side_i % 2) &&
292-
elem->point(2) > elem->point(0))
292+
elem->positive_edge_orientation(2))
293293
f = -1;
294294

295295
return FE<1,HIERARCHIC>::shape(EDGE3, totalorder, side_i, f*(zeta0-zeta2));
@@ -320,7 +320,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape(const Elem * elem,
320320
return 1;
321321

322322
if ((i < 2 || i % 2) &&
323-
elem->point(0) > elem->point(1))
323+
elem->positive_edge_orientation(0))
324324
f = -1;
325325

326326
return FE<1,HIERARCHIC>::shape(EDGE3, totalorder, i, f*xi);
@@ -337,7 +337,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape(const Elem * elem,
337337
const unsigned int side_i = i - dofs_per_side;
338338

339339
if ((side_i < 2 || side_i % 2) &&
340-
elem->point(1) > elem->point(2))
340+
elem->positive_edge_orientation(1))
341341
f = -1;
342342

343343
return FE<1,HIERARCHIC>::shape(EDGE3, totalorder, side_i, f*eta);
@@ -357,7 +357,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape(const Elem * elem,
357357
const unsigned int side_i = i - 2*dofs_per_side;
358358

359359
if ((side_i < 2 || side_i % 2) &&
360-
elem->point(3) > elem->point(2))
360+
!elem->positive_edge_orientation(2))
361361
f = -1;
362362

363363
return FE<1,HIERARCHIC>::shape(EDGE3, totalorder, side_i, f*xi);
@@ -373,7 +373,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape(const Elem * elem,
373373
const unsigned int side_i = i - 3*dofs_per_side;
374374

375375
if ((side_i < 2 || side_i % 2) &&
376-
elem->point(0) > elem->point(3))
376+
!elem->positive_edge_orientation(3))
377377
f = -1;
378378

379379
return FE<1,HIERARCHIC>::shape(EDGE3, totalorder, side_i, f*eta);
@@ -541,7 +541,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape_deriv(const Elem * elem,
541541
return 0;
542542

543543
if ((i < 2 || i % 2) &&
544-
elem->point(0) > elem->point(1))
544+
elem->positive_edge_orientation(0))
545545
f = -1;
546546

547547
return f*FE<1,HIERARCHIC>::shape_deriv(EDGE3, totalorder, i, 0, f*(zeta1-zeta0));
@@ -558,7 +558,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape_deriv(const Elem * elem,
558558
const unsigned int side_i = i - dofs_per_side;
559559

560560
if ((side_i < 2 || side_i % 2) &&
561-
elem->point(1) > elem->point(2))
561+
elem->positive_edge_orientation(1))
562562
f = -1;
563563

564564
Real g = 1;
@@ -583,7 +583,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape_deriv(const Elem * elem,
583583
const unsigned int side_i = i - 2*dofs_per_side;
584584

585585
if ((side_i < 2 || side_i % 2) &&
586-
elem->point(2) > elem->point(0))
586+
elem->positive_edge_orientation(2))
587587
f = -1;
588588

589589
return -f*FE<1,HIERARCHIC>::shape_deriv(EDGE3, totalorder, side_i, 0, f*(zeta0-zeta2));
@@ -613,7 +613,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape_deriv(const Elem * elem,
613613
if (j != 0)
614614
return 0;
615615
if ((i < 2 || i % 2) &&
616-
elem->point(0) > elem->point(1))
616+
elem->positive_edge_orientation(0))
617617
f = -1;
618618

619619
return f*FE<1,HIERARCHIC>::shape_deriv(EDGE3, totalorder, i, 0, f*xi);
@@ -629,7 +629,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape_deriv(const Elem * elem,
629629
const unsigned int side_i = i - dofs_per_side;
630630

631631
if ((side_i < 2 || side_i % 2) &&
632-
elem->point(1) > elem->point(2))
632+
elem->positive_edge_orientation(1))
633633
f = -1;
634634

635635
return f*FE<1,HIERARCHIC>::shape_deriv(EDGE3, totalorder, side_i, 0, f*eta);
@@ -648,7 +648,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape_deriv(const Elem * elem,
648648
const unsigned int side_i = i - 2*dofs_per_side;
649649

650650
if ((side_i < 2 || side_i % 2) &&
651-
elem->point(3) > elem->point(2))
651+
!elem->positive_edge_orientation(2))
652652
f = -1;
653653

654654
return f*FE<1,HIERARCHIC>::shape_deriv(EDGE3, totalorder, side_i, 0, f*xi);
@@ -663,7 +663,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape_deriv(const Elem * elem,
663663
const unsigned int side_i = i - 3*dofs_per_side;
664664

665665
if ((side_i < 2 || side_i % 2) &&
666-
elem->point(0) > elem->point(3))
666+
!elem->positive_edge_orientation(3))
667667
f = -1;
668668

669669
return f*FE<1,HIERARCHIC>::shape_deriv(EDGE3, totalorder, side_i, 0, f*eta);
@@ -827,7 +827,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape_second_deriv(const Elem * elem,
827827
if (j != 0)
828828
return 0;
829829
if ((i < 2 || i % 2) &&
830-
elem->point(0) > elem->point(1))
830+
elem->positive_edge_orientation(0))
831831
f = -1;
832832

833833
return FE<1,HIERARCHIC>::shape_second_deriv(EDGE3, totalorder, i, 0, f*xi);
@@ -843,7 +843,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape_second_deriv(const Elem * elem,
843843
const unsigned int side_i = i - dofs_per_side;
844844

845845
if ((side_i < 2 || side_i % 2) &&
846-
elem->point(1) > elem->point(2))
846+
elem->positive_edge_orientation(1))
847847
f = -1;
848848

849849
return FE<1,HIERARCHIC>::shape_second_deriv(EDGE3, totalorder, side_i, 0, f*eta);
@@ -862,7 +862,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape_second_deriv(const Elem * elem,
862862
const unsigned int side_i = i - 2*dofs_per_side;
863863

864864
if ((side_i < 2 || side_i % 2) &&
865-
elem->point(3) > elem->point(2))
865+
!elem->positive_edge_orientation(2))
866866
f = -1;
867867

868868
return FE<1,HIERARCHIC>::shape_second_deriv(EDGE3, totalorder, side_i, 0, f*xi);
@@ -877,7 +877,7 @@ Real FE<2,SIDE_HIERARCHIC>::shape_second_deriv(const Elem * elem,
877877
const unsigned int side_i = i - 3*dofs_per_side;
878878

879879
if ((side_i < 2 || side_i % 2) &&
880-
elem->point(0) > elem->point(3))
880+
!elem->positive_edge_orientation(3))
881881
f = -1;
882882

883883
return FE<1,HIERARCHIC>::shape_second_deriv(EDGE3, totalorder, side_i, 0, f*eta);

0 commit comments

Comments
 (0)