|
[Sponsors] |
May 14, 2014, 20:48 |
gmshToFoam--I'm doing it wrong
|
#1 |
New Member
Join Date: Oct 2011
Location: Sydney, NSW
Posts: 21
Rep Power: 15 |
Thought I had it, but it seems not.
I've built a simply illustrative example here to demonstrate my problem. Basically, I want to make a mesh with internal baffles (zero thickness) so that I can simulate interactions between different materials. Here, I've made a simple 2-D mesh with two regions "air" and "water" (they don't mean anything, just an illustration). Code:
Point(1) = {0, 0, -0.05, 1}; Point(2) = {1, 0, -0.05, 1}; Point(3) = {1, 1, -0.05, 1}; Point(4) = {0, 1, -0.05, 1}; Line(1) = {1, 2}; Line(2) = {2, 3}; Line(3) = {3, 4}; Line(4) = {4, 1}; Line(5) = {1, 3}; //Water Line Loop(20) = {1, 2, -5}; //Air Line Loop(21) = {5, 3, 4}; Plane Surface(20) = {20}; Plane Surface(21) = {21}; Physical Volume("water") = {1}; Extrude {0, 0, 0.1} { Surface{20}; Layers{1}; Recombine; } Physical Volume("air") = {2}; Extrude {0, 0, 0.1} { Surface{21}; Layers{1}; Recombine; } // Name and define surface patches Physical Surface("frontAndBackWater") = {38, 20}; Physical Surface("frontAndBackAir") = {55, 21}; Physical Surface("airWalls") = {50, 54, 37}; Physical Surface("waterWalls") = {29, 33, 37}; } Code:
$ gmsh -3 sample.geo Code:
$ gmshToFoam sample.msh /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : 2.3.0-f5222ca19ce6 Exec : gmshToFoam sample.msh Date : May 15 2014 Time : 09:36:23 Host : "wood" PID : 28749 Case : /xxx/sample nProcs : 1 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster allowSystemOperations : Disallowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Starting to read mesh format at line 2 Read format version 2.2 ascii 0 Starting to read physical names at line 5 Physical names:6 Surface 3 frontAndBackWater Surface 4 frontAndBackAir Surface 5 airWalls Surface 6 waterWalls Volume 1 water Volume 2 air Starting to read points at line 14 Vertices to be read:10 Vertices read:10 Starting to read cells at line 27 Cells to be read:20 Mapping region 3 to Foam patch 0 Mapping region 4 to Foam patch 1 Mapping region 6 to Foam patch 2 Mapping region 5 to Foam patch 3 Mapping region 1 to Foam cellZone 0 Mapping region 2 to Foam cellZone 1 Cells: total:4 hex :0 prism:4 pyr :0 tet :0 CellZones: Zone Size 0 2 1 2 Skipping tag at line 50 Patch 0 gets name frontAndBackWater Patch 1 gets name frontAndBackAir Patch 2 gets name waterWalls Patch 3 gets name airWalls --> FOAM Warning : From function polyMesh::polyMesh(... construct from shapes...) in file meshes/polyMesh/polyMeshFromShapeMesh.C at line 627 Found 12 undefined faces in mesh; adding to default patch. Finding faces of patch 0 Finding faces of patch 1 Finding faces of patch 2 Finding faces of patch 3 FaceZones: Zone Size 2 2 3 2 Writing zone 0 to cellZone water and cellSet Writing zone 1 to cellZone air and cellSet Writing zone 2 to faceZone waterWalls and faceSet Writing zone 3 to faceZone airWalls and faceSet End Moving on to problem number two, I want to carve up the mesh and get my internal baffle back. I'll use topoSet for this, here is my system/topoSetDict file: Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object topoSetDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // actions ( // water { name water; type cellSet; action new; source cellToCell; sourceInfo { set water; } } { name water; type cellZoneSet; action new; source setToCellZone; sourceInfo { set water; } } // air { name air; type cellSet; action new; source cellToCell; sourceInfo { set air; } } { name air; type cellZoneSet; action new; source setToCellZone; sourceInfo { set air; } } ); // ************************************************************************* // Code:
$ topoSet /*---------------------------------------------------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.3.0 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ Build : 2.3.0-f5222ca19ce6 Exec : topoSet Date : May 15 2014 Time : 09:43:07 Host : "wood" PID : 28762 Case : /xxx/sample nProcs : 1 sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE). fileModificationChecking : Monitoring run-time modified files using timeStampMaster allowSystemOperations : Disallowing user-supplied system call operations // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create polyMesh for time = 0 Reading topoSetDict Time = 0 mesh not changed. Created cellSet water Applying source cellToCell Adding all elements of cellSet water ... cellSet water now size 2 Created cellZoneSet water Applying source setToCellZone Adding all cells from cellSet water ... cellZoneSet water now size 2 Created cellSet air Applying source cellToCell Adding all elements of cellSet air ... cellSet air now size 2 Created cellZoneSet air Applying source setToCellZone Adding all cells from cellSet air ... cellZoneSet air now size 2 End Code:
waterWalls { type patch; physicalType patch; nFaces 2; startFace 12; } Thus, I guess I need to figure out how I've messed this up? Clearly I've missed something, any help would be greatly appreciated. |
|
May 15, 2014, 04:04 |
|
#2 |
Senior Member
|
Hi,
There's no need to worry about defaultFaces, as gmshToFoam first add all boundary faces to this patch and then look for the faces of the physical surfaces defined in msh file, adding them to corresponding patches, and finally if defaultFaces is empty (gmshToFoam found all faces of physical surfaces), it deletes defaultFaces patch from the mesh. Boundary waterWalls has 2 faces in the very beginning (just after gmshToFoam). Code:
waterWalls { type patch; physicalType patch; nFaces 2; startFace 12; } |
|
May 15, 2014, 04:36 |
|
#3 |
New Member
Join Date: Oct 2011
Location: Sydney, NSW
Posts: 21
Rep Power: 15 |
Thanks for clearing up that warning, that makes perfect sense and also explains why it doesn't seem to lead to anything in the final output!
As for my other problem, I see that I have been basically attempting to do two very different things and getting the terminology mixed up. Creating a baffle will require createBaffles and an associated dictionary file (finding this page has helped a lot in figuring out how that works--it's surprisingly simple!). What I'm trying to do above, however, is create a patch that is shared by two regions, which I've also figured out how to do. I'll call it an interface, and have modified my sample.geo file as: Code:
Physical Surface("frontAndBackWater") = {38, 20}; Physical Surface("frontAndBackAir") = {55, 21}; Physical Surface("airWalls") = {50, 54}; Physical Surface("waterWalls") = {29, 33}; Physical Surface("interfaceWall") = {37}; Code:
// interface { name interfaceWall; type faceSet; action new; source faceToFace; sourceInfo { set interfaceWall; } } { name interfaceWall; type faceZoneSet; action new; source setToFaceZone; sourceInfo { faceSet interfaceWall; } } Thanks for the help! |
|
May 15, 2014, 04:50 |
|
#4 |
Senior Member
|
You can use changeDictionary utility to modify boundary file, if you'd like to get rid of manual editing.
|
|
May 15, 2014, 04:54 |
|
#5 |
New Member
Join Date: Oct 2011
Location: Sydney, NSW
Posts: 21
Rep Power: 15 |
Thanks, I'll do that!
On an only nominally related topic, I'm wondering if you know where there might be a resource such as the one I linked above for the thermophysicalProperties dictionary? I know this is covered in chapter 7 of the manual, but what I'm looking for is a list of valid keywords, like what is done in the linked resource. |
|
May 15, 2014, 05:22 |
|
#6 | |
Senior Member
|
Quote:
But it depends on the case you're running. There are incompressible solvers with buoyancy, there are compressible solvers. The first class of solvers defines one set of properties read from thermophysicalProperties (and these sets can change from solver to solver), the second class of solvers rely on thermophysicalModels framework. The easiest way to find all keywords is to check sources |
||
May 15, 2014, 05:25 |
|
#7 |
New Member
Join Date: Oct 2011
Location: Sydney, NSW
Posts: 21
Rep Power: 15 |
OK, sources it is then. I'll be sure to keep notes!
|
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[Gmsh] gmshToFoam error | afshinb | OpenFOAM Meshing & Mesh Conversion | 7 | July 23, 2024 13:42 |
[Gmsh] Boundary layer not created during gmshToFoam for Gmsh4.0 | hasankhan | OpenFOAM Meshing & Mesh Conversion | 1 | November 25, 2018 00:29 |
Something wrong running rhoSimpleFoam (urgent!) | PeterShi | OpenFOAM Running, Solving & CFD | 7 | March 1, 2017 10:21 |
[Gmsh] maximal number of patch in gmshToFoam | laurentD | OpenFOAM Meshing & Mesh Conversion | 0 | July 18, 2016 10:28 |
fully developed channel flow with kOmega, wrong results | boshynova | OpenFOAM Programming & Development | 1 | April 20, 2016 11:54 |