diff --git a/Benchmarks/ControlFiles/BlobAdapt.control b/Benchmarks/ControlFiles/BlobAdapt.control index 516a9ee2..094b5e9a 100644 --- a/Benchmarks/ControlFiles/BlobAdapt.control +++ b/Benchmarks/ControlFiles/BlobAdapt.control @@ -2,9 +2,8 @@ \begin{RUN_PARAMETERS} mesh file name = Benchmarks/MeshFiles/Tests/BlobAdapt.mesh - plot file name = Benchmarks/MeshFiles/Tests/BlobAdapt.tec - stats file name = none - error file name = Benchmarks/MeshFiles/Tests/BlobAdaptErrors.txt + plot file name = Benchmarks/PlotFiles/Tests/BlobAdapt.tec + stats file name = Benchmarks/StatsFiles/Tests/BlobAdapt.txt test file name = Benchmarks/BenchmarkData/BlobAdapt.txt mesh file format = ISM polynomial order = 6 diff --git a/Benchmarks/StatsFiles/Benchmarks/BlobAdapt.txt b/Benchmarks/StatsFiles/Benchmarks/BlobAdapt.txt new file mode 100644 index 00000000..fc1733e7 --- /dev/null +++ b/Benchmarks/StatsFiles/Benchmarks/BlobAdapt.txt @@ -0,0 +1,294 @@ + + ---------------- + Bad Element Info + ---------------- + + Element 220 + 3.4721981913810898 2.2527649308476123 0.0000000000000000 + 3.5429174795328664 2.2522760463398779 0.0000000000000000 + 3.4365036835270293 2.3991621042514875 0.0000000000000000 + 3.3935538089689494 2.2869296310466574 0.0000000000000000 + Problems: + Maximum Angle 156.91498601370748 + + ////////////////////////////////////////////////// + + ------------------------ + 2D Mesh Quality Measures + ------------------------ + +Signed Area Aspect Ratio Condition Edge Ratio Jacobian Minimum Angle Maximum Angle Area Sign + 5.2103E-01 1.1714E+00 1.1029E+00 1.4166E+00 3.7597E-01 8.0600E+01 1.1323E+02 1.0000E+00 + 8.3786E-01 1.1885E+00 1.1683E+00 1.3190E+00 6.1995E-01 7.0332E+01 1.2058E+02 1.0000E+00 + 8.2120E-01 1.1889E+00 1.1149E+00 1.3035E+00 6.0177E-01 7.6996E+01 1.1623E+02 1.0000E+00 + 8.1713E-01 1.1503E+00 1.1151E+00 1.2176E+00 6.7270E-01 7.0864E+01 1.1596E+02 1.0000E+00 + 7.3087E-01 1.1170E+00 1.0174E+00 1.1964E+00 6.2836E-01 8.3068E+01 9.9379E+01 1.0000E+00 + 7.6458E-01 1.1429E+00 1.0461E+00 1.2456E+00 6.4854E-01 7.7511E+01 1.0666E+02 1.0000E+00 + 9.2330E-01 1.0374E+00 1.0043E+00 1.0901E+00 8.6318E-01 8.4895E+01 9.2480E+01 1.0000E+00 + 9.1065E-01 1.0530E+00 1.0099E+00 1.1252E+00 8.4273E-01 8.2439E+01 9.4370E+01 1.0000E+00 + 7.6020E-01 1.1576E+00 1.0348E+00 1.3002E+00 6.1721E-01 7.6378E+01 9.8214E+01 1.0000E+00 + 7.5728E-01 1.1885E+00 1.1335E+00 1.3521E+00 5.4063E-01 7.5439E+01 1.1776E+02 1.0000E+00 + 8.5161E-01 1.0446E+00 1.0115E+00 1.0905E+00 7.9563E-01 8.1379E+01 9.5303E+01 1.0000E+00 + 8.0819E-01 1.0148E+00 1.0015E+00 1.0262E+00 8.0073E-01 8.7416E+01 9.3025E+01 1.0000E+00 + 8.2054E-01 1.0090E+00 1.0014E+00 1.0281E+00 8.0807E-01 8.7445E+01 9.2705E+01 1.0000E+00 + 8.4885E-01 1.0256E+00 1.0050E+00 1.0589E+00 8.1138E-01 8.4294E+01 9.3800E+01 1.0000E+00 + 5.9681E-01 1.2344E+00 1.0513E+00 1.4615E+00 4.7489E-01 7.6670E+01 1.0513E+02 1.0000E+00 + 7.0581E-01 1.1653E+00 1.1248E+00 1.2922E+00 4.9776E-01 7.9438E+01 1.1724E+02 1.0000E+00 + 8.5440E-01 1.0448E+00 1.0107E+00 1.0764E+00 8.0205E-01 8.1678E+01 9.5206E+01 1.0000E+00 + 7.5216E-01 1.0350E+00 1.0081E+00 1.0666E+00 7.0776E-01 8.5646E+01 9.7233E+01 1.0000E+00 + 6.7568E-01 1.1590E+00 1.0554E+00 1.2816E+00 5.5857E-01 7.6815E+01 1.0810E+02 1.0000E+00 + 7.9956E-01 1.1277E+00 1.0596E+00 1.2523E+00 6.4939E-01 7.8839E+01 1.0885E+02 1.0000E+00 + 7.2552E-01 1.1925E+00 1.0924E+00 1.3856E+00 6.0286E-01 7.0144E+01 1.1057E+02 1.0000E+00 + 4.7500E-01 1.0723E+00 1.0218E+00 1.1499E+00 4.1899E-01 8.4743E+01 1.0163E+02 1.0000E+00 + 3.6686E-02 1.1690E+00 1.0994E+00 1.3611E+00 2.7548E-02 7.6343E+01 1.1346E+02 1.0000E+00 + 6.8778E-02 1.1346E+00 1.0470E+00 1.3388E+00 5.8328E-02 7.8459E+01 9.5274E+01 1.0000E+00 + 3.8285E-02 1.3367E+00 1.1393E+00 1.6451E+00 2.4945E-02 7.3241E+01 1.1742E+02 1.0000E+00 + 6.6524E-02 1.0871E+00 1.0368E+00 1.1126E+00 6.4606E-02 7.5332E+01 1.0365E+02 1.0000E+00 + 5.5448E-02 1.1809E+00 1.0351E+00 1.2475E+00 4.8605E-02 8.1497E+01 9.9839E+01 1.0000E+00 + 4.0924E-02 1.3509E+00 1.2908E+00 1.6325E+00 2.3748E-02 6.8064E+01 1.2847E+02 1.0000E+00 + 5.6980E-02 1.1786E+00 1.0455E+00 1.2587E+00 4.9794E-02 7.6622E+01 1.0448E+02 1.0000E+00 + 7.5606E-02 1.0437E+00 1.0094E+00 1.0839E+00 7.1304E-02 8.4150E+01 9.7622E+01 1.0000E+00 + 4.9209E-02 1.1545E+00 1.0562E+00 1.2517E+00 4.1851E-02 7.5257E+01 1.0832E+02 1.0000E+00 + 9.4306E-02 1.4134E+00 1.2471E+00 1.9288E+00 5.5396E-02 6.7742E+01 1.2240E+02 1.0000E+00 + 8.0612E-02 1.5995E+00 1.3954E+00 2.1160E+00 4.7195E-02 5.5671E+01 1.2928E+02 1.0000E+00 + 1.7381E-01 1.5309E+00 1.1932E+00 1.9889E+00 1.0723E-01 6.6842E+01 1.1844E+02 1.0000E+00 + 1.2743E-01 1.1641E+00 1.0759E+00 1.5054E+00 1.0132E-01 7.8414E+01 1.0116E+02 1.0000E+00 + 2.5147E-01 1.1771E+00 1.1511E+00 1.3931E+00 2.0854E-01 6.4574E+01 1.1352E+02 1.0000E+00 + 1.8631E-01 1.1936E+00 1.0379E+00 1.2994E+00 1.5331E-01 7.9097E+01 1.0038E+02 1.0000E+00 + 6.8560E-02 1.5343E+00 1.4611E+00 1.9374E+00 4.3613E-02 5.2134E+01 1.3143E+02 1.0000E+00 + 4.4078E-02 1.1162E+00 1.0197E+00 1.2113E+00 3.6737E-02 8.1765E+01 1.0101E+02 1.0000E+00 + 8.0112E-02 1.4609E+00 1.3862E+00 2.0529E+00 4.5771E-02 6.0753E+01 1.2756E+02 1.0000E+00 + 2.1604E-01 1.2325E+00 1.1457E+00 1.3803E+00 1.5230E-01 7.5127E+01 1.1907E+02 1.0000E+00 + 2.0052E-01 1.1773E+00 1.0483E+00 1.3270E+00 1.6654E-01 7.6639E+01 1.0628E+02 1.0000E+00 + 3.0416E-01 1.0312E+00 1.0053E+00 1.0871E+00 2.9353E-01 8.6011E+01 9.3402E+01 1.0000E+00 + 4.5933E-02 1.0979E+00 1.0505E+00 1.1780E+00 3.8186E-02 8.1806E+01 1.0779E+02 1.0000E+00 + 8.3556E-02 1.4654E+00 1.2876E+00 2.0107E+00 5.2793E-02 6.1037E+01 1.2217E+02 1.0000E+00 + 8.6107E-02 1.5884E+00 1.4356E+00 2.2223E+00 4.6773E-02 5.7315E+01 1.3004E+02 1.0000E+00 + 2.4558E-01 1.2609E+00 1.1178E+00 1.4307E+00 1.8519E-01 7.0484E+01 1.1578E+02 1.0000E+00 + 3.1035E-01 1.2740E+00 1.1384E+00 1.4326E+00 2.4792E-01 6.2161E+01 1.1433E+02 1.0000E+00 + 3.4353E-01 1.6245E+00 1.3880E+00 2.0912E+00 2.0140E-01 5.5268E+01 1.2989E+02 1.0000E+00 + 1.8101E-01 1.9315E+00 1.7039E+00 3.0816E+00 4.8030E-02 3.9007E+01 1.3317E+02 1.0000E+00 + 3.4971E-01 1.4424E+00 1.4012E+00 2.1893E+00 2.0893E-01 5.6236E+01 1.1844E+02 1.0000E+00 + 2.5427E-01 1.1405E+00 1.0558E+00 1.3328E+00 2.1787E-01 7.4855E+01 9.9420E+01 1.0000E+00 + 2.2832E-01 1.0888E+00 1.0195E+00 1.1552E+00 2.2631E-01 8.1995E+01 9.7819E+01 1.0000E+00 + 6.8525E-02 1.6332E+00 1.3343E+00 2.4133E+00 3.4613E-02 6.3575E+01 1.2540E+02 1.0000E+00 + 1.9080E-01 1.1956E+00 1.0587E+00 1.2837E+00 1.5363E-01 7.7495E+01 1.0917E+02 1.0000E+00 + 2.4100E-01 1.2315E+00 1.2290E+00 1.4804E+00 1.4995E-01 7.3440E+01 1.2473E+02 1.0000E+00 + 3.1107E-01 1.5284E+00 1.4906E+00 2.1311E+00 1.7065E-01 5.6601E+01 1.3177E+02 1.0000E+00 + 1.6882E-01 1.0837E+00 1.0162E+00 1.1733E+00 1.4499E-01 8.3910E+01 1.0012E+02 1.0000E+00 + 3.1828E-01 1.4880E+00 1.3963E+00 2.0564E+00 1.8513E-01 5.8808E+01 1.2811E+02 1.0000E+00 + 1.7272E-01 1.0899E+00 1.0476E+00 1.1589E+00 1.4587E-01 8.1514E+01 1.0731E+02 1.0000E+00 + 3.1548E-01 1.4938E+00 1.3101E+00 2.0729E+00 1.8793E-01 6.1469E+01 1.2405E+02 1.0000E+00 + 3.2437E-01 1.5751E+00 1.3815E+00 2.1594E+00 1.7995E-01 5.8787E+01 1.2864E+02 1.0000E+00 + 3.1562E-01 1.5519E+00 1.3600E+00 1.9746E+00 1.9876E-01 5.5438E+01 1.2814E+02 1.0000E+00 + 1.9022E-01 1.1409E+00 1.0314E+00 1.2608E+00 1.5999E-01 8.4252E+01 1.0274E+02 1.0000E+00 + 3.8873E-01 1.5644E+00 1.4112E+00 2.3590E+00 1.8441E-01 6.4626E+01 1.2912E+02 1.0000E+00 + 2.1937E-01 1.0588E+00 1.0078E+00 1.1202E+00 2.0202E-01 8.3038E+01 9.2469E+01 1.0000E+00 + 3.0237E-01 1.3067E+00 1.1266E+00 1.5939E+00 2.0922E-01 6.3165E+01 1.0596E+02 1.0000E+00 + 3.9513E-01 1.4796E+00 1.1716E+00 1.9600E+00 2.4663E-01 6.2174E+01 1.1150E+02 1.0000E+00 + 2.1526E-01 1.7066E+00 1.7707E+00 2.5347E+00 5.4011E-02 4.9247E+01 1.4519E+02 1.0000E+00 + 2.9864E-01 1.4074E+00 1.3254E+00 1.9054E+00 1.5281E-01 7.0092E+01 1.2877E+02 1.0000E+00 + 7.4219E-02 2.0766E+00 1.5828E+00 2.4195E+00 3.7172E-02 5.3296E+01 1.3334E+02 1.0000E+00 + 1.3751E-01 1.2834E+00 1.2840E+00 1.4441E+00 9.1875E-02 6.4409E+01 1.2803E+02 1.0000E+00 + 1.5527E-01 1.0518E+00 1.0160E+00 1.1019E+00 1.4790E-01 7.9943E+01 9.8171E+01 1.0000E+00 + 2.4412E-01 1.5692E+00 1.5089E+00 2.2231E+00 1.4884E-01 5.0628E+01 1.2744E+02 1.0000E+00 + 1.4318E-01 1.1007E+00 1.0313E+00 1.2715E+00 1.1867E-01 7.8754E+01 9.8110E+01 1.0000E+00 + 2.8840E-01 1.6241E+00 1.5792E+00 2.2107E+00 1.5897E-01 5.1647E+01 1.3445E+02 1.0000E+00 + 3.1087E-01 1.1710E+00 1.0743E+00 1.4255E+00 2.4781E-01 7.2404E+01 1.0378E+02 1.0000E+00 + 1.2378E-01 1.3754E+00 1.2044E+00 1.6873E+00 7.6113E-02 6.9587E+01 1.2284E+02 1.0000E+00 + 2.1332E-01 1.0753E+00 1.0493E+00 1.1876E+00 1.8722E-01 7.7601E+01 1.0615E+02 1.0000E+00 + 2.5455E-01 1.0843E+00 1.0184E+00 1.1491E+00 2.3095E-01 7.9457E+01 9.6163E+01 1.0000E+00 + 1.8711E-01 1.2690E+00 1.2509E+00 1.4191E+00 1.1403E-01 7.2617E+01 1.2692E+02 1.0000E+00 + 2.3637E-01 1.1053E+00 1.0314E+00 1.1591E+00 2.1768E-01 7.6593E+01 1.0271E+02 1.0000E+00 + 2.8605E-01 1.4725E+00 1.3875E+00 2.0092E+00 1.6775E-01 5.9171E+01 1.2820E+02 1.0000E+00 + 1.7131E-01 1.1179E+00 1.0302E+00 1.2361E+00 1.3518E-01 7.9569E+01 1.0391E+02 1.0000E+00 + 2.8016E-01 1.4892E+00 1.3845E+00 2.0172E+00 1.6761E-01 5.8081E+01 1.2789E+02 1.0000E+00 + 2.9762E-01 1.4615E+00 1.3213E+00 1.8889E+00 1.9119E-01 5.8517E+01 1.2592E+02 1.0000E+00 + 3.3062E-01 1.4402E+00 1.2816E+00 1.9448E+00 1.9931E-01 6.3704E+01 1.2389E+02 1.0000E+00 + 1.9984E-01 1.1430E+00 1.0656E+00 1.2551E+00 1.5531E-01 8.0905E+01 1.1019E+02 1.0000E+00 + 2.8110E-01 1.0668E+00 1.0243E+00 1.1569E+00 2.6268E-01 8.1747E+01 1.0043E+02 1.0000E+00 + 2.5334E-01 1.1243E+00 1.0290E+00 1.2343E+00 2.2095E-01 7.7085E+01 1.0003E+02 1.0000E+00 + 1.4551E-01 1.4074E+00 1.1708E+00 1.5717E+00 9.8564E-02 6.8042E+01 1.2051E+02 1.0000E+00 + 1.5813E-01 1.2664E+00 1.2066E+00 1.5254E+00 9.3481E-02 7.6286E+01 1.2376E+02 1.0000E+00 + 2.2306E-01 1.0983E+00 1.0248E+00 1.1248E+00 2.0957E-01 7.8729E+01 1.0144E+02 1.0000E+00 + 2.4527E-01 1.0706E+00 1.0131E+00 1.1498E+00 2.1825E-01 8.0816E+01 9.3429E+01 1.0000E+00 + 1.5653E-01 1.3295E+00 1.1150E+00 1.4769E+00 1.1741E-01 7.1746E+01 1.1342E+02 1.0000E+00 + 2.0922E-01 1.1309E+00 1.0614E+00 1.3388E+00 1.7485E-01 7.6572E+01 1.0554E+02 1.0000E+00 + 2.7538E-01 1.4886E+00 1.3551E+00 2.0206E+00 1.6724E-01 5.8731E+01 1.2641E+02 1.0000E+00 + 1.6898E-01 1.2705E+00 1.0916E+00 1.6100E+00 1.1211E-01 6.8386E+01 1.0752E+02 1.0000E+00 + 2.6030E-01 1.6684E+00 1.4434E+00 2.5051E+00 1.4501E-01 5.5298E+01 1.2608E+02 1.0000E+00 + 3.5806E-01 1.0724E+00 1.0104E+00 1.1535E+00 3.2958E-01 8.2657E+01 9.6337E+01 1.0000E+00 + 2.7631E-01 1.0583E+00 1.0102E+00 1.1144E+00 2.5212E-01 8.1903E+01 9.4040E+01 1.0000E+00 + 3.2583E-01 1.0977E+00 1.0301E+00 1.2288E+00 2.7666E-01 7.6122E+01 9.7517E+01 1.0000E+00 + 2.3888E-01 1.0448E+00 1.0063E+00 1.1190E+00 2.2378E-01 8.6163E+01 9.4655E+01 1.0000E+00 + 1.5824E-01 1.2527E+00 1.0749E+00 1.3620E+00 1.3250E-01 7.7186E+01 1.0598E+02 1.0000E+00 + 2.0334E-01 1.1482E+00 1.1127E+00 1.3149E+00 1.4896E-01 7.8207E+01 1.1550E+02 1.0000E+00 + 6.3836E-02 1.5129E+00 1.6069E+00 2.4050E+00 3.3054E-02 5.6908E+01 1.3051E+02 1.0000E+00 + 8.0620E-02 1.4526E+00 1.6912E+00 1.8575E+00 3.7624E-02 5.8610E+01 1.4148E+02 1.0000E+00 + 2.6460E-02 1.3109E+00 1.1136E+00 1.4038E+00 2.1536E-02 6.9415E+01 1.1212E+02 1.0000E+00 + 7.1191E-02 1.3621E+00 1.4189E+00 1.7407E+00 3.5885E-02 7.3208E+01 1.3388E+02 1.0000E+00 + 1.0129E-01 1.5978E+00 1.5512E+00 1.8549E+00 5.4959E-02 5.3229E+01 1.3845E+02 1.0000E+00 + 4.6938E-02 1.2074E+00 1.1039E+00 1.4101E+00 3.7817E-02 6.5117E+01 1.0624E+02 1.0000E+00 + 6.8197E-02 1.4442E+00 1.2997E+00 1.9834E+00 4.1563E-02 5.4452E+01 1.1531E+02 1.0000E+00 + 3.5537E-02 1.3946E+00 1.5022E+00 1.8646E+00 1.9046E-02 6.0846E+01 1.3423E+02 1.0000E+00 + 5.4344E-02 1.0780E+00 1.0174E+00 1.1464E+00 5.0625E-02 8.0240E+01 9.9729E+01 1.0000E+00 + 2.3421E-02 1.6618E+00 1.7001E+00 2.3173E+00 1.2047E-02 5.0206E+01 1.3734E+02 1.0000E+00 + 1.7415E-02 1.5151E+00 1.4741E+00 2.0683E+00 1.0646E-02 4.8135E+01 1.2330E+02 1.0000E+00 + 1.0776E-02 1.1211E+00 1.0332E+00 1.2919E+00 8.9872E-03 8.0524E+01 9.9358E+01 1.0000E+00 + 9.3734E-02 1.6583E+00 1.5853E+00 2.2567E+00 4.6632E-02 5.3831E+01 1.3640E+02 1.0000E+00 + 6.8982E-02 1.4424E+00 1.3157E+00 1.8964E+00 4.4897E-02 5.3530E+01 1.1956E+02 1.0000E+00 + 4.5870E-02 1.0854E+00 1.0362E+00 1.2211E+00 3.8564E-02 8.2568E+01 1.0404E+02 1.0000E+00 + 1.0489E-01 1.6391E+00 1.4884E+00 2.2819E+00 6.0147E-02 5.2806E+01 1.3040E+02 1.0000E+00 + 5.0021E-02 1.0492E+00 1.0141E+00 1.0947E+00 4.5904E-02 8.5096E+01 9.9513E+01 1.0000E+00 + 1.0467E-01 1.6070E+00 1.4941E+00 2.2834E+00 5.9361E-02 5.3785E+01 1.3008E+02 1.0000E+00 + 5.4274E-02 1.1129E+00 1.0362E+00 1.1792E+00 4.7476E-02 7.9118E+01 1.0509E+02 1.0000E+00 + 5.9212E-02 1.0740E+00 1.0100E+00 1.1515E+00 5.1789E-02 8.2812E+01 9.7215E+01 1.0000E+00 + 5.3227E-02 1.1388E+00 1.0384E+00 1.2035E+00 4.5816E-02 7.9455E+01 1.0562E+02 1.0000E+00 + 2.2755E-02 1.5706E+00 1.3315E+00 2.1313E+00 1.3157E-02 5.9464E+01 1.2630E+02 1.0000E+00 + 1.1224E-02 1.0929E+00 1.0472E+00 1.1795E+00 9.8476E-03 7.9665E+01 1.0663E+02 1.0000E+00 + 2.1513E-02 1.5549E+00 1.3900E+00 2.2278E+00 1.1992E-02 5.9151E+01 1.2708E+02 1.0000E+00 + 4.5685E-02 1.1010E+00 1.0368E+00 1.2189E+00 3.8441E-02 8.1664E+01 1.0472E+02 1.0000E+00 + 9.2426E-02 1.6477E+00 1.5464E+00 2.2669E+00 4.4753E-02 5.6096E+01 1.3562E+02 1.0000E+00 + 6.7812E-02 1.4607E+00 1.2838E+00 1.8835E+00 4.4558E-02 5.4526E+01 1.1967E+02 1.0000E+00 + 2.7559E-01 1.7800E+00 1.6094E+00 2.6955E+00 1.4908E-01 4.9465E+01 1.3050E+02 1.0000E+00 + 1.6576E-01 1.2853E+00 1.0994E+00 1.6076E+00 1.1183E-01 6.5945E+01 1.0378E+02 1.0000E+00 + 2.5168E-01 1.4935E+00 1.4111E+00 1.9455E+00 1.6664E-01 5.1176E+01 1.2572E+02 1.0000E+00 + 3.3626E-01 1.6416E+00 1.4559E+00 2.1593E+00 1.8338E-01 5.4981E+01 1.3259E+02 1.0000E+00 + 2.5637E-01 1.4545E+00 1.2873E+00 1.9396E+00 1.6441E-01 5.5396E+01 1.1839E+02 1.0000E+00 + 1.7698E-01 1.1116E+00 1.0670E+00 1.2797E+00 1.4153E-01 7.9277E+01 1.0902E+02 1.0000E+00 + 3.5057E-01 1.1321E+00 1.0227E+00 1.1824E+00 3.1971E-01 8.1137E+01 9.8212E+01 1.0000E+00 + 2.5488E-01 1.1267E+00 1.0244E+00 1.2221E+00 2.2697E-01 7.9063E+01 9.6687E+01 1.0000E+00 + 2.8710E-01 1.2178E+00 1.0799E+00 1.3520E+00 2.4129E-01 6.9395E+01 1.0928E+02 1.0000E+00 + 1.4955E-01 1.7097E+00 1.2905E+00 2.3184E+00 8.7118E-02 5.9887E+01 1.2210E+02 1.0000E+00 + 1.7308E-01 1.3766E+00 1.2526E+00 1.6390E+00 1.0466E-01 6.7417E+01 1.2640E+02 1.0000E+00 + 9.1971E-02 1.2772E+00 1.1423E+00 1.4036E+00 7.2208E-02 6.1666E+01 1.1151E+02 1.0000E+00 + 7.9238E-02 1.6097E+00 1.4540E+00 2.0385E+00 4.4421E-02 5.4725E+01 1.3333E+02 1.0000E+00 + 7.5057E-02 1.4256E+00 1.2590E+00 2.0637E+00 4.7291E-02 6.4614E+01 1.1791E+02 1.0000E+00 + 5.2189E-02 1.2151E+00 1.0829E+00 1.4983E+00 3.6133E-02 7.3187E+01 1.0876E+02 1.0000E+00 + 8.1133E-02 1.1318E+00 1.0225E+00 1.1891E+00 7.5433E-02 8.2377E+01 9.7583E+01 1.0000E+00 + 5.0371E-02 1.2869E+00 1.3124E+00 1.4850E+00 2.8854E-02 7.2607E+01 1.3022E+02 1.0000E+00 + 2.0441E-02 1.3446E+00 1.0983E+00 1.7301E+00 1.3633E-02 6.8131E+01 1.0773E+02 1.0000E+00 + 4.1817E-03 1.8706E+00 1.7460E+00 2.7441E+00 2.0772E-03 4.2410E+01 1.3122E+02 1.0000E+00 + 6.3705E-02 1.1236E+00 1.0735E+00 1.3850E+00 5.1607E-02 8.0212E+01 1.0547E+02 1.0000E+00 + 3.6089E-02 1.5309E+00 1.5504E+00 1.7056E+00 1.7519E-02 5.9730E+01 1.3977E+02 1.0000E+00 + 1.3896E-02 1.8782E+00 1.6557E+00 2.7324E+00 7.4336E-03 4.6807E+01 1.3306E+02 1.0000E+00 + 9.1967E-03 1.4346E+00 1.4210E+00 1.8730E+00 4.7596E-03 6.3819E+01 1.3305E+02 1.0000E+00 + 1.1213E-02 1.2356E+00 1.2685E+00 1.4008E+00 7.4309E-03 6.7534E+01 1.2726E+02 1.0000E+00 + 1.4813E-02 1.1775E+00 1.0478E+00 1.3482E+00 1.1879E-02 8.0743E+01 1.0385E+02 1.0000E+00 + 1.3398E-02 1.2709E+00 1.1620E+00 1.3160E+00 1.0542E-02 6.6934E+01 1.2052E+02 1.0000E+00 + 5.3806E-02 1.1290E+00 1.0473E+00 1.3262E+00 4.1352E-02 7.9612E+01 1.0607E+02 1.0000E+00 + 1.0395E-02 1.1297E+00 1.0246E+00 1.2356E+00 8.7709E-03 8.2775E+01 1.0094E+02 1.0000E+00 + 1.8961E-02 1.4911E+00 1.4220E+00 2.1110E+00 9.8340E-03 6.2189E+01 1.3041E+02 1.0000E+00 + 1.5527E-02 1.5297E+00 1.3685E+00 1.8651E+00 1.0449E-02 5.3317E+01 1.2865E+02 1.0000E+00 + 7.0831E-02 1.4546E+00 1.4448E+00 1.7743E+00 4.8470E-02 5.2081E+01 1.3075E+02 1.0000E+00 + 3.1474E-02 1.1841E+00 1.2037E+00 1.2531E+00 2.2407E-02 7.1151E+01 1.2381E+02 1.0000E+00 + 8.0080E-02 1.5602E+00 1.6295E+00 2.0720E+00 4.2374E-02 5.2930E+01 1.3727E+02 1.0000E+00 + 4.9806E-02 1.3341E+00 1.3686E+00 1.6214E+00 2.3845E-02 7.1792E+01 1.3301E+02 1.0000E+00 + 2.1298E-01 1.2026E+00 1.1649E+00 1.3172E+00 1.4807E-01 7.4444E+01 1.2085E+02 1.0000E+00 + 2.3975E-01 1.1203E+00 1.0435E+00 1.1755E+00 2.1341E-01 7.3774E+01 1.0225E+02 1.0000E+00 + 7.4139E-02 1.6774E+00 1.8860E+00 1.9934E+00 3.2932E-02 4.9968E+01 1.4634E+02 1.0000E+00 + 2.8378E-02 1.2855E+00 1.1295E+00 1.4306E+00 2.4578E-02 6.4934E+01 1.1168E+02 1.0000E+00 + 4.1095E-02 1.5046E+00 1.3648E+00 1.9306E+00 2.3455E-02 4.7113E+01 1.1138E+02 1.0000E+00 + 1.9806E-01 1.0410E+00 1.0055E+00 1.0842E+00 1.8480E-01 8.7852E+01 9.5880E+01 1.0000E+00 + 1.9504E-01 1.0407E+00 1.0036E+00 1.0647E+00 1.8772E-01 8.5692E+01 9.3582E+01 1.0000E+00 + 2.1683E-01 1.0557E+00 1.0110E+00 1.1091E+00 2.0836E-01 8.2133E+01 9.5906E+01 1.0000E+00 + 2.0664E-01 1.0494E+00 1.0250E+00 1.1489E+00 1.9327E-01 8.0822E+01 9.9916E+01 1.0000E+00 + 1.3290E-01 1.2506E+00 1.2485E+00 1.4363E+00 8.3644E-02 7.0982E+01 1.2647E+02 1.0000E+00 + 1.1350E-01 1.2039E+00 1.0623E+00 1.4168E+00 1.0773E-01 8.3819E+01 9.3925E+01 1.0000E+00 + 9.0249E-02 1.1760E+00 1.0499E+00 1.3189E+00 7.5782E-02 8.1579E+01 1.0540E+02 1.0000E+00 + 5.2108E-02 1.3040E+00 1.2419E+00 1.5654E+00 2.9604E-02 7.4826E+01 1.2618E+02 1.0000E+00 + 4.5803E-02 1.4401E+00 1.1822E+00 1.8388E+00 2.7770E-02 6.9587E+01 1.2036E+02 1.0000E+00 + 3.7696E-02 1.3396E+00 1.2811E+00 1.6210E+00 2.0565E-02 7.2756E+01 1.2844E+02 1.0000E+00 + 3.5401E-02 1.3346E+00 1.1270E+00 1.4530E+00 2.7846E-02 6.8301E+01 1.1414E+02 1.0000E+00 + 3.1126E-02 1.4567E+00 1.4436E+00 2.4630E+00 1.4803E-02 5.8709E+01 1.1778E+02 1.0000E+00 + 2.9328E-02 1.4047E+00 1.2925E+00 2.2255E+00 1.5118E-02 6.5565E+01 1.2030E+02 1.0000E+00 + 2.8517E-02 1.2575E+00 1.1311E+00 1.4303E+00 2.2733E-02 6.2641E+01 1.1341E+02 1.0000E+00 + 3.5299E-02 1.2710E+00 1.1416E+00 1.6198E+00 2.0576E-02 6.9154E+01 1.1812E+02 1.0000E+00 + 7.6100E-02 1.1827E+00 1.0562E+00 1.4076E+00 5.7159E-02 7.1704E+01 1.0029E+02 1.0000E+00 + 1.3200E-01 1.1573E+00 1.0358E+00 1.2939E+00 1.0529E-01 7.5285E+01 9.8724E+01 1.0000E+00 + 1.4162E-01 1.2889E+00 1.1815E+00 1.5351E+00 9.8006E-02 6.8340E+01 1.2063E+02 1.0000E+00 + 2.0263E-01 1.4187E+00 1.1684E+00 1.6769E+00 1.2551E-01 7.1076E+01 1.2093E+02 1.0000E+00 + 2.4142E-01 1.2880E+00 1.1063E+00 1.4978E+00 1.8772E-01 6.6696E+01 1.0524E+02 1.0000E+00 + 9.4577E-02 1.5575E+00 1.2916E+00 1.7154E+00 6.9108E-02 6.0104E+01 1.2406E+02 1.0000E+00 + 7.3867E-02 1.4896E+00 1.2236E+00 1.9053E+00 5.9919E-02 7.3041E+01 1.0276E+02 1.0000E+00 + 1.2540E-01 1.2694E+00 1.2215E+00 1.7316E+00 8.8498E-02 7.6738E+01 1.1630E+02 1.0000E+00 + 1.7612E-01 1.1654E+00 1.1008E+00 1.3144E+00 1.4778E-01 7.5844E+01 1.1254E+02 1.0000E+00 + 1.7027E-01 1.1835E+00 1.1792E+00 1.7148E+00 1.3031E-01 7.6756E+01 1.0299E+02 1.0000E+00 + 8.2249E-02 1.7648E+00 1.3926E+00 1.9771E+00 5.6394E-02 5.4299E+01 1.2574E+02 1.0000E+00 + 6.0244E-02 1.6140E+00 1.3425E+00 2.2403E+00 3.2856E-02 6.0232E+01 1.2687E+02 1.0000E+00 + 1.2015E-01 1.6584E+00 1.3521E+00 2.1601E+00 4.7546E-02 5.4802E+01 1.3127E+02 1.0000E+00 + 1.7411E-01 1.1517E+00 1.0409E+00 1.3281E+00 1.5643E-01 8.5361E+01 9.6951E+01 1.0000E+00 + 2.2268E-01 1.1409E+00 1.0272E+00 1.2605E+00 1.9389E-01 7.9067E+01 9.5383E+01 1.0000E+00 + 1.2304E-01 1.3018E+00 1.5046E+00 2.3367E+00 6.5951E-02 6.9678E+01 1.1979E+02 1.0000E+00 + 1.5809E-01 1.2704E+00 1.1001E+00 1.5565E+00 1.2717E-01 7.6961E+01 1.0043E+02 1.0000E+00 + 1.1146E-01 1.7005E+00 1.5048E+00 2.5433E+00 4.5978E-02 4.3311E+01 1.1306E+02 1.0000E+00 + 5.6247E-02 1.9066E+00 1.4685E+00 2.0297E+00 3.6441E-02 5.6431E+01 1.2515E+02 1.0000E+00 + 1.1904E-01 1.9409E+00 1.5444E+00 2.8073E+00 5.0815E-02 4.3209E+01 1.2283E+02 1.0000E+00 + 1.5240E-01 1.7176E+00 3.5091E+00 4.3368E+00 5.4231E-02 4.9716E+01 1.3940E+02 1.0000E+00 + 1.6710E-01 1.1976E+00 1.1657E+00 1.6236E+00 1.2892E-01 7.0561E+01 1.0614E+02 1.0000E+00 + 1.4668E-01 1.3166E+00 1.4372E+00 2.4161E+00 8.2935E-02 6.8771E+01 1.0919E+02 1.0000E+00 + 1.0060E-01 1.5550E+00 1.6999E+00 2.8965E+00 6.0399E-02 6.1523E+01 1.0754E+02 1.0000E+00 + 1.6644E-01 1.9534E+00 1.7347E+00 2.1595E+00 7.3062E-02 4.8998E+01 1.4443E+02 1.0000E+00 + 1.2693E-01 1.1070E+00 1.0817E+00 1.4059E+00 1.0287E-01 7.8737E+01 1.0385E+02 1.0000E+00 + 5.9358E-02 1.1591E+00 1.1358E+00 1.5034E+00 4.6507E-02 7.1955E+01 1.0979E+02 1.0000E+00 + 2.5095E-02 1.3288E+00 1.5646E+00 1.3747E+00 1.3678E-02 6.2430E+01 1.4024E+02 1.0000E+00 + 1.9612E-02 1.9152E+00 1.8154E+00 3.2746E+00 9.2559E-03 5.2039E+01 1.1992E+02 1.0000E+00 + 4.8760E-02 1.2424E+00 1.1098E+00 1.6637E+00 3.4836E-02 7.2495E+01 1.0401E+02 1.0000E+00 + 1.7272E-02 1.8415E+00 1.4474E+00 2.2765E+00 9.2376E-03 4.7148E+01 1.2226E+02 1.0000E+00 + 2.8440E-03 2.1668E+00 1.9779E+00 3.5074E+00 1.5053E-03 5.0301E+01 1.1973E+02 1.0000E+00 + 3.2304E-03 1.3186E+00 1.7187E+00 1.7853E+00 1.5087E-03 6.3712E+01 1.4071E+02 1.0000E+00 + 1.0315E-02 2.0135E+00 2.5979E+00 2.5648E+00 2.3777E-03 5.3682E+01 1.5691E+02 1.0000E+00 + 6.3164E-03 1.6013E+00 1.2863E+00 2.0152E+00 3.6825E-03 5.3501E+01 1.1308E+02 1.0000E+00 + 5.4485E-03 1.2186E+00 1.0980E+00 1.3799E+00 4.1280E-03 7.7386E+01 1.1387E+02 1.0000E+00 + 6.1467E-03 1.1276E+00 1.0495E+00 1.1868E+00 5.5939E-03 7.2975E+01 1.0640E+02 1.0000E+00 + 1.0540E-02 2.0024E+00 1.6153E+00 2.8839E+00 4.7819E-03 4.0151E+01 1.2053E+02 1.0000E+00 + 2.0474E-02 1.2999E+00 1.1103E+00 1.5777E+00 1.3213E-02 6.4579E+01 1.0622E+02 1.0000E+00 + 2.4474E-02 1.2674E+00 1.2456E+00 1.6143E+00 1.6081E-02 7.4977E+01 1.2302E+02 1.0000E+00 + 5.7222E-02 1.2081E+00 1.1442E+00 1.6635E+00 4.4667E-02 7.7005E+01 9.8418E+01 1.0000E+00 + 1.0481E-01 1.1721E+00 1.0824E+00 1.4925E+00 7.6732E-02 7.6255E+01 1.0619E+02 1.0000E+00 + 9.5066E-02 1.2152E+00 1.1443E+00 1.4081E+00 7.8922E-02 6.4738E+01 1.1520E+02 1.0000E+00 + 1.1018E-01 1.4018E+00 1.1535E+00 1.7489E+00 7.0224E-02 7.0723E+01 1.1833E+02 1.0000E+00 + 2.9963E-01 1.5667E+00 1.2271E+00 1.8146E+00 2.0005E-01 6.4791E+01 1.1143E+02 1.0000E+00 + 2.0331E-01 1.2018E+00 1.0504E+00 1.3716E+00 1.6202E-01 7.4561E+01 9.8475E+01 1.0000E+00 + 1.6288E-01 1.0705E+00 1.0086E+00 1.1394E+00 1.4659E-01 8.3197E+01 9.4687E+01 1.0000E+00 + 1.5244E-01 1.0960E+00 1.0141E+00 1.1317E+00 1.4155E-01 8.3340E+01 9.7650E+01 1.0000E+00 + 1.5754E-01 1.3090E+00 1.0911E+00 1.6486E+00 1.1593E-01 7.0488E+01 1.0714E+02 1.0000E+00 + 5.9908E-02 1.8819E+00 1.6854E+00 2.2806E+00 3.3550E-02 4.4213E+01 1.3924E+02 1.0000E+00 + 3.5949E-02 1.3777E+00 1.1568E+00 1.5887E+00 2.6602E-02 7.3478E+01 1.1406E+02 1.0000E+00 + 5.6517E-02 2.2058E+00 1.9069E+00 2.6887E+00 1.9438E-02 4.8337E+01 1.4745E+02 1.0000E+00 + 3.6656E-02 1.2634E+00 1.0833E+00 1.4847E+00 3.4041E-02 7.7574E+01 1.0088E+02 1.0000E+00 + 2.8638E-02 1.4635E+00 1.2141E+00 1.6746E+00 2.0059E-02 5.8254E+01 1.1576E+02 1.0000E+00 + 2.6720E-02 1.2884E+00 1.1274E+00 1.4437E+00 2.0880E-02 6.3721E+01 1.1123E+02 1.0000E+00 + 2.3844E-02 1.3772E+00 1.1935E+00 1.6169E+00 1.7833E-02 6.1134E+01 1.2024E+02 1.0000E+00 + 2.3394E-02 1.4926E+00 1.2236E+00 1.7230E+00 1.6028E-02 5.8080E+01 1.1595E+02 1.0000E+00 + 3.9534E-02 1.3333E+00 1.1470E+00 1.8508E+00 2.5293E-02 7.1674E+01 1.1282E+02 1.0000E+00 + 2.8868E-02 1.1611E+00 1.0350E+00 1.3595E+00 2.3097E-02 8.0041E+01 1.0297E+02 1.0000E+00 + 2.0178E-02 1.8317E+00 1.5551E+00 2.1099E+00 9.0110E-03 5.5428E+01 1.3980E+02 1.0000E+00 + 1.3829E-02 1.0831E+00 1.0233E+00 1.1709E+00 1.3158E-02 8.2420E+01 9.9682E+01 1.0000E+00 + 8.9493E-03 1.3837E+00 1.1745E+00 1.7137E+00 6.4040E-03 6.1223E+01 1.1580E+02 1.0000E+00 + 1.0037E-02 1.3040E+00 1.1545E+00 1.7274E+00 5.9419E-03 6.9327E+01 1.1693E+02 1.0000E+00 + 2.6253E-02 1.3268E+00 1.1162E+00 1.7763E+00 1.6225E-02 6.8542E+01 1.1308E+02 1.0000E+00 + 2.5774E-02 1.3990E+00 1.3791E+00 1.7128E+00 1.8751E-02 5.2030E+01 1.2593E+02 1.0000E+00 + 2.2295E-02 1.2591E+00 1.0847E+00 1.5073E+00 1.6231E-02 6.8089E+01 1.0295E+02 1.0000E+00 + 4.4286E-02 1.2409E+00 1.0992E+00 1.5000E+00 2.8909E-02 7.3604E+01 1.1417E+02 1.0000E+00 + 4.7081E-02 1.2318E+00 1.2533E+00 1.5204E+00 3.5978E-02 6.1697E+01 1.2097E+02 1.0000E+00 + 5.3347E-02 1.3396E+00 1.1697E+00 1.7745E+00 3.2727E-02 6.0492E+01 1.0516E+02 1.0000E+00 + 1.1507E-01 1.3217E+00 1.2123E+00 1.4936E+00 7.2284E-02 7.1920E+01 1.2440E+02 1.0000E+00 + 6.8888E-02 1.8586E+00 1.9469E+00 3.2843E+00 3.7561E-02 4.5467E+01 1.1283E+02 1.0000E+00 + 9.8691E-02 1.7534E+00 1.4199E+00 2.2196E+00 6.4170E-02 4.8922E+01 1.2401E+02 1.0000E+00 + 1.9072E-01 1.3792E+00 1.2533E+00 1.7505E+00 1.0180E-01 7.1078E+01 1.2643E+02 1.0000E+00 + 1.3195E-01 1.2046E+00 1.0740E+00 1.2927E+00 1.1169E-01 7.0019E+01 1.0665E+02 1.0000E+00 + 1.0061E-01 1.3980E+00 1.1508E+00 1.6525E+00 7.4610E-02 6.4656E+01 1.1385E+02 1.0000E+00 + 1.0006E-01 1.2252E+00 1.1992E+00 1.4525E+00 6.0734E-02 7.7936E+01 1.2331E+02 1.0000E+00 + 1.9726E-01 1.2558E+00 1.0621E+00 1.4545E+00 1.4438E-01 7.4020E+01 1.0597E+02 1.0000E+00 + 1.8528E-01 1.9303E+00 1.6047E+00 2.6076E+00 6.0455E-02 4.8583E+01 1.3847E+02 1.0000E+00 + 9.7567E-02 1.1978E+00 1.0856E+00 1.4533E+00 7.2371E-02 6.7719E+01 1.0178E+02 1.0000E+00 + 8.7097E-02 1.2604E+00 1.1399E+00 1.3952E+00 6.9207E-02 6.1698E+01 1.1217E+02 1.0000E+00 + 7.8658E-02 1.4196E+00 1.1675E+00 1.7504E+00 5.4958E-02 6.7520E+01 1.0596E+02 1.0000E+00 + 1.7984E-01 1.1356E+00 1.0272E+00 1.2548E+00 1.4619E-01 7.7054E+01 9.8683E+01 1.0000E+00 + 2.1724E-01 1.1882E+00 1.0418E+00 1.3808E+00 1.7413E-01 7.9585E+01 1.0460E+02 1.0000E+00 + 3.0131E-01 1.5753E+00 1.3185E+00 1.8187E+00 1.5721E-01 6.5740E+01 1.3067E+02 1.0000E+00 + 3.0827E-01 1.2732E+00 1.1461E+00 1.6942E+00 2.2271E-01 7.9781E+01 1.1059E+02 1.0000E+00 + 1.2311E-01 1.7681E+00 1.3876E+00 2.2696E+00 6.7241E-02 4.9611E+01 1.2237E+02 1.0000E+00 + 4.2958E-01 1.2603E+00 1.1157E+00 1.5503E+00 3.1551E-01 6.5070E+01 1.0773E+02 1.0000E+00 + 3.7496E-01 1.0488E+00 1.0055E+00 1.1102E+00 3.5061E-01 8.7179E+01 9.4580E+01 1.0000E+00 diff --git a/Documentation/docs/error-controlled-adaptive-meshing.md b/Documentation/docs/error-controlled-adaptive-meshing.md index 04af1bcb..3c36e155 100644 --- a/Documentation/docs/error-controlled-adaptive-meshing.md +++ b/Documentation/docs/error-controlled-adaptive-meshing.md @@ -12,15 +12,15 @@ It now can also adaptively mesh a model to provide optimal boundary approximatio ## How to Control the Boundary Errors Error control is added chain-by-chain in the model by telling HOHQMesh what norm to optimize ($\mathbb L^2$ or $\mathbb H^1$), the error tolerance, and to what derivatives the resulting boundary approximation will be smooth. The syntax is - \begin{CHAIN} - optimize = L2Norm OR H1Norm OR none - tolerance = - continuity = = highest derivative to be made smooth - connect = - . - . - . - \end{CHAIN} + \begin{CHAIN} + optimize = L2Norm OR H1Norm OR none + tolerance = + continuity = = highest derivative to be made smooth + connect = + . + . + . + \end{CHAIN} An `OUTER_BOUNDARY` implicitly includes a chain. So, the optimization keywords can directly be added to a `\begin{OUTER_BOUNDARY} ... \end{OUTER_BOUNDARY}` block. @@ -38,11 +38,11 @@ The options are: The syntax is the following: - connect = crv_1-crv_2,crv_3-crv_4,... + connect = crv_1-crv_2,crv_3-crv_4,... where the `crv_n` are the index of the curves in the chain. For example, if a chain contains ten curves and optimization is requested across the third and fourth curves in the list and across the sixth through ninth in the list, then - connect = 3-4,6-9 + connect = 3-4,6-9 **Note Well:** @@ -55,48 +55,52 @@ The options are: Whether or not boundary optimization is chosen, HOHQMesh will write out the maximum $\mathbb L^2$ and $\mathbb H^1$ boundary edge errors. Running the [`Examples/2D/BlobAdapt/BlobAdapt.control`](https://github.com/trixi-framework/HOHQMesh/blob/main/Examples/2D/BlobAdapt/BlobAdapt.control) example and requesting an `H1Norm` tolerance of $10^{-4}$ and first derivative continuity by - \begin{OUTER_BOUNDARY} - optimize = H1Norm - continuity = 1 - tolerance = 1.0e-4 - \begin{PARAMETRIC_EQUATION_CURVE} - name = blob - xEqn = x(t) = 4*cos(2*pi*t) - 3/5*cos(8*pi*t)^3 - yEqn = y(t) = 4*sin(2*pi*t) - 0.5*sin(11*pi*t)^2 - zEqn = z(t) = 0.0 - \end{PARAMETRIC_EQUATION_CURVE} - \end{OUTER_BOUNDARY} + \begin{OUTER_BOUNDARY} + optimize = H1Norm + continuity = 1 + tolerance = 1.0e-4 + \begin{PARAMETRIC_EQUATION_CURVE} + name = blob + xEqn = x(t) = 4*cos(2*pi*t) - 3/5*cos(8*pi*t)^3 + yEqn = y(t) = 4*sin(2*pi*t) - 0.5*sin(11*pi*t)^2 + zEqn = z(t) = 0.0 + \end{PARAMETRIC_EQUATION_CURVE} + \end{OUTER_BOUNDARY} produces the output: ******************* 2D Mesh Statistics: ******************* - Total time = 0.57661399999999996 - Number of nodes = 570 - Number of Edges = 1059 - Number of Elements = 490 - Number of Subdivisions = 4 - - Mesh Quality: - Measure Minimum Maximum Average Acceptable Low Acceptable High Reference - Signed Area 0.00122001 0.82263252 0.10243554 0.00000000 999.99900000 1.00000000 - Aspect Ratio 1.02370049 2.84878712 1.32371594 1.00000000 999.99900000 1.00000000 - Condition 1.00112287 3.80020102 1.21708413 1.00000000 4.00000000 1.00000000 - Edge Ratio 1.02962316 6.00757565 1.63781443 1.00000000 4.00000000 1.00000000 - Jacobian 0.00049569 0.75891397 0.07875994 0.00000000 999.99900000 1.00000000 - Minimum Angle 34.57990654 87.89988997 68.98664291 40.00000000 90.00000000 90.00000000 - Maximum Angle 91.84435669 150.95227640 114.13256251 90.00000000 135.00000000 90.00000000 - Area Sign 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 - - Boundary Error Quality: - Boundary Name Max L2 Error Max H1Error - Outer Boundary 5.13545249E-08 5.45735801E-05 + Total time = 0.89582899999999999 + Number of nodes = 570 + Number of Edges = 1059 + Number of Elements = 490 + Number of Subdivisions = 4 + + Mesh Quality: + Measure Minimum Maximum Average Acceptable Low Acceptable High Reference + Signed Area 0.00122001 0.82263252 0.10243554 0.00000000 999.99900000 1.00000000 + Aspect Ratio 1.02370049 2.84878712 1.32371594 1.00000000 999.99900000 1.00000000 + Condition 1.00112287 3.80020102 1.21708413 1.00000000 4.00000000 1.00000000 + Edge Ratio 1.02962316 6.00757565 1.63781443 1.00000000 4.00000000 1.00000000 + Jacobian 0.00049569 0.75891397 0.07875994 0.00000000 999.99900000 1.00000000 + Minimum Angle 34.57990654 87.89988997 68.98664291 40.00000000 90.00000000 90.00000000 + Maximum Angle 91.84435669 150.95227640 114.13256251 90.00000000 135.00000000 90.00000000 + Area Sign 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 1.00000000 + + Boundary Error Quality: + Boundary Name Max L2 Error Max H1 Error + Outer Boundary 6.97837728E-08 5.63742411E-05 In addition to the usual element quality measures, one sees that the $\mathbb H^1$ error is indeed bounded by the requested tolerance. If there is more than one boundary, they are listed by boundary name. -HOHQMesh can optionally write out the boundary approximation errors to files for plotting and later analysis, whether or not the adaptive procedure is requested. Two files can be written prepended with the name of the control file. One contains the point-wise error along each boundary as a function of the chain curve parameter. The other contains the integrated ($\mathbb L^2$ or $\mathbb H^1$ norms), grouped by chain. To have these files written, include the following key in the [RUN_PARAMETERS](the-control-input.md#RunParameters) block: +HOHQMesh can optionally write out the boundary approximation errors to a file for plotting and later analysis, whether or not the adaptive procedure is requested. If the statistics file key is present in the [RUN_PARAMETERS](the-control-input.md#RunParameters) block, e.g., - error file name = + stats file name = path/desiredFileName.txt -Choose the name to be `none` to turn off printing out the errors, or simply delete the line from the file. \ No newline at end of file +then the boundary errors will be written to a separate file with the same name appended with `_ErrorNorms`. +It contains the integrated $\mathbb L^2$ and $\mathbb H^1$ norms, grouped by chain. +For the example above the boundary error file would be located in the same `path` as the statistics file +with the name `desiredFileName_ErrorNorms.txt`. +Choose the `stats file name` to be `none` to turn off printing out the errors, or simply delete the line from the control file. \ No newline at end of file diff --git a/Documentation/docs/the-control-file.md b/Documentation/docs/the-control-file.md index f3f25ec7..0c66c3c0 100644 --- a/Documentation/docs/the-control-file.md +++ b/Documentation/docs/the-control-file.md @@ -3,37 +3,37 @@ The `MODEL` and the `CONTROL_INPUT` blocks described above are put into a single file called the **control file**, which is finished with a `\end{FILE}` command. An example of a full control file that meshes a model with a circular outer boundary and two inner circular boundaries, and writes out a plot file with spectral element resolution, is shown below. There is also a template control file in the *Examples* directory. -Just some notes: +Just some notes: -1. Blocks do not have to be specified in any order (e.g. the `MODEL` could come first before the `CONTROL_INPUT`. `INNER_BOUNDARIES` could come before `OUTER_BOUNDARY`. Blocks must be defined within their appropriate block however, e.g. `OUTER_BOUNDARY` can only be defined in a `MODEL` block. -2. Keywords within a block can be specified in any order. The only ordering that is important is that within a `CHAIN`, the curves must be specified in order, counter-clockwise. +1. Blocks do not have to be specified in any order e.g. the `MODEL` could come first before the `CONTROL_INPUT` or `INNER_BOUNDARIES` could come before `OUTER_BOUNDARY`. Blocks must be defined within their appropriate block however, e.g. `OUTER_BOUNDARY` can only be defined in a `MODEL` block. +2. Keywords within a block can be specified in any order. The only ordering that is important is that within a `CHAIN`, the curves must be specified in order, counter-clockwise. 3. Spaces in keywords **are** significant, but not in any other contexts. For instance equals signs are aligned only for visual formatting. 4. Blank lines or lines starting with % are ignored. --- \begin{CONTROL_INPUT} - + \begin{RUN_PARAMETERS} - mesh file name = Circles3Mesh.mesh - plot file name = Circles3Plot.tec - statistics file name = Circles3Stats.txt - mesh file format = ISM - polynomial order = 6 - plot file format = sem + mesh file name = Circles3Mesh.mesh + plot file name = Circles3Plot.tec + stats file name = Circles3Stats.txt + mesh file format = ISM + polynomial order = 6 + plot file format = sem \end{RUN_PARAMETERS} - + \begin{BACKGROUND_GRID} background grid size = [4.0,4.0] \end{BACKGROUND_GRID} - + \begin{SPRING_SMOOTHER} smoothing type = LinearAndCrossbarSpring number of iterations = 20 \end{SPRING_SMOOTHER} - + \end{CONTROL_INPUT} - + \begin{MODEL} \begin{OUTER_BOUNDARY} @@ -46,7 +46,7 @@ Just some notes: \end{OUTER_BOUNDARY} \begin{INNER_BOUNDARIES} - + \begin{CHAIN} name = Boundary 1 \begin{PARAMETRIC_EQUATION_CURVE} @@ -56,7 +56,7 @@ Just some notes: zEqn = z(t) = 0.0 \end{PARAMETRIC_EQUATION_CURVE} \end{CHAIN} - + \begin{CHAIN} name = Boundary 2 \begin{PARAMETRIC_EQUATION_CURVE} @@ -66,7 +66,7 @@ Just some notes: zEqn = z(t) = 0.0 \end{PARAMETRIC_EQUATION_CURVE} \end{CHAIN} - + \begin{CHAIN} name = Boundary 3 \begin{PARAMETRIC_EQUATION_CURVE} diff --git a/Source/BoundaryOptimization/BoundaryErrors.f90 b/Source/BoundaryOptimization/BoundaryErrors.f90 index 5f2fd0f9..5e94dd64 100644 --- a/Source/BoundaryOptimization/BoundaryErrors.f90 +++ b/Source/BoundaryOptimization/BoundaryErrors.f90 @@ -194,6 +194,35 @@ END SUBROUTINE ComputeBoundaryErrors !//////////////////////////////////////////////////////////////////////// ! SUBROUTINE WriteBoundaryErrors(project) +! +! ---------------------------------------------------------------------------- +! Write the L2 and H1 errors within each segment along each boundary. +! It writes to the path of the stats file name appended with the string +! "_ErrorNorms" provided in the control file unless the value for the +! stats file name is "none" or not included. +! +! The format is: +! +! "Number of boundary curves = " # boundary curves +! For each boundary curve +! Boundary name, # Segments +! For each segment +! t_{start} x_{start} y_{start} t_{end} x_{end} y_{end} L2Error H1Error +! end +! end +! +! where +! t_{start} = start parametrization for the segment +! t_{end} = end parametrization for the segment +! x_{start},y_{start} = physical space location of segment start +! x_{end},y_{end} = physical space location of segment end +! L2Error = L2Error of the segment +! H1Error = H1 Error of the segment +! +! The format is redundant in that it duplicates the start and end points, +! but should make it easier to read the file and draw from it. +! ---------------------------------------------------------------------------- +! IMPLICIT NONE ! ! --------- @@ -215,11 +244,16 @@ SUBROUTINE WriteBoundaryErrors(project) CHARACTER(DEFAULT_CHARACTER_LENGTH) :: str REAL(KIND=RP) :: gTStart, gTEnd + REAL(KIND=RP) :: xs(3), xe(3) REAL(KIND=RP) :: eL2Norm, eH1Norm INTEGER :: normUnit INTEGER :: m, j, c - - IF ( project % runParams % errorFileName == "none" ) RETURN +! +! ---------------------------------------------------------------------- +! If stats are not requested then boundary errors are not written either +! ---------------------------------------------------------------------- +! + IF ( project % runParams % statsFileName == "none" ) RETURN ! ! ------- ! Aliases @@ -233,12 +267,12 @@ SUBROUTINE WriteBoundaryErrors(project) ! Where to write the results ! -------------------------- ! - m = INDEX(STRING = project % runParams % errorFileName, SUBSTRING = ".") + m = INDEX(STRING = project % runParams % statsFileName, SUBSTRING = ".") IF ( m == -1 ) THEN - OPEN(NEWUNIT = normUnit, FILE = project % runParams % errorFileName //"_Norms") + OPEN(NEWUNIT = normUnit, FILE = project % runParams % statsFileName //"_ErrorNorms") ELSE - str = project % runParams % errorFileName - str = str(1:m-1) //"_Norms.txt" + str = project % runParams % statsFileName + str = str(1:m-1) //"_ErrorNorms.txt" OPEN(NEWUNIT = normUnit, FILE = str) END IF ! @@ -252,21 +286,25 @@ SUBROUTINE WriteBoundaryErrors(project) ! Write them ! ---------- ! + WRITE(normUnit,*) "Number of boundary curves = ", model % numberOfChains() DO j = 1, model % numberOfChains() obj => modelChains(j) % object CALL castToSMChainedCurve(obj, modelChain) - WRITE(normUnit,*) TRIM(modelChain % curveName()) obj => boundaryPolynomials % objectAtIndex(j) CALL castObjToMultiSegmentCurve(obj,boundaryPolynomial) + WRITE(normUnit,*) TRIM(modelChain % curveName()), ",", boundaryPolynomial % nSegments + DO c = 1, boundaryPolynomial % nSegments gTStart = boundaryPolynomial % cuts(c-1) gTEnd = boundaryPolynomial % cuts(c) eL2Norm = project % L2BoundaryError(j) % array(c) eH1Norm = project % H1BoundaryError(j) % array(c) + xs = boundaryPolynomial % positionAt(gTStart) + xe = boundaryPolynomial % positionAt(gTEnd) - WRITE(normUnit,*) 0.5_RP*(gTStart + gTEnd), LOG10(eL2Norm + 1.0d-15), LOG10(eH1Norm + 1.0d-15) + WRITE(normUnit,*) gTStart, xs(1:2), gTEnd, xe(1:2), eL2Norm, eH1Norm END DO diff --git a/Source/HOHQMesh.f90 b/Source/HOHQMesh.f90 index afffce3f..673ecb84 100644 --- a/Source/HOHQMesh.f90 +++ b/Source/HOHQMesh.f90 @@ -186,7 +186,7 @@ SUBROUTINE HOHQMesh(projectDict, project, stats, didGenerate3DMesh, test) IF ( .NOT.test ) THEN IF ( SIZE(project % L2ErrorMax) > 0 ) THEN PRINT *, "Boundary Error Quality:" - WRITE(6,"(A32,4x,A12,A16)") "Boundary Name", "Max L2 Error", "Max H1Error" + WRITE(6,"(A32,4x,A12,A16)") "Boundary Name", "Max L2 Error", "Max H1 Error" DO k = 1, SIZE(project % L2ErrorMax) obj => project % model % allChains(k) % object CALL castToSMCurve(obj,boundaryCurve) diff --git a/Source/Project/MeshProject.f90 b/Source/Project/MeshProject.f90 index 903b5c4b..49ed63c4 100644 --- a/Source/Project/MeshProject.f90 +++ b/Source/Project/MeshProject.f90 @@ -56,7 +56,6 @@ Module MeshProjectClass CHARACTER(LEN=DEFAULT_CHARACTER_LENGTH), PARAMETER :: MESH_FILE_NAME_KEY = "mesh file name" CHARACTER(LEN=DEFAULT_CHARACTER_LENGTH), PARAMETER :: PLOT_FILE_NAME_KEY = "plot file name" CHARACTER(LEN=DEFAULT_CHARACTER_LENGTH), PARAMETER :: STATS_FILE_NAME_KEY = "stats file name" - CHARACTER(LEN=DEFAULT_CHARACTER_LENGTH), PARAMETER :: ERROR_FILE_NAME_KEY = "error file name" CHARACTER(LEN=DEFAULT_CHARACTER_LENGTH), PARAMETER :: MESH_FILE_FORMAT_NAME_KEY = "mesh file format" CHARACTER(LEN=DEFAULT_CHARACTER_LENGTH), PARAMETER :: POLYNOMIAL_ORDER_KEY = "polynomial order" CHARACTER(LEN=DEFAULT_CHARACTER_LENGTH), PARAMETER :: PLOT_FORMAT_KEY = "plot file format" @@ -101,7 +100,6 @@ Module MeshProjectClass CHARACTER(LEN=DEFAULT_CHARACTER_LENGTH) :: MeshFileName CHARACTER(LEN=DEFAULT_CHARACTER_LENGTH) :: plotFileName CHARACTER(LEN=DEFAULT_CHARACTER_LENGTH) :: statsFileName - CHARACTER(LEN=DEFAULT_CHARACTER_LENGTH) :: errorFileName INTEGER :: meshFileFormat INTEGER :: polynomialOrder INTEGER :: plotFileFormat ! = SKELETON_FORMAT OR = SEM_FORMAT @@ -1517,7 +1515,7 @@ SUBROUTINE SetRunParametersBlock( params, controlDict ) poster = "SetRunParametersBlock") params % statsFileName = "none" - msg = "Control file is missing the stats file name. Stats not written." + msg = "Control file is missing the stats file name. Stats and boundary errors are not written." CALL SetStringValueFromDictionary(valueToSet = params % statsFileName, & sourceDict = paramsDict, & key = STATS_FILE_NAME_KEY, & @@ -1532,19 +1530,6 @@ SUBROUTINE SetRunParametersBlock( params, controlDict ) errorLevel = FT_ERROR_WARNING, & message = msg, & poster = "SetRunParametersBlock") -! -! -------------------------------------------------------------------------------- -! For now, no warnings or anything for not requesting the errors to be written out -! -------------------------------------------------------------------------------- -! - params % errorFileName = "none" - msg = "Control file is missing the errors file name. Errors not written." - CALL SetStringValueFromDictionary(valueToSet = params % errorFileName, & - sourceDict = paramsDict, & - key = ERROR_FILE_NAME_KEY, & - errorLevel = FT_ERROR_NONE, & - message = msg, & - poster = "SetRunParametersBlock") IF( fileFormat == "Basic" ) THEN params % meshFileFormat = BASIC_MESH_FORMAT diff --git a/Source/Project/Model/SMModel.f90 b/Source/Project/Model/SMModel.f90 index 8621661c..e7a95755 100644 --- a/Source/Project/Model/SMModel.f90 +++ b/Source/Project/Model/SMModel.f90 @@ -64,7 +64,7 @@ Module SMModelClass CHARACTER(LEN=LINE_LENGTH), PARAMETER :: TOPOGRAPHY_BLOCK_KEY = "TOPOGRAPHY" CHARACTER(LEN=LINE_LENGTH), PARAMETER :: H1NORM_KEY = "H1Norm" CHARACTER(LEN=LINE_LENGTH), PARAMETER :: L2NORM_KEY = "L2Norm" - + TYPE ObjectPointerWrapper CLASS(FTObject), POINTER :: object => NULL() END TYPE ObjectPointerWrapper @@ -140,19 +140,19 @@ SUBROUTINE destructModel(self) TYPE(SMModel) :: self CLASS(FTObject), POINTER :: obj INTEGER :: j - + IF ( ASSOCIATED(self % innerBoundariesIterator) ) THEN - CALL releaseFTLinkedListIterator(self % innerBoundariesIterator) + CALL releaseFTLinkedListIterator(self % innerBoundariesIterator) END IF - + IF ( ASSOCIATED(self % interfaceBoundariesIterator) ) THEN - CALL releaseFTLinkedListIterator(self % interfaceBoundariesIterator) + CALL releaseFTLinkedListIterator(self % interfaceBoundariesIterator) END IF - + IF ( ASSOCIATED(self % innerBoundaries) ) THEN - CALL releaseFTLinkedList(self % innerBoundaries) + CALL releaseFTLinkedList(self % innerBoundaries) END IF - + IF ( ASSOCIATED(self % outerBoundary) ) THEN CALL releaseChainedCurveClass(self % outerBoundary) END IF @@ -181,9 +181,9 @@ SUBROUTINE destructModel(self) END IF IF ( ASSOCIATED(self % allChains) ) THEN - DO j = 1, SIZE(self % allChains) + DO j = 1, SIZE(self % allChains) obj => self % allChains(j) % object - CALL release(obj) + CALL release(obj) END DO DEALLOCATE( self % allChains) END IF @@ -621,11 +621,11 @@ SUBROUTINE SetChainOptimizationParameters(curveChain, curveDict) ! Chain breaks are defined by the end of the numbered curve in the chain. Breaks ! are assumed at the end of every segment of the chain. Segments can be connected ! by removing breaks (this is easier than specifying which segments should have -! breaks.) For example, +! breaks.) For example, ! with five curves in the chain, connecting curve 2 and curve ! 3, write ! connect = 2-3 -! and to connect 2 & 3 and 4&5, +! and to connect 2 & 3 and 4 & 5, ! connect = 2-3, 4-5 ! where the separator is a comma. (Spaces are ignored) ! -------------------------------------------------------------------------------