Skip to content

Commit e4ceb21

Browse files
committed
fixup ratio scaling and trim some steps
1 parent 0192054 commit e4ceb21

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

src/quality.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,20 +95,20 @@ function volume_edge_ratio(a,b,c,d)
9595
v = c .- d
9696
volume = t[1]*(u[2]*v[3]-v[2]*u[3])-u[1]*(t[2]*v[3]-v[2]*t[3])+v[1]*(t[2]*u[3]-u[2]*t[3])
9797
edges = (t,u,v,a.-b,b.-c,a.-c)
98-
lengths = norm.(edges)
99-
l_rms = sqrt(sum(lengths.^2)/6)
100-
return volume/(sqrt(2)*l_rms^3)
98+
lengths = dot.(edges,edges)
99+
l_rms = sqrt(sum(lengths)/6)
100+
return sqrt(2)*volume/(l_rms^3)
101101
end
102102

103103
"""
104104
105105
update a pre-allocated array with tetrahedra qualities
106106
"""
107-
function volume_edge_ratio(points::Vector{T},tets) where {T}
107+
function volume_edge_extrema(points::Vector{T},tets) where {T}
108108
n = length(tets)
109109
min_q = typemax(eltype(T))
110110
max_q = typemin(eltype(T))
111-
for i = 1:n
111+
@inbounds for i = 1:n
112112
tet = tets[i]
113113
q = volume_edge_ratio(points[tet[1]],points[tet[2]],points[tet[3]],points[tet[4]])
114114
min_q = min(q,min_q)

test/runtests.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ end
4343
pts = ([1,0,-1/sqrt(2)], [-1,0,-1/sqrt(2)], [0,1,1/sqrt(2)], [0,-1,1/sqrt(2)])
4444
pts2 = ([1,1,1], [1,-1,-1], [-1,1,-1], [-1,-1,1])
4545
pts_degenerate = ([1,1,1], [1,1,1], [-1,1,-1], [-1,-1,1])
46-
@show DistMesh.volume_edge_ratio(pts...)
47-
@show DistMesh.volume_edge_ratio((pts.*2)...)
48-
@show DistMesh.volume_edge_ratio((pts.*1e-6)...) 0.5
46+
@test DistMesh.volume_edge_ratio(pts...) 1
47+
@test DistMesh.volume_edge_ratio((pts.*2)...) 1
48+
@test DistMesh.volume_edge_ratio((pts.*1e-6)...) 1
4949
@test isnan(DistMesh.volume_edge_ratio((pts.*0)...))
50-
@show DistMesh.volume_edge_ratio(pts2...)
51-
@show DistMesh.volume_edge_ratio((pts2.*2)...)
50+
@test DistMesh.volume_edge_ratio(pts2...) 1
51+
@test DistMesh.volume_edge_ratio((pts2.*2)...) 1
5252
@test DistMesh.volume_edge_ratio(pts_degenerate...) == 0
5353

5454
end

0 commit comments

Comments
 (0)