3D mesh refinement gives strange mesh sizes

Bug #663250 reported by Marie Rognes
6
This bug affects 1 person
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

Revision history for this message
Anders Logg (logg) wrote :

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.

Changed in dolfin:
status: Confirmed → Fix Committed
Changed in dolfin:
status: Fix Committed → Fix Released
Anders Logg (logg)
Changed in dolfin:
milestone: 1.0-rc1 → 1.0-beta2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.