Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,6 @@ jobs:
- uses: codecov/codecov-action@v5
with:
files: lcov.info
# fail_ci_if_error: true
fail_ci_if_error: true
env:
token: ${{ secrets.CODECOV_TOKEN }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
1 change: 1 addition & 0 deletions docs/src/element_types.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,6 @@ Serendipity

# Quadrature types
```@docs
GaussLegendre
GaussLobattoLegendre
```
2 changes: 1 addition & 1 deletion src/ReferenceFiniteElements.jl
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,8 @@ export Serendipity

# quadrature types
export AbstractQuadratureType
export GaussLobattoLegendre
export GaussLegendre
export GaussLobattoLegendre

# reference fe
export ReferenceFE
Expand Down
137 changes: 74 additions & 63 deletions test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -523,6 +523,9 @@ function test_ref_fe(
# TODO eventually disable this for tets
if el_type <: ReferenceFiniteElements.AbstractTet
# do nothing here
elseif el_type <: ReferenceFiniteElements.AbstractTri &&
typeof(q_rule) <: GaussLegendre
# do nothing here
else
test_q_weight_positivity(re)
end
Expand Down Expand Up @@ -592,79 +595,87 @@ end
# TODO add Vertex tests
# types = [StaticH1OrL2Interpolants, SH1OrL2Interpolants]
types = [StaticH1OrL2Interpolants, StaticH1OrL2InterpolantsWithHessians]

q_types = [GaussLegendre, GaussLobattoLegendre]
max_degrees = [3, 5]
for type in types
for p in 0:5
if p == 0
q_degree = 1
else
q_degree = p
for (q_type, max_degree) in zip(q_types, max_degrees)
for p in 0:max_degree
if p == 0
q_degree = 1
else
q_degree = p
end
# q_rule = GaussLobattoLegendre(q_degree)
q_rule = q_type(q_degree)
test_ref_fe(
Edge, Lagrange, p, q_rule;
shifted = false,
interpolants_type = type,
nodal_locations = ReferenceFiniteElements.EQUALLY_SPACED
)
test_ref_fe(
Edge, Lagrange, p, q_rule;
shifted = true,
interpolants_type = type,
nodal_locations = ReferenceFiniteElements.EQUALLY_SPACED
)
# test_ref_fe(
# Edge, Lagrange, p, q_rule;
# shifted = false,
# interpolants_type = type,
# nodal_locations = ReferenceFiniteElements.GLL
# )
# test_ref_fe(
# Edge, Lagrange, p, q_rule;
# shifted = true,
# interpolants_type = type,
# nodal_locations = ReferenceFiniteElements.GLL
# )
end
q_rule = GaussLobattoLegendre(q_degree)
test_ref_fe(
Edge, Lagrange, p, q_rule;
shifted = false,
interpolants_type = type,
nodal_locations = ReferenceFiniteElements.EQUALLY_SPACED
)
test_ref_fe(
Edge, Lagrange, p, q_rule;
shifted = true,
interpolants_type = type,
nodal_locations = ReferenceFiniteElements.EQUALLY_SPACED
)
# test_ref_fe(
# Edge, Lagrange, p, q_rule;
# shifted = false,
# interpolants_type = type,
# nodal_locations = ReferenceFiniteElements.GLL
# )
# test_ref_fe(
# Edge, Lagrange, p, q_rule;
# shifted = true,
# interpolants_type = type,
# nodal_locations = ReferenceFiniteElements.GLL
# )
end

for p in 0:5
if p == 0
q_degree = 1
else
q_degree = p
for p in 0:max_degree
if p == 0
q_degree = 1
else
q_degree = p
end
# q_rule = GaussLobattoLegendre(q_degree)
q_rule = q_type(q_degree)
test_ref_fe(Quad, Lagrange, p, q_rule; interpolants_type = type)
end
q_rule = GaussLobattoLegendre(q_degree)
test_ref_fe(Quad, Lagrange, p, q_rule; interpolants_type = type)
end

for p in 1:5
if p == 0
q_degree = 1
else
q_degree = p
for p in 1:max_degree
if p == 0
q_degree = 1
else
q_degree = p
end
# q_rule = GaussLobattoLegendre(q_degree)
q_rule = q_type(q_degree)
test_ref_fe(Tri, Lagrange, p, q_rule; interpolants_type = type)
end
q_rule = GaussLobattoLegendre(q_degree)
test_ref_fe(Tri, Lagrange, p, q_rule; interpolants_type = type)
end

for p in 1:1
if p == 0
q_degree = 1
else
q_degree = p
for p in 1:1
if p == 0
q_degree = 1
else
q_degree = p
end
# q_rule = GaussLobattoLegendre(q_degree)
q_rule = q_type(q_degree)
test_ref_fe(Hex, Lagrange, p, q_rule; interpolants_type = type)
end
q_rule = GaussLobattoLegendre(q_degree)
test_ref_fe(Hex, Lagrange, p, q_rule; interpolants_type = type)
end

for p in 0:2
if p == 0
q_degree = 1
else
q_degree = p
for p in 0:2
if p == 0
q_degree = 1
else
q_degree = p
end
# q_rule = GaussLobattoLegendre(q_degree)
q_rule = q_type(q_degree)
test_ref_fe(Tet, Lagrange, p, q_rule; interpolants_type = type)
end
q_rule = GaussLobattoLegendre(q_degree)
test_ref_fe(Tet, Lagrange, p, q_rule; interpolants_type = type)
end
end

Expand Down
Loading