3D mesh refinement gives strange mesh sizes
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
DOLFIN |
Fix Released
|
High
|
Anders Logg |
Bug Description
Something slightly peculiar seems to happen with 3d refinement. Refining
a 1 x 1 x 1 Unit Cube 3 times gives largest cell diameter that is
increasing (but smallest cell diameter that is decreasing as expected).
It does not seem to (only) be a bug in hmax()/hmin(), odd convergence
rates are also observed.
Example:
from dolfin import *
mesh = UnitCube(1, 1, 1)
for i in range(3):
mesh = refine(mesh)
print "Refinement level = ", i
print "h_max = ", mesh.hmax()
print "h_min = ", mesh.hmin()
gives:
Refinement level = 0
h_max = 1.65831239518
h_min = 0.866025403784
Refinement level = 1
h_max = 1.47901994577
h_min = 0.433012701892
Refinement level = 2
h_max = 1.7809758561
h_min = 0.216506350946
Changed in dolfin: | |
status: | Fix Committed → Fix Released |
Changed in dolfin: | |
milestone: | 1.0-rc1 → 1.0-beta2 |
Should be fixed now:
hmin = 1.73205 hmax = 1.73205
hmin = 0.866025 hmax = 0.866025
hmin = 0.433013 hmax = 0.433013
hmin = 0.216506 hmax = 0.216506
hmin = 0.108253 hmax = 0.108253
hmin = 0.0541266 hmax = 0.0541266
hmin = 0.0270633 hmax = 0.0270633
hmin = 0.0135316 hmax = 0.0135316
The problem was a missing check for how to partition the middle octahedron to avoid increasingly bad aspect ratios.