|
[Sponsors] |
June 28, 2017, 17:49 |
Salome cgns format mesh to SU2
|
#1 |
Member
João Lourenço
Join Date: Jan 2017
Posts: 32
Rep Power: 9 |
Hey everyone!
I'm trying to create a mesh around a 2D airfoil in Salome to export in .cgns format. I want to run the mesh file in SU2 but I'm with some problems. I have a configure file in SU2 which I change the mesh format from su2 native format to cgns format since Salome don't export in su2 native format. My problem is when I export the mesh from Salome in cgns format, the name of the boundaries, who I define in Salome, change. I run the SU2 program and I have an error message saying the name is not define in the cgns mesh file. But I define the name that I want for the boundaries in Salome. The name of the boundaries need to be define in Salome, right? Have anyone try to generate a mesh in SALOME, 2D or 3D, export in cgns format and run in SU2, without problems? Is this possible? Thanks for your attention. JLourenco Last edited by JPBLourenco; June 30, 2017 at 05:23. |
|
July 1, 2017, 09:16 |
|
#2 |
Member
Ole Burghardt
Join Date: Mar 2016
Location: Kiel, Germany
Posts: 60
Rep Power: 10 |
Hi,
yes, it is. My guess is that you didn't really create boundary element groups in your mesh (but just gave some geometry parts a name, for example) so that they are simply not contained in the CGNS-file. If that is not the case and the problem arises somewhere else, here is a link to a powerful python-Plugin for SALOME which contains the function "ExportSU2File" to export your mesh directly to a .su2-file: http://tougeron-cfd.com/downloads/cfdmsh/4.0/ Hope this helps. Regards, Ole |
|
October 24, 2018, 03:52 |
|
#3 | |
New Member
Mattia
Join Date: May 2018
Location: Novara - Italy
Posts: 29
Rep Power: 8 |
Quote:
I was interested in cfdmsh plugin but the link is broken as the server ain't reachable. Does anybody know if there is a mirror anyware? -time |
||
December 19, 2018, 22:29 |
|
#4 |
Member
benoit paillard
Join Date: Mar 2010
Posts: 96
Rep Power: 16 |
Hi all,
I was also quite sad to see that William Tougeron stopped his activity. I kept a copy of cfdmsh plugin though, it is attached. Thumbs up to William, his tool is pretty good indeed ! |
|
January 30, 2019, 10:21 |
|
#5 | |
New Member
Will
Join Date: Jun 2013
Posts: 17
Rep Power: 13 |
Quote:
Hi, I am new to Salome. Do you mind explaining how to activate this plugin? I've tried putting it in the plugin folder but then nothing happens after I start Salome up. Thank you. Will |
||
January 30, 2019, 11:28 |
|
#6 |
New Member
Mattia
Join Date: May 2018
Location: Novara - Italy
Posts: 29
Rep Power: 8 |
Hi Will,
in order to activate/use a python script in Salome you need to read the .py file using CTRL+T (or menu File >> Load Script) and select the script file (put it into a easy to reach directory). At that point from the python console you can call the functions. I didn't try cfdmsh as I moved from SU2 to OF for now so I can't tell what you need to do exactly but I think you should call: Code:
ExportSU2File() If you get any errors try to post them. I don't think this script is compatible with latest Salome (9.2) as now Salome is single study and has moved to python 3.6 so this should be ported in order to work. Bye |
|
January 30, 2019, 14:25 |
|
#7 |
New Member
Will
Join Date: Jun 2013
Posts: 17
Rep Power: 13 |
Hi Mattia,
Thanks for the reply. It indeed is having errors. Code:
Traceback (most recent call last): File "input", line 1, in <module> File "string", line 542 print "[X] The object", object, "doesn't exist in the study tree." ^ SyntaxError: Missing parentheses in call to 'print'. Did you mean print("[X] The object", object, "doesn't exist in the study tree.")? In case the plugin doesn't work out, do you mind sharing how to assign boundaries on 2D meshes for SU2 in Salome? I tried adding the boundaries to groups of edges and then export to a cgns file but it doesn't seem to carry the boundary names over. All SU2 can see is one random boundary name. I would love to staying in OpenFOAM world but this shape optimization function in SU2 looks very interesting. :P Any help is much appreciated. Will |
|
January 31, 2019, 10:13 |
|
#8 |
New Member
Mattia
Join Date: May 2018
Location: Novara - Italy
Posts: 29
Rep Power: 8 |
Hi Will,
which version of Salome are you using? I just called the function and it works flawlessly on Salome 8.3.0 on Windows 10. I didn't try on 9.2 yet but I'll let you know. Anyways I think the error you are getting is because you didn't select the mesh prior to method calling. Just select your mesh with already created groups (same as exporting in other formats) and while it's selected in the object browser you call ExportSU2File() in the python console and you should find the exported .su2 file in the WORK directory. It worked for both 2D and 3D meshes. Let me know how it goes. Bye |
|
January 31, 2019, 10:39 |
|
#9 |
New Member
Will
Join Date: Jun 2013
Posts: 17
Rep Power: 13 |
Mattia,
I am using version 9.2 on Ubuntu 16.04. I can export 2D meshes to OpenFOAM with Salome with no problem. But OpenFOAM is not really 2D so it doesn't really mean anything I guess. So to clarify the steps, what I am doing now is start up Salome -> load my already meshed file -> select the mesh with groups created -> select "load script" under file -> error pops up. Did I do something wrong? I am going to try it with 8.3.0 on Windows 7 now. Will update when I finish trying. |
|
January 31, 2019, 11:34 |
|
#10 |
New Member
Mattia
Join Date: May 2018
Location: Novara - Italy
Posts: 29
Rep Power: 8 |
Hi Will,
I just tried with Salome 9.2 and the script fails. The problem is the python version used in newest Salome (python 3) while the script (and previous Salome releases) uses python 2. It's not a big deal. You can stick to Ubuntu and install Salome 8.5.0. You can do your work on 9.2, export the mesh in MED format, import it in 8.5 and export su2 file. Or you could just stick to 8.5 Or you could port python2 script to python3. This specific error is easy to fix, just change: Code:
print " bla bla bla" Code:
print("bla bla bla") Bye |
|
January 31, 2019, 11:48 |
|
#11 |
New Member
Will
Join Date: Jun 2013
Posts: 17
Rep Power: 13 |
It worked with 8.3.0 on Windows 7. I am not sure why it doesn't work with 9.2 on Ubuntu 16.04. I will do more testings and see which versions support it and what not.
Thanks for the help. Edit: Didn't see your post before I posted mine. Sounds good I will do that. Thanks again. That was really helpful. Will |
|
January 31, 2019, 11:57 |
|
#12 |
New Member
Mattia
Join Date: May 2018
Location: Novara - Italy
Posts: 29
Rep Power: 8 |
Using 2to3 python script it fixed syntax error but the function won't work.
There are some breaking changes between 8.x and 9.x Salome python interfaces and you should ask in Salome forum for script porting support. If you are lucky you'll find some help Unfortunately documentation ain't that explicit |
|
January 31, 2019, 12:27 |
|
#13 |
New Member
Will
Join Date: Jun 2013
Posts: 17
Rep Power: 13 |
I see. I am happy with just using 8.3 for now.
I wish I know how to export the correct .cgns that SU2 recognizes. The .su2 mesh exported from the script is giving me error when I run SU2. I'll try meshing something super simple and test it again. Are the meshes exported with the script running fine for you on SU2? |
|
January 31, 2019, 12:41 |
|
#14 |
New Member
Mattia
Join Date: May 2018
Location: Novara - Italy
Posts: 29
Rep Power: 8 |
I can't tell as I don't have a working SU2 environment anymore. I'll try when I get some time but I can't promise anything.
Can you post the error? |
|
January 31, 2019, 12:53 |
|
#15 |
New Member
Will
Join Date: Jun 2013
Posts: 17
Rep Power: 13 |
Yeah.
Code:
---------------------- Read Grid File Information ----------------------- terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc [#:07660] *** Process received signal *** [#:07660] Signal: Aborted (6) [#:07660] Signal code: (-6) [#:07660] [ 0] /lib/x86_64-linux-gnu/libpthread.so.0(+0x10330) [0x7f64aac1f330] [#:07660] [ 1] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x37) [0x7f64aa880c37] [#:07660] [ 2] /lib/x86_64-linux-gnu/libc.so.6(abort+0x148) [0x7f64aa884028] [#:07660] [ 3] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(_ZN9__gnu_cxx27__verbose_terminate_handlerEv+0x155) [0x7f64ab3a9535] [#:07660] [ 4] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x5e6d6) [0x7f64ab3a76d6] [#:07660] [ 5] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x5e703) [0x7f64ab3a7703] [#:07660] [ 6] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0x5e922) [0x7f64ab3a7922] [#:07660] [ 7] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(_Znwm+0x7d) [0x7f64ab3a7e0d] [#:07660] [ 8] /usr/lib/x86_64-linux-gnu/libstdc++.so.6(_Znam+0x9) [0x7f64ab3a7ea9] [#:07660] [ 9] SU2_CFD() [0xac74fa] [#:07660] [10] SU2_CFD() [0xacf200] [#:07660] [11] SU2_CFD() [0x83472e] [#:07660] [12] SU2_CFD() [0x835c03] [#:07660] [13] SU2_CFD() [0x40e4f3] [#:07660] [14] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f64aa86bf45] [skynet:07660] [15] SU2_CFD() [0x7f4a9f] [skynet:07660] *** End of error message *** Aborted (core dumped) |
|
January 31, 2019, 15:05 |
|
#16 |
New Member
Will
Join Date: Jun 2013
Posts: 17
Rep Power: 13 |
I think I found a quick solution. The exported .su2 meshes by the script outputs values in .su2 files like
NDIME = 2 NELEM = 2 and so on, for some reason SU2 does not like the extra space before the equal sign. So just replace all the " =" with "=" and you should be good to go. At least that got my test case running. Big thanks to Mattia for the help. Will |
|
November 14, 2019, 04:07 |
|
#17 |
Member
Giovanni Medici
Join Date: Mar 2014
Posts: 48
Rep Power: 12 |
I'm sorry to re-open an old thread, but I was wondering whether any of you is actually able to output a CGNS mesh from Salome, that can be given as input to SU2.
I'm currently trying with a simple 2-D mesh. In Salome, Mesh Module I've grouped the edges (Create Group ... --> Group on Geometry ) so to add them to the CGNS. I've performed some tests (with the cgnstools, i.e. cgnslist, cgnsconvert) and as far as I can tell, Salome writes the CGNS in hdf5 binary format (while SU2 6.0 is expecting it in ADF format, but I can convert it with ease). Moreover Salome adds the type of element (namely BAR_2 and TRIA_3 ) which apparently are not interpreted as desired by SU2. Is there a way to ignore the BAR_2 and TRIA_3 Marker so that the real BC can be read? Thanks cgnslist console: Code:
ADF MotherNode +-CGNSLibraryVersion +-domain +-SMESH_Mesh +-ZoneType +-GridCoordinates | +-CoordinateX | +-CoordinateY | +-CoordinateZ +-BAR_2 1 - 484 | +-ElementRange | +-ElementConnectivity +-TRI_3 485 - 33682 | +-ElementRange | +-ElementConnectivity +-ZoneBC +-Top | +-PointList | +-GridLocation +-Outlet | +-PointList | +-GridLocation +-Inlet | +-PointList | +-GridLocation +-Btm | +-PointList | +-GridLocation +-Wall +-PointList +-GridLocation SU2 console Code:
---------------------- Read Grid File Information ----------------------- Reading the CGNS file: testWedge_ADF6.cgns. CGNS file contains 1 database(s). Database 1, domain: 1 zone(s), cell dimension of 2, physical dimension of 3. Zone 1, SMESH_Mesh: 16842 vertices, 33198 cells, 0 boundary vertices. Reading grid coordinates. Number of coordinate dimensions is 3. Loading CoordinateX values. Loading CoordinateY values. Loading CoordinateZ values. Number of connectivity sections is 2. Loading section BAR_2 1 - 484 of element type Line. Loading section TRI_3 485 - 33682 of element type Triangle. Successfully closed the CGNS file. Loading CGNS data into SU2 data structures. Two dimensional problem. 33198 interior elements. 16842 grid points. 1 surface markers. 484 boundary elements in index 0 (Marker = BAR_21-484). I also tried to use cfdmsh python script (and changed all the prints lines to the 3xx format), but I can not run it successfully. Nevertheless I would prefer binary meshes files so to limit the file size for big meshes. |
|
November 14, 2019, 07:51 |
|
#18 |
New Member
Mattia
Join Date: May 2018
Location: Novara - Italy
Posts: 29
Rep Power: 8 |
Hi Giovanni,
have you tried with standard CGNS tool "hdf2adf"? Regarding cfdmsh script, beside converting print statements into function calls you need to convert a couple of calls: Code:
geompy = geomBuilder.New(salome.myStudy) Code:
geompy = geomBuilder.New() |
|
November 14, 2019, 10:07 |
|
#19 |
Member
Giovanni Medici
Join Date: Mar 2014
Posts: 48
Rep Power: 12 |
Hi Mattia,
Thanks for the very quick reply, as far as I can tell, hdf2adf directly calls cgnsconvert.exe, so unfortunately it doesn't work. Moreover I've changed the lines in the cfdmsh script, as well as: Code:
smesh = smeshBuilder.New(salome.myStudy) into smesh = smeshBuilder.New() Code:
ExportSU2File("domain","exportedMesh") or ExportSU2File() [X] The input object is not a mesh or the Mesh module was not yet loaded. Do you know whether there is a salome tutorial file that can be used as starting point just to be sure that the hdf I've created is formatted correctly? I tried, without luck, unfortunately, to put the BAR_2 field in the interior, with the command: Code:
% Internal boundary marker(s) e.g. no boundary condition (NONE = no marker) MARKER_INTERNAL= ( BAR_21-484 ) Last edited by giovanni.medici; November 15, 2019 at 03:15. Reason: Updated strategy |
|
November 18, 2019, 03:11 |
|
#20 |
Member
Giovanni Medici
Join Date: Mar 2014
Posts: 48
Rep Power: 12 |
I've updated the cfdmsh.py script, so to use ExportSU2File with SALOME 9.3.0. I've tested it under Windows10, and SU2 6.0.0, with a 2D mesh.
The script contains a huge amount of functions, which have not been tested, and are very likely to fail (in SALOME 9.3.0), due to changes in the SALOME dictionary. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
sliding mesh problem in CFX | Saima | CFX | 46 | September 11, 2021 08:38 |
Gambit problems | Althea | FLUENT | 22 | January 4, 2017 04:19 |
CGNS mesh format | B_Ouissem | SU2 | 2 | August 20, 2015 15:10 |
Moving mesh | Niklas Wikstrom (Wikstrom) | OpenFOAM Running, Solving & CFD | 122 | June 15, 2014 07:20 |
[Commercial meshers] Mesh conversion from Tecplot format - help | atmcfd | OpenFOAM Meshing & Mesh Conversion | 11 | February 22, 2014 07:34 |