[Gmsh] Support for a high order grid for the AIAA workshop 'High order methods for CFD'

Christophe Geuzaine cgeuzaine at ulg.ac.be
Sat Sep 10 08:26:39 CEST 2011


On 05 Sep 2011, at 14:50, Jean-Marie.Le_Gouez at Onera.fr wrote:

> We are participating at ONERA to the workshop "High order Methods for CFD" organized by ZJ Wang and al.
> The geometry for the 3-element airfoil case is provided on the workshop site :
>     http://www.public.iastate.edu/~zjw/hiocfd/3-element-airfoil.IGS
> in IGES format, as Nurbs.
> We have created the following geometry description file HighLift.geo, where the Nurbs are declared as BSplines.
> We just reproduced the same definition points, without duplicating the end points.
> Is this correct ?
> Now the HighLift.geo is parsed correctly by the gmsh 2.5.0 preprocessor, and the mesh as triangles only is correct; However it seems that when requesting high order triangles on the boundaries, there is no difference from 2nd order on.
> Is this a consequence of an improper definition of BSplines ?

Hi Jean-Marie,

No, it's just a visualization artefact: set Mesh.NumSubEdges to something higher than 2 (the option is also available in the GUI in Options->Mesh->Aspect).

Hope this helps,

Christophe


> What is the difference with Splines ?
> Thank you for your support
> 
> Jean-Marie Le Gouez
> Thien Hiep Le
> 
> DSNA
> Onera Chatillon
> TEL +33 1 46 73 42 62
> 
> // Semi-Circle external boundary
> //
> //   Echelle : 1
> //
> lc = 1.300;
> Point(001) = {0.0,0.0,0.0,lc};
> Point(002) = {0.0,10,0.0,lc};
> Point(003) = {-10,0.0,0.0,lc};
> Circle(501) = {002,001,003};
> Point(004) = {0,-10,0.0,lc};
> Circle(502) = {003,001,004};
> //
> Point(005) = {12,-10,0.0,lc};
> Point(006) = {12,-0.0,0.0,0.05};
> Point(007) = {12,10,0.0,lc};
> Line(503) = {004,005};
> Line(504) = {005,006};
> Line(505) = {006,007};
> Line(506)= {007,002};
> //
> Line Loop(01)= {501,502,503,504,505,506};
> //
> lc=0.0025;
> //
> Point(0008) = {  6.3022370000E-01, -8.1584141000E-02,0.0,lc};
> Point(0009) = {  6.3000970000E-01, -8.1402592000E-02,0.0,lc};
> Point(0010) = {  6.2929460000E-01, -8.0796033000E-02,0.0,lc};
> Point(0011) = {  6.2770660000E-01, -7.9448573000E-02,0.0,lc};
> Point(0012) = {  6.2513800000E-01, -7.7265158000E-02,0.0,lc};
> Point(0013) = {  6.2153720000E-01, -7.4274227000E-02,0.0,lc};
> Point(0014) = {  6.1690030000E-01, -7.0678532000E-02,0.0,lc};
> Point(0015) = {  6.1131870000E-01, -6.6527769000E-02,0.0,lc};
> Point(0016) = {  6.0487110000E-01, -6.1910260000E-02,0.0,lc};
> Point(0017) = {  5.9760910000E-01, -5.6982771000E-02,0.0,lc};
> Point(0018) = {  5.8957980000E-01, -5.1939599000E-02,0.0,lc};
> Point(0019) = {  5.8088250000E-01, -4.6927091000E-02,0.0,lc};
> Point(0020) = {  5.7169050000E-01, -4.1978888000E-02,0.0,lc};
> Point(0021) = {  5.6216360000E-01, -3.7156880000E-02,0.0,lc};
> Point(0022) = {  5.5245120000E-01, -3.2555819000E-02,0.0,lc};
> Point(0023) = {  5.4272510000E-01, -2.8232610000E-02,0.0,lc};
> Point(0024) = {  5.3316910000E-01, -2.4216879000E-02,0.0,lc};
> Point(0025) = {  5.2396330000E-01, -2.0533090000E-02,0.0,lc};
> Point(0026) = {  5.1527730000E-01, -1.7219180000E-02,0.0,lc};
> Point(0027) = {  5.0728720000E-01, -1.4271320000E-02,0.0,lc};
> Point(0028) = {  5.0016680000E-01, -1.1820750000E-02,0.0,lc};
> Point(0029) = {  4.9430010000E-01, -8.8845231000E-03,0.0,lc};
> Point(0030) = {  4.9039240000E-01, -5.0004409000E-03,0.0,lc};
> Point(0031) = {  4.8785360000E-01, -1.2025980000E-03,0.0,lc};
> Point(0032) = {  4.8685500000E-01,  2.0433280000E-03,0.0,lc};
> Point(0033) = {  4.8692480000E-01,  4.4479691000E-03,0.0,lc};
> Point(0034) = {  4.8734270000E-01,  6.1229798000E-03,0.0,lc};
> Point(0035) = {  4.8809500000E-01,  7.6731378000E-03,0.0,lc};
> Point(0036) = {  4.8914450000E-01,  9.0511581000E-03,0.0,lc};
> Point(0037) = {  4.9046980000E-01,  1.0205040000E-02,0.0,lc};
> Point(0038) = {  4.9205120000E-01,  1.1097110000E-02,0.0,lc};
> Point(0039) = {  4.9387090000E-01,  1.1719210000E-02,0.0,lc};
> Point(0040) = {  4.9591960000E-01,  1.2085780000E-02,0.0,lc};
> Point(0041) = {  4.9819490000E-01,  1.2209040000E-02,0.0,lc};
> Point(0042) = {  5.0069320000E-01,  1.2095600000E-02,0.0,lc};
> Point(0043) = {  5.0340880000E-01,  1.1749860000E-02,0.0,lc};
> Point(0044) = {  5.0633450000E-01,  1.1179010000E-02,0.0,lc};
> Point(0045) = {  5.0946260000E-01,  1.0391300000E-02,0.0,lc};
> Point(0046) = {  5.1278280000E-01,  9.3934620000E-03,0.0,lc};
> Point(0047) = {  5.1628180000E-01,  8.1881043000E-03,0.0,lc};
> Point(0048) = {  5.1994300000E-01,  6.7752819000E-03,0.0,lc};
> Point(0049) = {  5.2374910000E-01,  5.1563731000E-03,0.0,lc};
> Point(0050) = {  5.2910370000E-01,  2.6808891000E-03,0.0,lc};
> Point(0051) = {  5.3603890000E-01, -8.8738301000E-04,0.0,lc};
> Point(0052) = {  5.4452280000E-01, -5.7657370000E-03,0.0,lc};
> Point(0053) = {  5.5318890000E-01, -1.1247710000E-02,0.0,lc};
> Point(0054) = {  5.6190470000E-01, -1.7231589000E-02,0.0,lc};
> Point(0055) = {  5.7049000000E-01, -2.3664590000E-02,0.0,lc};
> Point(0056) = {  5.7886520000E-01, -3.0334080000E-02,0.0,lc};
> Point(0057) = {  5.8705600000E-01, -3.6918320000E-02,0.0,lc};
> Point(0058) = {  5.9483510000E-01, -4.3422859000E-02,0.0,lc};
> Point(0059) = {  6.0207450000E-01, -4.9742829000E-02,0.0,lc};
> Point(0060) = {  6.0866890000E-01, -5.5757321000E-02,0.0,lc};
> Point(0061) = {  6.1451190000E-01, -6.1353002000E-02,0.0,lc};
> Point(0062) = {  6.1953920000E-01, -6.6378467000E-02,0.0,lc};
> Point(0063) = {  6.2376640000E-01, -7.0627727000E-02,0.0,lc};
> Point(0064) = {  6.2713700000E-01, -7.4008450000E-02,0.0,lc};
> Point(0065) = {  6.2936920000E-01, -7.6256789000E-02,0.0,lc};
> Point(0066) = {  6.3065950000E-01, -7.7554747000E-02,0.0,lc};
> Point(0067) = {  6.3130930000E-01, -7.8208350000E-02,0.0,lc};
> Point(0068) = {  6.3167450000E-01, -7.8574881000E-02,0.0,lc};
> Point(0069) = {  6.3185600000E-01, -7.8756988000E-02,0.0,lc};
> Point(0070) = {  6.3185600000E-01, -7.8756988000E-02,0.0,lc};
> Point(0071) = {  6.3022370000E-01, -8.1584141000E-02,0.0,lc};
> Point(0072) = {  4.8833160000E-01,  1.7120181000E-02,0.0,lc};
> Point(0073) = {  4.8844540000E-01,  1.7293179000E-02,0.0,lc};
> Point(0074) = {  1.0386140000E-02,  3.0789529000E-03,0.0,lc};
> Point(0075) = {  1.0512150000E-02,  2.8606991000E-03,0.0,lc};
> Point(0076) = { -1.4626160000E-02, -6.0385160000E-02,0.0,lc};
> Point(0077) = { -1.4775640000E-02, -6.0126260000E-02,0.0,lc};
> Point(0078) = {  3.9116000000E-01, -9.6247708000E-03,0.0,lc};
> Point(0079) = {  3.9116000000E-01,  1.7938601000E-02,0.0,lc};
> Point(0080) = {  4.8833160000E-01,  1.7120181000E-02,0.0,lc};
> Point(0081) = {  4.8388170000E-01,  1.7411759000E-02,0.0,lc};
> Point(0082) = {  4.5154760000E-01,  1.9530410000E-02,0.0,lc};
> Point(0083) = {  4.1912260000E-01,  1.8675691000E-02,0.0,lc};
> Point(0084) = {  3.9116000000E-01,  1.7938601000E-02,0.0,lc};
> Point(0085) = {  4.8844540000E-01,  1.7293179000E-02,0.0,lc};
> Point(0086) = {  4.8396130000E-01,  1.8100230000E-02,0.0,lc};
> Point(0087) = {  4.7484410000E-01,  1.9741140000E-02,0.0,lc};
> Point(0088) = {  4.6102150000E-01,  2.1713721000E-02,0.0,lc};
> Point(0089) = {  4.4705220000E-01,  2.3591220000E-02,0.0,lc};
> Point(0090) = {  4.3307940000E-01,  2.5259860000E-02,0.0,lc};
> Point(0091) = {  4.1910810000E-01,  2.6765160000E-02,0.0,lc};
> Point(0092) = {  4.0949370000E-01,  2.7690191000E-02,0.0,lc};
> Point(0093) = {  4.0017990000E-01,  2.8533690000E-02,0.0,lc};
> Point(0094) = {  3.9366170000E-01,  2.9094400000E-02,0.0,lc};
> Point(0095) = {  3.8082650000E-01,  3.0088371000E-02,0.0,lc};
> Point(0096) = {  3.7151100000E-01,  3.0723009000E-02,0.0,lc};
> Point(0097) = {  3.5928150000E-01,  3.1530049000E-02,0.0,lc};
> Point(0098) = {  3.4217980000E-01,  3.2471739000E-02,0.0,lc};
> Point(0099) = {  3.1424260000E-01,  3.3694059000E-02,0.0,lc};
> Point(0100) = {  2.8522550000E-01,  3.4376182000E-02,0.0,lc};
> Point(0101) = {  2.5609920000E-01,  3.4661200000E-02,0.0,lc};
> Point(0102) = {  2.2731500000E-01,  3.4539610000E-02,0.0,lc};
> Point(0103) = {  1.9887730000E-01,  3.3909749000E-02,0.0,lc};
> Point(0104) = {  1.7653890000E-01,  3.3094611000E-02,0.0,lc};
> Point(0105) = {  1.6044950000E-01,  3.2393660000E-02,0.0,lc};
> Point(0106) = {  1.4025500000E-01,  3.1251639000E-02,0.0,lc};
> Point(0107) = {  1.1955640000E-01,  2.9856380000E-02,0.0,lc};
> Point(0108) = {  1.0149000000E-01,  2.8209779000E-02,0.0,lc};
> Point(0109) = {  9.0858869000E-02,  2.7204530000E-02,0.0,lc};
> Point(0110) = {  8.4241979000E-02,  2.6325719000E-02,0.0,lc};
> Point(0111) = {  7.8328729000E-02,  2.4983490000E-02,0.0,lc};
> Point(0112) = {  7.2744399000E-02,  2.3584159000E-02,0.0,lc};
> Point(0113) = {  6.7347713000E-02,  2.2060510000E-02,0.0,lc};
> Point(0114) = {  6.2001761000E-02,  2.0368150000E-02,0.0,lc};
> Point(0115) = {  5.6718390000E-02,  1.8488539000E-02,0.0,lc};
> Point(0116) = {  5.1514812000E-02,  1.6397400000E-02,0.0,lc};
> Point(0117) = {  4.6415601000E-02,  1.4062260000E-02,0.0,lc};
> Point(0118) = {  4.1628521000E-02,  1.1529060000E-02,0.0,lc};
> Point(0119) = {  3.6862899000E-02,  8.5701980000E-03,0.0,lc};
> Point(0120) = {  3.2387119000E-02,  5.1794732000E-03,0.0,lc};
> Point(0121) = {  2.8293161000E-02,  1.0372200000E-03,0.0,lc};
> Point(0122) = {  2.5282390000E-02, -3.7140290000E-03,0.0,lc};
> Point(0123) = {  2.4100279000E-02, -8.5415337000E-03,0.0,lc};
> Point(0124) = {  2.5146451000E-02, -1.2823780000E-02,0.0,lc};
> Point(0125) = {  2.7188540000E-02, -1.5388710000E-02,0.0,lc};
> Point(0126) = {  2.9439630000E-02, -1.6795430000E-02,0.0,lc};
> Point(0127) = {  3.1419169000E-02, -1.7260760000E-02,0.0,lc};
> Point(0128) = {  3.4586959000E-02, -1.7888030000E-02,0.0,lc};
> Point(0129) = {  3.9152302000E-02, -1.8768650000E-02,0.0,lc};
> Point(0130) = {  4.4752229000E-02, -1.9728441000E-02,0.0,lc};
> Point(0131) = {  5.1230580000E-02, -2.0767249000E-02,0.0,lc};
> Point(0132) = {  5.8274820000E-02, -2.1757510000E-02,0.0,lc};
> Point(0133) = {  7.0853733000E-02, -2.3598161000E-02,0.0,lc};
> Point(0134) = {  8.9728668000E-02, -2.5450230000E-02,0.0,lc};
> Point(0135) = {  1.1600730000E-01, -2.7730521000E-02,0.0,lc};
> Point(0136) = {  1.4548800000E-01, -2.9404420000E-02,0.0,lc};
> Point(0137) = {  1.7146190000E-01, -3.0245589000E-02,0.0,lc};
> Point(0138) = {  1.9888260000E-01, -3.0591240000E-02,0.0,lc};
> Point(0139) = {  2.2733860000E-01, -3.0286130000E-02,0.0,lc};
> Point(0140) = {  2.5612790000E-01, -2.8877219000E-02,0.0,lc};
> Point(0141) = {  2.8526860000E-01, -2.6476020000E-02,0.0,lc};
> Point(0142) = {  3.1432900000E-01, -2.3053849000E-02,0.0,lc};
> Point(0143) = {  3.4222040000E-01, -1.8602150000E-02,0.0,lc};
> Point(0144) = {  3.5927750000E-01, -1.5494630000E-02,0.0,lc};
> Point(0145) = {  3.6965410000E-01, -1.3658280000E-02,0.0,lc};
> Point(0146) = {  3.7895820000E-01, -1.1882770000E-02,0.0,lc};
> Point(0147) = {  3.8743410000E-01, -1.0314260000E-02,0.0,lc};
> Point(0148) = {  3.9116000000E-01, -9.6247708000E-03,0.0,lc};
> Point(0149) = { -1.4775640000E-02, -6.0126260000E-02,0.0,lc};
> Point(0150) = { -1.5195580000E-02, -6.0214560000E-02,0.0,lc};
> Point(0151) = { -1.6452629000E-02, -6.0478881000E-02,0.0,lc};
> Point(0152) = { -1.9443760000E-02, -5.9916630000E-02,0.0,lc};
> Point(0153) = { -2.3005599000E-02, -5.7234019000E-02,0.0,lc};
> Point(0154) = { -2.4391869000E-02, -5.2314710000E-02,0.0,lc};
> Point(0155) = { -2.4403060000E-02, -4.7448918000E-02,0.0,lc};
> Point(0156) = { -2.3469901000E-02, -4.2648450000E-02,0.0,lc};
> Point(0157) = { -2.2098940000E-02, -3.8474269000E-02,0.0,lc};
> Point(0158) = { -2.0525491000E-02, -3.4732431000E-02,0.0,lc};
> Point(0159) = { -1.8731659000E-02, -3.1090889000E-02,0.0,lc};
> Point(0160) = { -1.6480589000E-02, -2.7148550000E-02,0.0,lc};
> Point(0161) = { -1.3824230000E-02, -2.3065330000E-02,0.0,lc};
> Point(0162) = { -1.0961210000E-02, -1.9124709000E-02,0.0,lc};
> Point(0163) = { -7.9165837000E-03, -1.5323080000E-02,0.0,lc};
> Point(0164) = { -4.7042752000E-03, -1.1662200000E-02,0.0,lc};
> Point(0165) = { -1.3420070000E-03, -8.1379479000E-03,0.0,lc};
> Point(0166) = {  1.7865821000E-03, -5.1538981000E-03,0.0,lc};
> Point(0167) = {  4.5734858000E-03, -2.6068389000E-03,0.0,lc};
> Point(0168) = {  6.9478708000E-03, -4.1887601000E-04,0.0,lc};
> Point(0169) = {  8.9278221000E-03,  1.4032590000E-03,0.0,lc};
> Point(0170) = {  1.0116010000E-02,  2.4962840000E-03,0.0,lc};
> Point(0171) = {  1.0512150000E-02,  2.8606991000E-03,0.0,lc};
> Point(0172) = {  1.0386140000E-02,  3.0789529000E-03,0.0,lc};
> Point(0173) = {  8.9908708000E-03,  2.0372320000E-03,0.0,lc};
> Point(0174) = {  4.4687148000E-03, -1.3390620000E-03,0.0,lc};
> Point(0175) = { -2.8891179000E-03, -6.9776969000E-03,0.0,lc};
> Point(0176) = { -1.3774860000E-02, -1.5624590000E-02,0.0,lc};
> Point(0177) = { -2.5343090000E-02, -2.5399230000E-02,0.0,lc};
> Point(0178) = { -3.5204262000E-02, -3.4825198000E-02,0.0,lc};
> Point(0179) = { -4.1126668000E-02, -4.1674010000E-02,0.0,lc};
> Point(0180) = { -4.4285391000E-02, -4.6083391000E-02,0.0,lc};
> Point(0181) = { -4.6472210000E-02, -5.0118070000E-02,0.0,lc};
> Point(0182) = { -4.7645941000E-02, -5.3798709000E-02,0.0,lc};
> Point(0183) = { -4.7800250000E-02, -5.7136022000E-02,0.0,lc};
> Point(0184) = { -4.6835870000E-02, -6.0027879000E-02,0.0,lc};
> Point(0185) = { -4.4824552000E-02, -6.2294699000E-02,0.0,lc};
> Point(0186) = { -4.1883379000E-02, -6.3763000000E-02,0.0,lc};
> Point(0187) = { -3.8153801000E-02, -6.4527400000E-02,0.0,lc};
> Point(0188) = { -3.3616859000E-02, -6.4549699000E-02,0.0,lc};
> Point(0189) = { -2.8288800000E-02, -6.3898399000E-02,0.0,lc};
> Point(0190) = { -2.1844110000E-02, -6.2509663000E-02,0.0,lc};
> Point(0191) = { -1.7234450000E-02, -6.1152872000E-02,0.0,lc};
> Point(0192) = { -1.4626160000E-02, -6.0385160000E-02,0.0,lc};
> BSpline (511) = {008,009,010,011,012,013,
> 014,015,016,017,018,019,020,021,
> 022,023,024,025,026,027,028,029,
> 030,031,032,033,034,035,036,037,
> 038,039,040,041,042,043,044,045,
> 046,047,048,049,050,051,052,053,
> 054,055,056,057,058,059,060,061,
> 062,063,064,065,066,067,068,069};
> // Line (512) = {070,071};
> Line (512) = {069,008};
> Line (513) = {080,085};
> Line (514) = {171,172};
> Line (515) = {192,149};
> Line (516) = {148,084};
> Line (517) = {080,081,082,083,084};
> BSpline (518) = {085,086,087,088,089,090,091,092,
> 093,094,095,096,097,098,099,100,
> 101,102,103,104,105,106,107,108,
> 109,110,111,112,113,114,115,116,
> 117,118,119,120,121,122,123,124,
> 125,126,127,128,129,130,131,132,
> 133,134,135,136,137,138,139,140,
> 141,142,143,144,145,146,147,148};
> BSpline (519) = {149,150,151,152,153,154,155,
> 156,157,158,159,160,161,162,163,
> 164,165,166,167,168,169,170,171};
> BSpline (520) = {172,173,174,175,176,
> 177,178,179,180,181,182,183,184,
> 185,186,187,188,189,190,191,192};
>  // COM
> Line Loop(02) = {511,512};
> Line Loop(03) = {516,-517,513,518};
> Line Loop(04) = {515,519,514,520};
> // 
> // Plane Surface
> // 
> Plane Surface(   1) = {-01,-02,-03,-04};
> _______________________________________________
> gmsh mailing list
> gmsh at geuz.org
> http://www.geuz.org/mailman/listinfo/gmsh

-- 
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science 
http://www.montefiore.ulg.ac.be/~geuzaine