ParaViewのDelaunay分割で非構造格子を生成する

概要

  • コードのテストなどに使用する「適当な」非構造格子の生成方法です。
  • ParaViewから出力する簡易なフォーマットを使用します。
  • 汎用の格子フォーマット入出力を持っていない人でもパースしやすいです。
  • 利益があるかもしれない人の例
    • P○intwiseとか使える環境無いし手元のコードには汎用格子フォーマットの入出力無いし書くのも興味無いけど適当な非構造格子で自分のコードをテストしたい

準備

  • ParaViewを用意します
    • sudo apt update
    • sudo apt install  paraview -y
    • 端末で"paraview"を実行してGUIが立ち上がる事を確認します

分割元の適当な格子を用意する

外枠となる格子が必要です。中の分割は何でも可ですが、最終的に作成したい「適当な格子」と同等な密度にしておく必要があります。

ここでは以下のようなデータ(original.tec)を元の格子とします。

手元では2次元のTecplot形式を使用しました。

original.tec

 VARIABLES=X,Y
 ZONE I=          25 ,J=          20 ,F=POINT
 -0.14999999999999999        0.0000000000000000     
 -0.11249999999999999        0.0000000000000000     
  -7.4999999999999997E-002   0.0000000000000000     
  -3.7500000000000006E-002   0.0000000000000000     
   0.0000000000000000        0.0000000000000000     
   3.1250000000000000E-002   1.1374069812500000E-002
   6.2500000000000000E-002   2.2748139625000000E-002
   9.3750000000000000E-002   3.4122209437500002E-002
  0.12500000000000000        4.5496279250000000E-002
  0.15625000000000000        5.6870349062499999E-002
  0.18750000000000000        6.8244418875000004E-002
  0.21875000000000000        7.9618488687500003E-002
  0.25000000000000000        9.0992558500000001E-002
  0.28125000000000000       0.10236662831250000     
  0.31250000000000000       0.11374069812500000     
  0.34375000000000000       0.12511476793750001     
  0.37500000000000000       0.13648883775000001     
  0.40625000000000000       0.14786290756250001     
  0.43750000000000000       0.15923697737500001     
  0.46875000000000000       0.17061104718750000     
  0.50000000000000000       0.18198511700000000     
  0.53749999999999998       0.18198511700000000     
  0.57499999999999996       0.18198511700000000     
  0.61250000000000004       0.18198511700000000     
  0.65000000000000002       0.18198511700000000     
 -0.14999999999999999        3.1578947368421040E-002
 -0.11249999999999999        3.1578947368421054E-002
  -7.4999999999999997E-002   3.1578947368421054E-002
  -3.7500000000000006E-002   3.1578947368421054E-002
   0.0000000000000000        3.1578947368421054E-002
   3.1250000000000000E-002   4.2354381927631579E-002
   6.2500000000000000E-002   5.3129816486842105E-002
   9.3750000000000000E-002   6.3905251046052630E-002
  0.12500000000000000        7.4680685605263156E-002
  0.15625000000000000        8.5456120164473681E-002
  0.18750000000000000        9.6231554723684221E-002
  0.21875000000000000       0.10700698928289473     
  0.25000000000000000       0.11778242384210527     
  0.28125000000000000       0.12855785840131578     
  0.31250000000000000       0.13933329296052632     
  0.34375000000000000       0.15010872751973686     
  0.37500000000000000       0.16088416207894737     
  0.40625000000000000       0.17165959663815791     
  0.43750000000000000       0.18243503119736842     
  0.46875000000000000       0.19321046575657896     
  0.50000000000000000       0.20398590031578948     
  0.53749999999999998       0.20398590031578948     
  0.57499999999999996       0.20398590031578948     
  0.61250000000000004       0.20398590031578948     
  0.65000000000000002       0.20398590031578948     
 -0.14999999999999999        6.3157894736842080E-002
 -0.11249999999999999        6.3157894736842107E-002
  -7.4999999999999997E-002   6.3157894736842107E-002
  -3.7500000000000006E-002   6.3157894736842107E-002
   0.0000000000000000        6.3157894736842107E-002
   3.1250000000000000E-002   7.3334694042763160E-002
   6.2500000000000000E-002   8.3511493348684213E-002
   9.3750000000000000E-002   9.3688292654605265E-002
  0.12500000000000000       0.10386509196052632     
  0.15625000000000000       0.11404189126644737     
  0.18750000000000000       0.12421869057236842     
  0.21875000000000000       0.13439548987828948     
  0.25000000000000000       0.14457228918421053     
  0.28125000000000000       0.15474908849013158     
  0.31250000000000000       0.16492588779605263     
  0.34375000000000000       0.17510268710197369     
  0.37500000000000000       0.18527948640789474     
  0.40625000000000000       0.19545628571381579     
  0.43750000000000000       0.20563308501973684     
  0.46875000000000000       0.21580988432565790     
  0.50000000000000000       0.22598668363157895     
  0.53749999999999998       0.22598668363157895     
  0.57499999999999996       0.22598668363157895     
  0.61250000000000004       0.22598668363157895     
  0.65000000000000002       0.22598668363157895     
 -0.14999999999999999        9.4736842105263119E-002
 -0.11249999999999999        9.4736842105263161E-002
  -7.4999999999999997E-002   9.4736842105263161E-002
  -3.7500000000000006E-002   9.4736842105263161E-002
   0.0000000000000000        9.4736842105263161E-002
   3.1250000000000000E-002  0.10431500615789473     
   6.2500000000000000E-002  0.11389317021052631     
   9.3750000000000000E-002  0.12347133426315790     
  0.12500000000000000       0.13304949831578947     
  0.15625000000000000       0.14262766236842103     
  0.18750000000000000       0.15220582642105263     
  0.21875000000000000       0.16178399047368419     
  0.25000000000000000       0.17136215452631581     
  0.28125000000000000       0.18094031857894738     
  0.31250000000000000       0.19051848263157894     
  0.34375000000000000       0.20009664668421054     
  0.37500000000000000       0.20967481073684213     
  0.40625000000000000       0.21925297478947370     
  0.43750000000000000       0.22883113884210526     
  0.46875000000000000       0.23840930289473683     
  0.50000000000000000       0.24798746694736842     
  0.53749999999999998       0.24798746694736842     
  0.57499999999999996       0.24798746694736842     
  0.61250000000000004       0.24798746694736842     
  0.65000000000000002       0.24798746694736842     
 -0.14999999999999999       0.12631578947368416     
 -0.11249999999999999       0.12631578947368421     
  -7.4999999999999997E-002  0.12631578947368421     
  -3.7500000000000006E-002  0.12631578947368421     
   0.0000000000000000       0.12631578947368421     
   3.1250000000000000E-002  0.13529531827302632     
   6.2500000000000000E-002  0.14427484707236843     
   9.3750000000000000E-002  0.15325437587171054     
  0.12500000000000000       0.16223390467105264     
  0.15625000000000000       0.17121343347039472     
  0.18750000000000000       0.18019296226973686     
  0.21875000000000000       0.18917249106907896     
  0.25000000000000000       0.19815201986842107     
  0.28125000000000000       0.20713154866776315     
  0.31250000000000000       0.21611107746710526     
  0.34375000000000000       0.22509060626644739     
  0.37500000000000000       0.23407013506578950     
  0.40625000000000000       0.24304966386513160     
  0.43750000000000000       0.25202919266447366     
  0.46875000000000000       0.26100872146381582     
  0.50000000000000000       0.26998825026315787     
  0.53749999999999998       0.26998825026315787     
  0.57499999999999996       0.26998825026315787     
  0.61250000000000004       0.26998825026315787     
  0.65000000000000002       0.26998825026315787     
 -0.14999999999999999       0.15789473684210520     
 -0.11249999999999999       0.15789473684210525     
  -7.4999999999999997E-002  0.15789473684210525     
  -3.7500000000000006E-002  0.15789473684210525     
   0.0000000000000000       0.15789473684210525     
   3.1250000000000000E-002  0.16627563038815787     
   6.2500000000000000E-002  0.17465652393421052     
   9.3750000000000000E-002  0.18303741748026314     
  0.12500000000000000       0.19141831102631579     
  0.15625000000000000       0.19979920457236841     
  0.18750000000000000       0.20818009811842103     
  0.21875000000000000       0.21656099166447368     
  0.25000000000000000       0.22494188521052633     
  0.28125000000000000       0.23332277875657892     
  0.31250000000000000       0.24170367230263157     
  0.34375000000000000       0.25008456584868421     
  0.37500000000000000       0.25846545939473686     
  0.40625000000000000       0.26684635294078951     
  0.43750000000000000       0.27522724648684210     
  0.46875000000000000       0.28360814003289475     
  0.50000000000000000       0.29198903357894734     
  0.53749999999999998       0.29198903357894734     
  0.57499999999999996       0.29198903357894734     
  0.61250000000000004       0.29198903357894734     
  0.65000000000000002       0.29198903357894734     
 -0.14999999999999999       0.18947368421052629     
 -0.11249999999999999       0.18947368421052632     
  -7.4999999999999997E-002  0.18947368421052632     
  -3.7500000000000006E-002  0.18947368421052632     
   0.0000000000000000       0.18947368421052632     
   3.1250000000000000E-002  0.19725594250328946     
   6.2500000000000000E-002  0.20503820079605262     
   9.3750000000000000E-002  0.21282045908881578     
  0.12500000000000000       0.22060271738157894     
  0.15625000000000000       0.22838497567434207     
  0.18750000000000000       0.23616723396710526     
  0.21875000000000000       0.24394949225986839     
  0.25000000000000000       0.25173175055263158     
  0.28125000000000000       0.25951400884539472     
  0.31250000000000000       0.26729626713815791     
  0.34375000000000000       0.27507852543092104     
  0.37500000000000000       0.28286078372368423     
  0.40625000000000000       0.29064304201644742     
  0.43750000000000000       0.29842530030921055     
  0.46875000000000000       0.30620755860197368     
  0.50000000000000000       0.31398981689473682     
  0.53749999999999998       0.31398981689473682     
  0.57499999999999996       0.31398981689473682     
  0.61250000000000004       0.31398981689473682     
  0.65000000000000002       0.31398981689473682     
 -0.14999999999999999       0.22105263157894733     
 -0.11249999999999999       0.22105263157894739     
  -7.4999999999999997E-002  0.22105263157894739     
  -3.7500000000000006E-002  0.22105263157894739     
   0.0000000000000000       0.22105263157894739     
   3.1250000000000000E-002  0.22823625461842104     
   6.2500000000000000E-002  0.23541987765789474     
   9.3750000000000000E-002  0.24260350069736841     
  0.12500000000000000       0.24978712373684211     
  0.15625000000000000       0.25697074677631576     
  0.18750000000000000       0.26415436981578949     
  0.21875000000000000       0.27133799285526317     
  0.25000000000000000       0.27852161589473684     
  0.28125000000000000       0.28570523893421051     
  0.31250000000000000       0.29288886197368419     
  0.34375000000000000       0.30007248501315786     
  0.37500000000000000       0.30725610805263159     
  0.40625000000000000       0.31443973109210527     
  0.43750000000000000       0.32162335413157894     
  0.46875000000000000       0.32880697717105267     
  0.50000000000000000       0.33599060021052629     
  0.53749999999999998       0.33599060021052629     
  0.57499999999999996       0.33599060021052629     
  0.61250000000000004       0.33599060021052629     
  0.65000000000000002       0.33599060021052629     
 -0.14999999999999999       0.25263157894736837     
 -0.11249999999999999       0.25263157894736843     
  -7.4999999999999997E-002  0.25263157894736843     
  -3.7500000000000006E-002  0.25263157894736843     
   0.0000000000000000       0.25263157894736843     
   3.1250000000000000E-002  0.25921656673355264     
   6.2500000000000000E-002  0.26580155451973686     
   9.3750000000000000E-002  0.27238654230592108     
  0.12500000000000000       0.27897153009210529     
  0.15625000000000000       0.28555651787828945     
  0.18750000000000000       0.29214150566447367     
  0.21875000000000000       0.29872649345065788     
  0.25000000000000000       0.30531148123684210     
  0.28125000000000000       0.31189646902302631     
  0.31250000000000000       0.31848145680921053     
  0.34375000000000000       0.32506644459539474     
  0.37500000000000000       0.33165143238157896     
  0.40625000000000000       0.33823642016776317     
  0.43750000000000000       0.34482140795394733     
  0.46875000000000000       0.35140639574013155     
  0.50000000000000000       0.35799138352631577     
  0.53749999999999998       0.35799138352631577     
  0.57499999999999996       0.35799138352631577     
  0.61250000000000004       0.35799138352631577     
  0.65000000000000002       0.35799138352631577     
 -0.14999999999999999       0.28421052631578947     
 -0.11249999999999999       0.28421052631578947     
  -7.4999999999999997E-002  0.28421052631578947     
  -3.7500000000000006E-002  0.28421052631578947     
   0.0000000000000000       0.28421052631578947     
   3.1250000000000000E-002  0.29019687884868417     
   6.2500000000000000E-002  0.29618323138157893     
   9.3750000000000000E-002  0.30216958391447368     
  0.12500000000000000       0.30815593644736844     
  0.15625000000000000       0.31414228898026314     
  0.18750000000000000       0.32012864151315790     
  0.21875000000000000       0.32611499404605265     
  0.25000000000000000       0.33210134657894735     
  0.28125000000000000       0.33808769911184211     
  0.31250000000000000       0.34407405164473681     
  0.34375000000000000       0.35006040417763162     
  0.37500000000000000       0.35604675671052632     
  0.40625000000000000       0.36203310924342108     
  0.43750000000000000       0.36801946177631578     
  0.46875000000000000       0.37400581430921054     
  0.50000000000000000       0.37999216684210524     
  0.53749999999999998       0.37999216684210524     
  0.57499999999999996       0.37999216684210524     
  0.61250000000000004       0.37999216684210524     
  0.65000000000000002       0.37999216684210524     
 -0.14999999999999999       0.31578947368421051     
 -0.11249999999999999       0.31578947368421051     
  -7.4999999999999997E-002  0.31578947368421051     
  -3.7499999999999999E-002  0.31578947368421051     
   0.0000000000000000       0.31578947368421051     
   3.1250000000000000E-002  0.32117719096381575     
   6.2500000000000000E-002  0.32656490824342105     
   9.3750000000000000E-002  0.33195262552302629     
  0.12500000000000000       0.33734034280263159     
  0.15625000000000000       0.34272806008223683     
  0.18750000000000000       0.34811577736184207     
  0.21875000000000000       0.35350349464144737     
  0.25000000000000000       0.35889121192105261     
  0.28125000000000000       0.36427892920065785     
  0.31250000000000000       0.36966664648026315     
  0.34375000000000000       0.37505436375986845     
  0.37500000000000000       0.38044208103947369     
  0.40625000000000000       0.38582979831907893     
  0.43750000000000000       0.39121751559868423     
  0.46875000000000000       0.39660523287828947     
  0.50000000000000000       0.40199295015789471     
  0.53749999999999998       0.40199295015789471     
  0.57499999999999996       0.40199295015789471     
  0.61250000000000004       0.40199295015789471     
  0.65000000000000002       0.40199295015789471     
 -0.14999999999999999       0.34736842105263155     
 -0.11249999999999999       0.34736842105263160     
  -7.4999999999999997E-002  0.34736842105263160     
  -3.7499999999999999E-002  0.34736842105263160     
   0.0000000000000000       0.34736842105263160     
   3.1250000000000000E-002  0.35215750307894733     
   6.2500000000000000E-002  0.35694658510526317     
   9.3750000000000000E-002  0.36173566713157895     
  0.12500000000000000       0.36652474915789474     
  0.15625000000000000       0.37131383118421052     
  0.18750000000000000       0.37610291321052630     
  0.21875000000000000       0.38089199523684208     
  0.25000000000000000       0.38568107726315787     
  0.28125000000000000       0.39047015928947365     
  0.31250000000000000       0.39525924131578943     
  0.34375000000000000       0.40004832334210527     
  0.37500000000000000       0.40483740536842105     
  0.40625000000000000       0.40962648739473684     
  0.43750000000000000       0.41441556942105262     
  0.46875000000000000       0.41920465144736840     
  0.50000000000000000       0.42399373347368419     
  0.53749999999999998       0.42399373347368419     
  0.57499999999999996       0.42399373347368419     
  0.61250000000000004       0.42399373347368419     
  0.65000000000000002       0.42399373347368419     
 -0.14999999999999999       0.37894736842105259     
 -0.11249999999999999       0.37894736842105264     
  -7.4999999999999997E-002  0.37894736842105264     
  -3.7499999999999999E-002  0.37894736842105264     
   0.0000000000000000       0.37894736842105264     
   3.1250000000000000E-002  0.38313781519407891     
   6.2500000000000000E-002  0.38732826196710524     
   9.3750000000000000E-002  0.39151870874013156     
  0.12500000000000000       0.39570915551315788     
  0.15625000000000000       0.39989960228618415     
  0.18750000000000000       0.40409004905921053     
  0.21875000000000000       0.40828049583223680     
  0.25000000000000000       0.41247094260526318     
  0.28125000000000000       0.41666138937828945     
  0.31250000000000000       0.42085183615131577     
  0.34375000000000000       0.42504228292434210     
  0.37500000000000000       0.42923272969736848     
  0.40625000000000000       0.43342317647039474     
  0.43750000000000000       0.43761362324342101     
  0.46875000000000000       0.44180407001644739     
  0.50000000000000000       0.44599451678947366     
  0.53749999999999998       0.44599451678947366     
  0.57499999999999996       0.44599451678947366     
  0.61250000000000004       0.44599451678947366     
  0.65000000000000002       0.44599451678947366     
 -0.14999999999999999       0.41052631578947363     
 -0.11249999999999999       0.41052631578947368     
  -7.4999999999999997E-002  0.41052631578947368     
  -3.7499999999999999E-002  0.41052631578947368     
   0.0000000000000000       0.41052631578947368     
   3.1250000000000000E-002  0.41411812730921049     
   6.2500000000000000E-002  0.41770993882894736     
   9.3750000000000000E-002  0.42130175034868422     
  0.12500000000000000       0.42489356186842103     
  0.15625000000000000       0.42848537338815784     
  0.18750000000000000       0.43207718490789471     
  0.21875000000000000       0.43566899642763157     
  0.25000000000000000       0.43926080794736844     
  0.28125000000000000       0.44285261946710525     
  0.31250000000000000       0.44644443098684206     
  0.34375000000000000       0.45003624250657892     
  0.37500000000000000       0.45362805402631579     
  0.40625000000000000       0.45721986554605265     
  0.43750000000000000       0.46081167706578940     
  0.46875000000000000       0.46440348858552627     
  0.50000000000000000       0.46799530010526313     
  0.53749999999999998       0.46799530010526313     
  0.57499999999999996       0.46799530010526313     
  0.61250000000000004       0.46799530010526313     
  0.65000000000000002       0.46799530010526313     
 -0.14999999999999999       0.44210526315789472     
 -0.11249999999999999       0.44210526315789478     
  -7.4999999999999997E-002  0.44210526315789478     
  -3.7499999999999999E-002  0.44210526315789478     
   0.0000000000000000       0.44210526315789478     
   3.1250000000000000E-002  0.44509843942434207     
   6.2500000000000000E-002  0.44809161569078948     
   9.3750000000000000E-002  0.45108479195723683     
  0.12500000000000000       0.45407796822368424     
  0.15625000000000000       0.45707114449013153     
  0.18750000000000000       0.46006432075657894     
  0.21875000000000000       0.46305749702302629     
  0.25000000000000000       0.46605067328947369     
  0.28125000000000000       0.46904384955592099     
  0.31250000000000000       0.47203702582236839     
  0.34375000000000000       0.47503020208881575     
  0.37500000000000000       0.47802337835526321     
  0.40625000000000000       0.48101655462171056     
  0.43750000000000000       0.48400973088815791     
  0.46875000000000000       0.48700290715460526     
  0.50000000000000000       0.48999608342105261     
  0.53749999999999998       0.48999608342105261     
  0.57499999999999996       0.48999608342105261     
  0.61250000000000004       0.48999608342105261     
  0.65000000000000002       0.48999608342105261     
 -0.14999999999999999       0.47368421052631576     
 -0.11249999999999999       0.47368421052631582     
  -7.4999999999999997E-002  0.47368421052631582     
  -3.7499999999999999E-002  0.47368421052631582     
   0.0000000000000000       0.47368421052631582     
   3.1250000000000000E-002  0.47607875153947365     
   6.2500000000000000E-002  0.47847329255263155     
   9.3750000000000000E-002  0.48086783356578949     
  0.12500000000000000       0.48326237457894738     
  0.15625000000000000       0.48565691559210522     
  0.18750000000000000       0.48805145660526311     
  0.21875000000000000       0.49044599761842106     
  0.25000000000000000       0.49284053863157895     
  0.28125000000000000       0.49523507964473679     
  0.31250000000000000       0.49762962065789468     
  0.34375000000000000       0.50002416167105268     
  0.37500000000000000       0.50241870268421052     
  0.40625000000000000       0.50481324369736846     
  0.43750000000000000       0.50720778471052630     
  0.46875000000000000       0.50960232572368425     
  0.50000000000000000       0.51199686673684208     
  0.53749999999999998       0.51199686673684208     
  0.57499999999999996       0.51199686673684208     
  0.61250000000000004       0.51199686673684208     
  0.65000000000000002       0.51199686673684208     
 -0.14999999999999999       0.50526315789473686     
 -0.11249999999999999       0.50526315789473686     
  -7.4999999999999997E-002  0.50526315789473686     
  -3.7499999999999999E-002  0.50526315789473686     
   0.0000000000000000       0.50526315789473686     
   3.1250000000000000E-002  0.50705906365460529     
   6.2500000000000000E-002  0.50885496941447372     
   9.3750000000000000E-002  0.51065087517434216     
  0.12500000000000000       0.51244678093421059     
  0.15625000000000000       0.51424268669407891     
  0.18750000000000000       0.51603859245394734     
  0.21875000000000000       0.51783449821381577     
  0.25000000000000000       0.51963040397368421     
  0.28125000000000000       0.52142630973355264     
  0.31250000000000000       0.52322221549342107     
  0.34375000000000000       0.52501812125328950     
  0.37500000000000000       0.52681402701315794     
  0.40625000000000000       0.52860993277302637     
  0.43750000000000000       0.53040583853289469     
  0.46875000000000000       0.53220174429276312     
  0.50000000000000000       0.53399765005263156     
  0.53749999999999998       0.53399765005263156     
  0.57499999999999996       0.53399765005263156     
  0.61250000000000004       0.53399765005263156     
  0.65000000000000002       0.53399765005263156     
 -0.14999999999999999       0.53684210526315790     
 -0.11249999999999999       0.53684210526315790     
  -7.4999999999999997E-002  0.53684210526315790     
  -3.7499999999999999E-002  0.53684210526315790     
   0.0000000000000000       0.53684210526315790     
   3.1250000000000000E-002  0.53803937576973682     
   6.2500000000000000E-002  0.53923664627631573     
   9.3750000000000000E-002  0.54043391678289476     
  0.12500000000000000       0.54163118728947368     
  0.15625000000000000       0.54282845779605260     
  0.18750000000000000       0.54402572830263163     
  0.21875000000000000       0.54522299880921055     
  0.25000000000000000       0.54642026931578946     
  0.28125000000000000       0.54761753982236838     
  0.31250000000000000       0.54881481032894741     
  0.34375000000000000       0.55001208083552633     
  0.37500000000000000       0.55120935134210525     
  0.40625000000000000       0.55240662184868428     
  0.43750000000000000       0.55360389235526308     
  0.46875000000000000       0.55480116286184211     
  0.50000000000000000       0.55599843336842103     
  0.53749999999999998       0.55599843336842103     
  0.57499999999999996       0.55599843336842103     
  0.61250000000000004       0.55599843336842103     
  0.65000000000000002       0.55599843336842103     
 -0.14999999999999999       0.56842105263157894     
 -0.11249999999999999       0.56842105263157894     
  -7.4999999999999997E-002  0.56842105263157894     
  -3.7499999999999999E-002  0.56842105263157894     
   0.0000000000000000       0.56842105263157894     
   3.1250000000000000E-002  0.56901968788486834     
   6.2500000000000000E-002  0.56961832313815786     
   9.3750000000000000E-002  0.57021695839144737     
  0.12500000000000000       0.57081559364473689     
  0.15625000000000000       0.57141422889802629     
  0.18750000000000000       0.57201286415131580     
  0.21875000000000000       0.57261149940460532     
  0.25000000000000000       0.57321013465789472     
  0.28125000000000000       0.57380876991118424     
  0.31250000000000000       0.57440740516447364     
  0.34375000000000000       0.57500604041776315     
  0.37500000000000000       0.57560467567105267     
  0.40625000000000000       0.57620331092434218     
  0.43750000000000000       0.57680194617763159     
  0.46875000000000000       0.57740058143092099     
  0.50000000000000000       0.57799921668421050     
  0.53749999999999998       0.57799921668421050     
  0.57499999999999996       0.57799921668421050     
  0.61250000000000004       0.57799921668421050     
  0.65000000000000002       0.57799921668421050     
 -0.14999999999999999       0.59999999999999998     
 -0.11249999999999999       0.59999999999999998     
  -7.4999999999999997E-002  0.59999999999999998     
  -3.7499999999999999E-002  0.59999999999999998     
   0.0000000000000000       0.59999999999999998     
   3.1250000000000000E-002  0.59999999999999998     
   6.2500000000000000E-002  0.59999999999999998     
   9.3750000000000000E-002  0.59999999999999998     
  0.12500000000000000       0.59999999999999998     
  0.15625000000000000       0.59999999999999998     
  0.18750000000000000       0.59999999999999998     
  0.21875000000000000       0.59999999999999998     
  0.25000000000000000       0.59999999999999998     
  0.28125000000000000       0.59999999999999998     
  0.31250000000000000       0.59999999999999998     
  0.34375000000000000       0.59999999999999998     
  0.37500000000000000       0.59999999999999998     
  0.40625000000000000       0.59999999999999998     
  0.43750000000000000       0.59999999999999998     
  0.46875000000000000       0.59999999999999998     
  0.50000000000000000       0.59999999999999998     
  0.53749999999999998       0.59999999999999998     
  0.57499999999999996       0.59999999999999998     
  0.61250000000000004       0.59999999999999998     
  0.65000000000000002       0.59999999999999998     

元の格子データにいい感じに擾乱を入れる

このステップはオプションです。

元のデータに適当な擾乱を入れることで最終的な格子に「それっぽい」非構造感が出ます。

ここでは以下のように格子点を移動させました。

格子点の移動

w1 = 1.5d0
w2 = 0.5d0
do loop = 1, 3
    do k = 2, kmax-1
        do i = 2, imax-1
            if(mod(k,2).eq.0) then
            x(i,k) = (w1*x(i,k) + w2*x(i,k+1)) / (w1 + w2)
            y(i,k) = (w1*y(i,k) + w2*y(i,k+1)) / (w1 + w2)
            end if

            if(mod(i,3).eq.0) then
            x(i,k) = (w1*x(i,k) + w2*x(i,k+1)) / (w1 + w2)
            y(i,k) = (w1*y(i,k) + w2*y(i,k+1)) / (w1 + w2)
            end if

            if(mod(i,2).eq.0 .and. mod(k,5).eq.0) then
            x(i,k) = (w1*x(i,k) + w2*x(i+1,k)) / (w1 + w2)
            y(i,k) = (w1*y(i,k) + w2*y(i+1,k)) / (w1 + w2)
            end if

            if(mod(i,3).eq.0 .and. mod(k,2).eq.0) then
            x(i,k) = (w1*x(i,k) + w2*x(i+1,k)) / (w1 + w2)
            y(i,k) = (w1*y(i,k) + w2*y(i+1,k)) / (w1 + w2)
            end if

            if(mod(i,2).eq.0) then
            x(i,k) = (w1*x(i,k) + w2*x(i,k-1)) / (w1 + w2)
            y(i,k) = (w1*y(i,k) + w2*y(i,k-1)) / (w1 + w2)
            end if
        end do
    end do
end do

original.tecに対して適用すると以下のようなデータになります。

perturbed.tec

VARIABLES=X,Y
ZONE I=25,J=20,F=POINT
 -0.14999999999999999        0.0000000000000000     
 -0.11249999999999999        0.0000000000000000     
  -7.4999999999999997E-002   0.0000000000000000     
  -3.7500000000000006E-002   0.0000000000000000     
   0.0000000000000000        0.0000000000000000     
   3.1250000000000000E-002   1.1374069812500000E-002
   6.2500000000000000E-002   2.2748139625000000E-002
   9.3750000000000000E-002   3.4122209437500002E-002
  0.12500000000000000        4.5496279250000000E-002
  0.15625000000000000        5.6870349062499999E-002
  0.18750000000000000        6.8244418875000004E-002
  0.21875000000000000        7.9618488687500003E-002
  0.25000000000000000        9.0992558500000001E-002
  0.28125000000000000       0.10236662831250000     
  0.31250000000000000       0.11374069812500000     
  0.34375000000000000       0.12511476793750001     
  0.37500000000000000       0.13648883775000001     
  0.40625000000000000       0.14786290756250001     
  0.43750000000000000       0.15923697737500001     
  0.46875000000000000       0.17061104718750000     
  0.50000000000000000       0.18198511700000000     
  0.53749999999999998       0.18198511700000000     
  0.57499999999999996       0.18198511700000000     
  0.61250000000000004       0.18198511700000000     
  0.65000000000000002       0.18198511700000000     
 -0.14999999999999999        3.1578947368421040E-002
 -0.11249999999999999        2.4107762386924341E-002
  -5.9232330322265624E-002   5.3260200902035364E-002
  -3.7500000000000006E-002   2.4107762386924341E-002
   0.0000000000000000        4.9835526315789476E-002
   4.0650745853781700E-002   4.7474886513720421E-002
   6.2500000000000000E-002   7.0694223422594571E-002
   9.3750000000000000E-002   5.6858954962364143E-002
  0.13813972473144531        9.9250133182332043E-002
  0.15625000000000000        7.8693083345990678E-002
  0.18750000000000000       0.11241161763620477     
  0.22815074585378170       0.11190152192099356     
  0.25000000000000000       0.13327031474300985     
  0.28125000000000000       0.12236134011324375     
  0.32563972473144531       0.16143669962445678     
  0.34375000000000000       0.14419546849687032     
  0.37500000000000000       0.17498770895662005     
  0.41565074585378170       0.17632815732826676     
  0.43750000000000000       0.19584640606342521     
  0.46875000000000000       0.18786372526412334     
  0.51576766967773446       0.21909104474770133     
  0.53749999999999998       0.19878078945593661     
  0.57499999999999996       0.21670510317023023     
  0.62378089502453804       0.20317553187103782     
  0.65000000000000002       0.20398590031578948     
 -0.14999999999999999        6.3157894736842080E-002
 -0.11249999999999999        4.1882846229954772E-002
  -6.9909667968749992E-002   8.7433825041118435E-002
  -3.7500000000000006E-002   4.1882846229954772E-002
   0.0000000000000000        6.3157894736842107E-002
   3.7853767629712820E-002   7.2285604614651972E-002
   6.2500000000000000E-002   8.3511493348684213E-002
   9.3750000000000000E-002   7.3623163582626217E-002
  0.12924194335937500       0.12760523202101376     
  0.15625000000000000        9.4783375151073865E-002
  0.18750000000000000       0.12421869057236842     
  0.22535376762971282       0.13371739443379785     
  0.25000000000000000       0.14457228918421053     
  0.28125000000000000       0.13710379828796915     
  0.31674194335937500       0.18590486659609787     
  0.34375000000000000       0.15826400985641681     
  0.37500000000000000       0.18527948640789474     
  0.41285376762971282       0.19514918425294378     
  0.43750000000000000       0.20563308501973684     
  0.46875000000000000       0.20058443299331205     
  0.50509033203124998       0.24289951724134262     
  0.53749999999999998       0.21116453877753588     
  0.57499999999999996       0.22598668363157895     
  0.62042452115565538       0.22281514587065460     
  0.65000000000000002       0.22598668363157895     
 -0.14999999999999999        9.4736842105263119E-002
 -0.10963668823242186        7.9346857572856713E-002
  -5.8902740478515625E-002  0.11491807636461761     
  -3.4636688232421886E-002   7.9069308230751451E-002
   0.0000000000000000       0.11299342105263159     
   4.5266561792232096E-002  0.10874208701702470     
   6.2500000000000000E-002  0.13145757714627876     
   9.6136093139648438E-002  0.10963695382661234     
  0.13841438293457031       0.15583660820164569     
  0.15863609313964844       0.12913079044065501     
  0.18750000000000000       0.16838588933357318     
  0.23276656179223210       0.16618728203537889     
  0.25000000000000000       0.18685004542722039     
  0.28363609313964844       0.16885640572725066     
  0.32591438293457031       0.21101016484375207     
  0.34613609313964844       0.18838181099722856     
  0.37500000000000000       0.22377835761451481     
  0.42026656179223210       0.22363247705373315     
  0.43750000000000000       0.24224251370816199     
  0.47113609313964844       0.22807585762788904     
  0.51609725952148444       0.26204756074356772     
  0.54036331176757812       0.23707202971494745     
  0.57499999999999996       0.26070666980180918     
  0.62931987415067847       0.24568954167717616     
  0.65000000000000002       0.24798746694736842     
 -0.14999999999999999       0.12631578947368416     
  -9.7948265075683577E-002  0.10984744774667840     
  -6.9799804687499994E-002  0.15058352821751647     
  -2.3387718200683600E-002  0.10586924050983629     
   0.0000000000000000       0.12631578947368421     
   4.7668512008385733E-002  0.13443601754657453     
   6.2500000000000000E-002  0.14427484707236843     
  0.10587644577026367       0.14112463782781265     
  0.12933349609375000       0.18583041669495276     
  0.16801023483276367       0.15608413222347983     
  0.18750000000000000       0.18019296226973686     
  0.23516851200838573       0.18896484596807617     
  0.25000000000000000       0.19815201986842107     
  0.29337644577026367       0.19687493130885597     
  0.31683349609375000       0.23694735994436680     
  0.35551023483276367       0.21228690977292758     
  0.37500000000000000       0.23407013506578950     
  0.42266851200838573       0.24349367438957789     
  0.43750000000000000       0.25202919266447366     
  0.48094968795776372       0.25252701119365650     
  0.50520019531249993       0.28689537688262051     
  0.55161228179931632       0.25574331397503014     
  0.57499999999999996       0.26998825026315787     
  0.63220221441006275       0.26511555739529363     
  0.65000000000000002       0.26998825026315787     
 -0.14999999999999999       0.15789473684210520     
 -0.10642361640930176       0.14328763735921760     
  -5.8071899414062496E-002  0.17804212068256575     
  -3.1533479690551765E-002  0.14206757670954653     
   0.0000000000000000       0.17615131578947371     
   4.6293077801237814E-002  0.17026300235385736     
   6.2500000000000000E-002  0.19222093086996297     
   9.8813652992248535E-002  0.17069116157649195     
  0.13910675048828125       0.21387030951259683     
  0.16122210025787354       0.18690091240083551     
  0.18750000000000000       0.22436016103094159     
  0.23379307780123781       0.22056014652597455     
  0.25000000000000000       0.24042977611143090     
  0.28631365299224854       0.22263794454557267     
  0.32660675048828125       0.26186409328550631     
  0.34872210025787354       0.23898646591996475     
  0.37500000000000000       0.27256900627240954     
  0.42129307780123781       0.27085729069809183     
  0.43750000000000000       0.28863862135289886     
  0.47383196353912355       0.27456017411559275     
  0.51692810058593752       0.30602554407699095     
  0.54346652030944820       0.28096238609389101     
  0.57499999999999996       0.30470823643338807     
  0.63055169336148531       0.28947618954312054     
  0.65000000000000002       0.29198903357894734     
 -0.14999999999999999       0.18947368421052629     
 -0.11000243425369262       0.16519656149964584     
  -6.9902801513671869E-002  0.21374091098183079     
  -3.5029900074005131E-002  0.16482215900170177     
   0.0000000000000000       0.18947368421052632     
   3.9766136393154738E-002  0.19549958275668103     
   6.2500000000000000E-002  0.20503820079605262     
   9.5831304788589478E-002  0.19051450126152469     
  0.12924766540527344       0.24401158282967028     
  0.15830841660499573       0.20666149409603826     
  0.18750000000000000       0.23616723396710526     
  0.22726613639315474       0.24265439781444054     
  0.25000000000000000       0.25173175055263158     
  0.28333130478858948       0.23996934790370550     
  0.31674766540527344       0.28794496127172342     
  0.34580841660499573       0.25615892553971498     
  0.37500000000000000       0.28286078372368423     
  0.41476613639315474       0.28980921287220013     
  0.43750000000000000       0.29842530030921055     
  0.47083588242530822       0.28941805619612115     
  0.50509719848632806       0.33089658682730566     
  0.53997009992599476       0.29681530951817287     
  0.57499999999999996       0.31398981689473682     
  0.62271936367178571       0.31019336937905490     
  0.65000000000000002       0.31398981689473682     
 -0.14999999999999999       0.22105263157894733     
 -0.11163219809532164       0.20401721933954642     
  -5.9122467041015619E-002  0.24109067352194538     
  -3.6639064550399787E-002  0.20390952441253157     
   0.0000000000000000       0.23930921052631579     
   4.3566780938817828E-002  0.23151447734568267     
   6.2500000000000000E-002  0.25298428459364719     
   9.4473168253898621E-002  0.22674254586089812     
  0.13823127746582031       0.27138516369546672     
  0.15696744620800018       0.24165868494855813     
  0.18750000000000000       0.28033443272830999     
  0.23106678093881783       0.27456547655571406     
  0.25000000000000000       0.29400950679564142     
  0.28197316825389862       0.27178190377869682     
  0.32573127746582031       0.31220776105265419     
  0.34446744620800018       0.28671029216254007     
  0.37500000000000000       0.32135965493030427     
  0.41856678093881783       0.31761647576574564     
  0.43750000000000000       0.33503472899763564     
  0.46947431266307832       0.31681972710905432     
  0.51587753295898442       0.34995093314111198     
  0.53836093544960018       0.32404714364981668     
  0.57499999999999996       0.34870980306496702     
  0.62728013712658137       0.33383813784643257     
  0.65000000000000002       0.33599060021052629     
 -0.14999999999999999       0.25263157894736837     
 -0.11219389289617537       0.22759981702424978     
  -6.9469785690307609E-002  0.27680625727302149     
  -3.7195609509944917E-002  0.22756855658402569     
   0.0000000000000000       0.25263157894736843     
   4.0036329742406451E-002  0.25692889347605097     
   6.2500000000000000E-002  0.26580155451973686     
   9.4005089253187180E-002  0.24885102402174267     
  0.12960851192474365       0.30220271021143541     
  0.15650365874171257       0.26294195445013280     
  0.18750000000000000       0.29214150566447367     
  0.22753632974240645       0.29692193758510355     
  0.25000000000000000       0.30531148123684210     
  0.28150508925318718       0.29120808081528216     
  0.31710851192474365       0.33896299213883352     
  0.34400365874171257       0.30530256682796719     
  0.37500000000000000       0.33165143238157896     
  0.41503632974240645       0.33691498169415623     
  0.43750000000000000       0.34482140795394733     
  0.46900537535548209       0.33356475396196145     
  0.50553021430969236       0.37483367574608323     
  0.53780439049005491       0.34053018959158393     
  0.57499999999999996       0.35799138352631577     
  0.62304359569088774       0.35391037784093216     
  0.65000000000000002       0.35799138352631577     
 -0.14999999999999999       0.28421052631578947     
  -9.6876783238258199E-002  0.27103858850237689     
  -5.5920626968145370E-002  0.30416918425379619     
  -2.5509888993110505E-002  0.27042771822261302     
   0.0000000000000000       0.30246710526315790     
   4.8339103656308779E-002  0.29373060710425414     
   6.2500000000000000E-002  0.31374763831733138     
  0.10676934730145149       0.29217965290060655     
  0.14089947752654552       0.32967475725204964     
  0.16624175917240791       0.30352527902257331     
  0.18750000000000000       0.33630870442567845     
  0.23583910365630878       0.32961312101259066     
  0.25000000000000000       0.34758923747985193     
  0.29426934730145149       0.32959595350053156     
  0.32839947752654552       0.36332276076191100     
  0.35374175917240791       0.34101106043458257     
  0.37500000000000000       0.37015030358819900     
  0.42333910365630878       0.36549563492092707     
  0.43750000000000000       0.38143083664237254     
  0.48237486492726017       0.36642716949012805     
  0.51907937303185470       0.39389719361342668     
  0.54949011100688949       0.37038980198797100     
  0.57499999999999996       0.39271136969654602     
  0.63300692438757045       0.37624043273054963     
  0.65000000000000002       0.37999216684210524     
 -0.14999999999999999       0.31578947368421051     
 -0.10534781933238263       0.29165560849287431     
  -6.9882175326347343E-002  0.34005088417937879     
  -3.1585685614845718E-002  0.29141588570924604     
   0.0000000000000000       0.31578947368421051     
   4.0964640539983943E-002  0.31880848360653324     
   6.2500000000000000E-002  0.32656490824342105     
   9.9710150556347799E-002  0.31031138699366756     
  0.12926485389471054       0.36042164978620184     
  0.16117859532096190       0.32159048031864773     
  0.18750000000000000       0.34811577736184207     
  0.22846464053998394       0.35161351157578580     
  0.25000000000000000       0.35889121192105261     
  0.28721015055634780       0.34538269334661625     
  0.31676485389471054       0.38998844369661578     
  0.34867859532096190       0.35668905290836295     
  0.37500000000000000       0.38044208103947369     
  0.41596464053998394       0.38441853954503813     
  0.43750000000000000       0.39121751559868423     
  0.47491646160342493       0.38025511412042434     
  0.50511782467365263       0.41889566794048261     
  0.54341431438515420       0.38501207928181980     
  0.57499999999999996       0.40199295015789471     
  0.62415756864798055       0.39758940580407487     
  0.65000000000000002       0.40199295015789471     
 -0.14999999999999999       0.34736842105263155     
 -0.10987372504241648       0.33028721455853216     
  -5.8875857619568706E-002  0.36736304162523564     
  -3.5250139550043968E-002  0.33020961092859491     
   0.0000000000000000       0.36562500000000003     
   4.3801232398897549E-002  0.35453507757785757     
   6.2500000000000000E-002  0.37451099204101562     
   9.5938562464652932E-002  0.34603844356225660     
  0.13843678531702608       0.38710686434627006     
  0.15812488370829669       0.35613503142630260     
  0.18750000000000000       0.39228297612304686     
  0.23130123239889755       0.38321944003352892     
  0.25000000000000000       0.40116896816406244     
  0.28343856246465293       0.37671576407160756     
  0.32593678531702608       0.41356715440149239     
  0.34562488370829669       0.38682117862669962     
  0.37500000000000000       0.41894095224609373     
  0.41880123239889755       0.41190380248920022     
  0.43750000000000000       0.42782694428710943     
  0.47100129821592418       0.40733267588077848     
  0.51612414238043136       0.43792381510582828     
  0.53974986044995599       0.41203933679632010     
  0.57499999999999996       0.43671293632812491     
  0.62756147887867708       0.42169422381515709     
  0.65000000000000002       0.42399373347368419     
 -0.14999999999999999       0.37894736842105259     
 -0.11152841429848194       0.35386696762702741     
  -6.9907949678599826E-002  0.40321419967681560     
  -3.6643117290623195E-002  0.35384212889368760     
   0.0000000000000000       0.37894736842105264     
   3.8987040912768584E-002  0.38040479816116513     
   6.2500000000000000E-002  0.38732826196710524     
   9.4559654751265043E-002  0.36801768170757071     
  0.12924337526783347       0.41862873281550039     
  0.15696406892448067       0.37730905855030511     
  0.18750000000000000       0.40409004905921053     
  0.22648704091276858       0.40599120207819600     
  0.25000000000000000       0.41247094260526318     
  0.28205965475126504       0.39601302464129584     
  0.31674337526783347       0.44101128712534615     
  0.34446406892448067       0.40530722665890084     
  0.37500000000000000       0.42923272969736848     
  0.41398704091276861       0.43157760599522677     
  0.43750000000000000       0.43761362324342101     
  0.46957877191662190       0.42398997699831614     
  0.50509205032140014       0.46290101116973781     
  0.53835688270937676       0.42850391051660952     
  0.57499999999999996       0.44599451678947366     
  0.62178444909532238       0.44225663918849134     
  0.65000000000000002       0.44599451678947366     
 -0.14999999999999999       0.41052631578947363     
 -0.10931887002311667       0.39384214010209706     
  -5.8871117731905537E-002  0.43055265941247378     
  -3.4351730017215226E-002  0.39355727651827999     
   0.0000000000000000       0.42878289473684211     
   4.5610127559547929E-002  0.41572184760186431     
   6.2500000000000000E-002  0.43527434576469981     
   9.6400941647402760E-002  0.40583983501308979     
  0.13844073522341205       0.44497578402022286     
  0.15887355831898731       0.41339828604765089     
  0.18750000000000000       0.44825724782041521     
  0.23311012755954794       0.43727231631024599     
  0.25000000000000000       0.45474869884827296     
  0.28390094164740276       0.42928837392183317     
  0.32594073522341205       0.46424884283407275     
  0.34637355831898731       0.43687922553928799     
  0.37500000000000000       0.46773160090398852     
  0.42061012755954791       0.45882278501862767     
  0.43750000000000000       0.47422305193184622     
  0.47140641831308583       0.45273164722981329     
  0.51612888226809450       0.48194748291607337     
  0.54064826998278481       0.45617311516264569     
  0.57499999999999996       0.48071450295970392     
  0.62973215307145747       0.46552113248384341     
  0.65000000000000002       0.46799530010526313     
 -0.14999999999999999       0.44210526315789472     
  -9.7849513455400924E-002  0.42522362356146537     
  -6.9799697294365609E-002  0.46637243321119487     
  -2.3298147174170933E-002  0.42124333286610832     
   0.0000000000000000       0.44210526315789478     
   4.7774574786099054E-002  0.44104771275935251     
   6.2500000000000000E-002  0.44809161569078948     
  0.10595873878716588       0.43625787713483882     
  0.12933358558802865       0.47684384388180040     
  0.16808487735485755       0.43932717160102108     
  0.18750000000000000       0.46006432075657894     
  0.23527457478609906       0.45966606666763499     
  0.25000000000000000       0.46605067328947369     
  0.29345873878716588       0.45613706420671551     
  0.31683358558802865       0.49204273661710407     
  0.35558487735485755       0.45965907971532821     
  0.37500000000000000       0.47802337835526321     
  0.42277457478609909       0.47828442057591752     
  0.43750000000000000       0.48400973088815791     
  0.48103351107362757       0.47598671970707573     
  0.50520030270563432       0.50690281383867153     
  0.55170185282582906       0.47546175450426054     
  0.57499999999999996       0.48999608342105261     
  0.63232948974331893       0.48506750835941048     
  0.65000000000000002       0.48999608342105261     
 -0.14999999999999999       0.47368421052631576     
 -0.10639300374011497       0.45894578055264845     
  -5.8069419587081936E-002  0.49381924796513499     
  -3.1505423685186426E-002  0.45772513000345011     
   0.0000000000000000       0.49194078947368419     
   4.6324203828444890E-002  0.47717010917763691     
   6.2500000000000000E-002  0.49603769948838405     
   9.8839163549904185E-002  0.46743254664454847     
  0.13910881701076505       0.50300125595679324     
  0.16124548026234464       0.47169117756528955     
  0.18750000000000000       0.50423151951778367     
  0.23382420382844490       0.49155146844594788     
  0.25000000000000000       0.50832842953248347     
  0.28633916354990419       0.48347615203796712     
  0.32660881701076505       0.51507832882067639     
  0.34874548026234464       0.48787362060434086     
  0.37500000000000000       0.51652224956188320     
  0.42132420382844488       0.50593282771425896     
  0.43750000000000000       0.52061915957658300     
  0.47385790020741614       0.49951233279122004     
  0.51693058041291806       0.52602477560215655     
  0.54349457631481357       0.50087831144091999     
  0.57499999999999996       0.52471606959128281     
  0.63058904459413401       0.50946730592804856     
  0.65000000000000002       0.51199686673684208     
 -0.14999999999999999       0.50526315789473686     
 -0.10999273503477339       0.48094340419669523     
  -6.9902794801600970E-002  0.52953034912288321     
  -3.5020920487311716E-002  0.48056883298236208     
   0.0000000000000000       0.50526315789473686     
   3.9775989933600486E-002  0.50366647180445423     
   6.2500000000000000E-002  0.50885496941447372     
   9.5839387471022164E-002  0.48790754455869012     
  0.12924767099866585       0.53504191855822669     
  0.15831589959390691       0.49208756843809687     
  0.18750000000000000       0.51603859245394734     
  0.22727598993360049       0.51490394753573843     
  0.25000000000000000       0.51963040397368421     
  0.28333938747102216       0.50144912488174387     
  0.31674767099866585       0.54305718584561502     
  0.34581589959390691       0.50567175275256659     
  0.37500000000000000       0.52681402701315794     
  0.41477598993360049       0.52614142326702273     
  0.43750000000000000       0.53040583853289469     
  0.47084408504644520       0.51498883619943725     
  0.50509720519839896       0.55090439522258516     
  0.53997907951268820       0.51679332448761439     
  0.57499999999999996       0.53399765005263156     
  0.62273118792032067       0.53019576966427651     
  0.65000000000000002       0.53399765005263156     
 -0.14999999999999999       0.53684210526315790     
 -0.11162931403167614       0.51979381381481538     
  -5.9891318523693823E-002  0.55602918742993290     
  -3.6636376739521914E-002  0.51968607239402220     
   0.0000000000000000       0.55509868421052633     
   4.3078162768933385E-002  0.53907375684842396     
   6.2500000000000000E-002  0.55680105321206819     
   9.4475571640269873E-002  0.52442273955559260     
  0.13759056789692181       0.55990821516195988     
  0.15696968605039840       0.52736768539555401     
  0.18750000000000000       0.56020579121515213     
  0.23057816276893339       0.54619321085168382     
  0.25000000000000000       0.56190816021669399     
  0.28197557164026987       0.53354544716623931     
  0.32509056789692181       0.56490948608080260     
  0.34446968605039840       0.53650264759061872     
  0.37500000000000000       0.56531289821977793     
  0.41807816276893339       0.55331266485494346     
  0.43750000000000000       0.56701526722131990     
  0.46947674875824419       0.54266768491634032     
  0.51510868147630617       0.56936590988018076     
  0.53836362326047804       0.54404597158086121     
  0.57499999999999996       0.56871763622286187     
  0.62669379532272007       0.55392805239901177     
  0.65000000000000002       0.55599843336842103     
 -0.14999999999999999       0.56842105263157894     
 -0.11219301662937345       0.54338531355900355     
  -7.4999999999999997E-002  0.58667763157894737     
  -3.7194787335476806E-002  0.54335404016774058     
   0.0000000000000000       0.56842105263157894     
   3.6054840646788829E-002  0.56562512766538653     
   6.2500000000000000E-002  0.56961832313815786     
   9.4005819475522112E-002  0.54662896231460911     
  0.12500000000000000       0.58768782856887336     
  0.15650434388710266       0.54874759236604120     
  0.18750000000000000       0.57201286415131580     
  0.22355484064678882       0.56963325566103185     
  0.25000000000000000       0.57321013465789472     
  0.28150581947552211       0.55306835627453599     
  0.31250000000000000       0.58920312405376229     
  0.34400434388710266       0.55519054338332319     
  0.37500000000000000       0.57560467567105267     
  0.41105484064678882       0.57364138365667705     
  0.43750000000000000       0.57680194617763159     
  0.46900611459320596       0.55950763196649400     
  0.50000000000000000       0.59071841953865123     
  0.53780521266452308       0.56053524288049228     
  0.57499999999999996       0.57799921668421050     
  0.61826580877614656       0.57467861664176256     
  0.65000000000000002       0.57799921668421050     
 -0.14999999999999999       0.59999999999999998     
 -0.11249999999999999       0.59999999999999998     
  -7.4999999999999997E-002  0.59999999999999998     
  -3.7499999999999999E-002  0.59999999999999998     
   0.0000000000000000       0.59999999999999998     
   3.1250000000000000E-002  0.59999999999999998     
   6.2500000000000000E-002  0.59999999999999998     
   9.3750000000000000E-002  0.59999999999999998     
  0.12500000000000000       0.59999999999999998     
  0.15625000000000000       0.59999999999999998     
  0.18750000000000000       0.59999999999999998     
  0.21875000000000000       0.59999999999999998     
  0.25000000000000000       0.59999999999999998     
  0.28125000000000000       0.59999999999999998     
  0.31250000000000000       0.59999999999999998     
  0.34375000000000000       0.59999999999999998     
  0.37500000000000000       0.59999999999999998     
  0.40625000000000000       0.59999999999999998     
  0.43750000000000000       0.59999999999999998     
  0.46875000000000000       0.59999999999999998     
  0.50000000000000000       0.59999999999999998     
  0.53749999999999998       0.59999999999999998     
  0.57499999999999996       0.59999999999999998     
  0.61250000000000004       0.59999999999999998     
  0.65000000000000002       0.59999999999999998     

ParaViewでDelaunay 2Dフィルターを適用し非構造格子を生成する

上で作成したデータをParaViewで読んだ後、Delaunay 2Dフィルターを適用します。

各フィルターは[Filters]->[Search]で検索出来ます。

この時、右下の凸角のような箇所に元の形状には無いセルが生成されてしまう事があります。

CFDなどで使用する際には困るので少し修正を加えます。

Extract Selectionフィルターで不要なセルを削除する

Select Cells Onなどで余分なセルを選択します。

[Edit]->[Find Data]を開き[Invert selection]のチェックボックスを入れて必要なセルだけが選択された状態にします。

Extract Selectionフィルターを適用し必要なセルだけを抽出します。

作成した非構造格子を出力する

Extract Selectionフィルターを選択した状態でSpreadSheet Viewを開きます。

  • 節点の情報を出力します
    • AttributeをPoint Dataにします
    • Toggle column visibilityで以下にチェックを入れます
      • vtkOriginalPointIds
      • Points
    • vtkOriginalPointIds列が昇順になっていることを確認します
    • Export Spreadsheetで出力します
      • 手元ではpoint.tsvとしました

※PointIDではなくvtkOriginalPointIdsにする必要があります。

  • セルの情報を出力します
    • ArrtibuteをCell Dataにします
    • Toggle cell connectivity visibilityを選択しておきます
    • Toggle column visibilityで以下にチェックを入れます
      • Cell ID
      • Cell Type
      • Point Index 0〜2
    • Export Spreadsheetで出力します
      • 手元ではcell.tsvとしました

※出力したCell Type IDはすべて5になっているはずです。これはVTKフォーマットのcell typeでは5が三角形に対応するためです。

参考1:PENGUINITIS - VTK ファイルフォーマット
参考2:http://www.princeton.edu/~efeibush/viscourse/vtk.pdf (Figure 2)

出力した結果をパースする

出力した結果に非構造格子の構成に必要な情報が揃っているので手元のコードでパースします。

point.tsv

Points_0    Points_1    Points_2    vtkOriginalPointIds
-0.15        0    0    0 ←節点ID=0の座標は(-0.15, 0, 0)
-0.1125    0    0    1

...

cell.tsv

Cell Type    Point Index 0    Point Index 1    Point Index 2    Cell ID
5    63    38    14    0 ←セルID=0を構成する節点IDは63, 38, 14
5    46    20    21    1

...

節点ID(vtkOriginalPointIds)、セルID(Cell ID)はどちらも0から数えます。