We start with a mesh of the unit cube. The edges of the tetrahedra have lengths close to 0.1. We move the cube to lie in the first octant. In the figures below, we show the modified condition number of the elements.
cp ../../../data/geom/mesh/33/cube_1_1_1_0.1.txt mesh.txt python.exe ../../../data/geom/mesh/utilities/vertices_map.py translate mesh.txt mesh.txt
The initial mesh of the cube. The minimum modified condition number is 0.58; the mean is 0.86.
x = x + x * x + y * y + z * z y = y + x * x + y * y + z * z z = z + x * x + y * y + z * z
The distortion reduces the quality of the mesh.
python.exe ../../../data/geom/mesh/utilities/vertices_map.py distort mesh.txt distorted.txt
The distorted mesh. The minimum modified condition number is 0.22; the mean is 0.82.
utility/boundary33.exe distorted.txt boundary.txt optimization/refine33.exe -length=0.2 -manifold=boundary.txt -dihedralAngle=0.5 distorted.txt r1t0g0.txt
The mesh after refinement based on edge length. There are 10,785 cells. The minimum modified condition number is 0.20; the mean is 0.77.
optimization/topologicalOptimize3.exe -manifold=boundary.txt -angle=0.5 r1t0g0.txt r1t1g0.txt optimization/geometricOptimize3.exe -boundary=boundary.txt -dihedralAngle=0.5 r1t1g0.txt r1t1g1.txt optimization/topologicalOptimize3.exe -manifold=boundary.txt -angle=0.5 r1t1g1.txt r1t2g1.txt optimization/geometricOptimize3.exe -boundary=boundary.txt -dihedralAngle=0.5 r1t2g1.txt r1t2g2.txt optimization/topologicalOptimize3.exe -manifold=boundary.txt -angle=0.5 r1t2g2.txt r1t3g2.txt optimization/geometricOptimize3.exe -boundary=boundary.txt -dihedralAngle=0.5 r1t3g2.txt r1t3g3.txt
1 optimization cycle. The minimum modified condition number is 0.27; the mean is 0.83.
2 optimization cycles. The minimum modified condition number is 0.39; the mean is 0.85.
3 optimization cycles. The minimum modified condition number is 0.44; the mean is 0.86.
Another refinement approach is to refine the cells that have become distorted. We refine the cells whose modified condition number is less than 0.5.
utility/cellAttributes33.exe -mcn distorted.txt mcn.txt utility/selectCells.exe -upper=0.5 mcn.txt indices.txt optimization/refineCells33.exe indices.txt distorted.txt rq1t0g0.txt
The mesh after refinement based on cell quality. There are 8,608 cells. The minimum modified condition number is 0.21; the mean is 0.80.
3 optimization cycles. The minimum modified condition number is 0.39; the mean is 0.87.