|
[Sponsors] |
September 23, 2021, 15:34 |
questions about porous zone multiregion case
|
#1 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 283
Rep Power: 6 |
Hi,
My case is the simulation of a car radiator, and with help I have completed the mesh setup. This consists of 2 regions, one for the fluid (air) and the other for the solid (the radiator) which will be the porous zone. Also for realism there is a fairing, as shown in the attached image. I want to run this first simply as 1.) an airflow through the radiator case, and then 2.) as a heat transfer case with a heated radiator. My question today concerns setting up 1.), the simple airflow case. Following blockMesh, I run splitMeshRegions -cellZones; this creates the two regions. Now, I need to use fvOptions to assign DarcyForchheimer coefficients to set the porous properties of the radiator. Here is where my knowledge gets a bit shaky: fvOptions needs to know a cellZone for the properties. The splitmesh function creates regions. So I used topoSet surfaceToCell to create a cellZone from the radiator stl file. However, I discovered that the surfaceToCell function does not actually split the cells at the radiator surface interface (see image of what it captures). So how to tell fvOptions which cellZone to use? The splitmesh function created a seemingly appropriate region (see the 3rd image showing the radiator), but do I need to convert this into a cellZone to feed into fvOptions? Is so, how do I do this? Do need to create fluid to solid interface faces? Attached is a zip file of my system folder, and it also includes the radiator stl file. When I get this resolved, I want to include the heat transfer element into the simulation, but that is part 2.) which is waiting in the wings. Thanks again for all your help! |
|
September 24, 2021, 00:00 |
|
#2 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 283
Rep Power: 6 |
Sorry if anyone spent time looking at my problem; I wasn't optimistic that I would find an answer, but I just discovered regionToCell as a topoSet option. So I'll give it a try. Hoping for success, touch wood, but I may come crawling back!
|
|
September 24, 2021, 18:04 |
problem with topoSet in creating cellZone
|
#3 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 283
Rep Power: 6 |
Well, I tried but there is a problem. After the initial commands in my radiator case, which create fluid and solid regions, I can't make topoSet create a cellZone for the solid region. I need this cellZone to feed into fvOptions so that the darcyForchheimer coefficients can be defined. Attached are images of my radiator and fairing, and zip files of the constant/triSurface and system folders.
This is my run command sequence: blockMesh surfaceFeatures snappyHexMesh -overwrite splitMeshRegions -cellZones -overwrite topoSet foamToVTK -cellSet porousZone I followed this example I found for the lines in topoSet: Code:
actions ( { name porousCells; type cellSet; action new; source regionToCell; sourceInfo { set solid; // line to indicate which region to use nErode 0; insidePoints ((2.1365 -0.2025 0.1097)); // centroid of the radiator } } { name porousZone; type cellZoneSet; action new; source setToCellZone; sourceInfo { set porousCells; } } ); Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create polyMesh for time = 0 Reading topoSetDict Time = 0 mesh not changed. Created cellSet porousCells Applying source regionToCell Adding all cells of connected region containing points 1((2.1365 -0.2025 0.1097)) ... Loading subset solid to delimit search region. --> FOAM FATAL ERROR: Cannot find directory "polyMesh/sets" in times "0" down to constant From function virtual Foam::IOobject Foam::fileOperation::findInstance(const Foam::IOobject&, Foam::scalar, const Foam::word&) const in file global/fileOperations/fileOperation/fileOperation.C at line 818. FOAM exiting Code:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Create time Create polyMesh for time = 0 Reading topoSetDict Time = 0 mesh not changed. Created cellSet porousCells Applying source regionToCell Adding all cells of connected region containing points 1((2.1365 -0.2025 0.1097)) ... Found location (2.1365 -0.2025 0.1097) in cell 37327 on processor 0 in global region 0 out of 1 regions. cellSet porousCells now size 338697 Created cellZoneSet porousZone Applying source setToCellZone Adding all cells from cellSet porousCells ... cellZoneSet porousZone now size 338697 End How do I edit topoSetDict to capture the solid region as a cellZone? |
|
September 25, 2021, 17:40 |
conflict between splitMeshRegions and checkMesh - or is it?
|
#4 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 283
Rep Power: 6 |
In the process of trying to figure out my problems with the radiator case, I noted the output messages after running splitMeshRegions -CellZones -overwrite, and checkMesh.
From splitMeshRegions, I get: Code:
Create time Create mesh for time = 0 Creating single patch per inter-region interface. Trying to match regions to existing cell zones. Number of regions:2 Writing region per cell file (for manual decomposition) to "constant/cellToRegion" Writing region per cell as volScalarField to "0/cellToRegion" Region Cells ------ ----- 0 325137 1 13560 Region Zone Name ------ ---- ---- 0 0 fluid 1 1 solid Code:
Create time Create polyMesh for time = 0 Time = 0 Mesh stats points: 372959 faces: 1049893 internal faces: 1013037 cells: 338697 faces per cell: 6.09078 boundary patches: 7 point zones: 0 face zones: 1 cell zones: 2 Overall number of cells of each type: hexahedra: 326205 prisms: 1442 wedges: 0 pyramids: 0 tet wedges: 0 tetrahedra: 0 polyhedra: 11050 Breakdown of polyhedra by number of faces: faces number of cells 4 3 5 139 6 1310 7 106 8 37 9 8363 11 34 12 891 14 1 15 150 18 16 Checking topology... Boundary definition OK. Cell to face addressing OK. Point usage OK. Upper triangular ordering OK. Face vertices OK. Number of regions: 1 (OK). |
|
September 26, 2021, 16:50 |
|
#5 |
Senior Member
Alan w
Join Date: Feb 2021
Posts: 283
Rep Power: 6 |
Murphy's Law is alive and well. After fighting with topoSet and then giving up and making posts with pleas for help, and while waiting hopefully for responses, I was poking around and ran into a topoSet clue. This involves 'useSurfaceOrientation.'
So I edited topoSetDict as thus: actions ( { name porousCells; type cellSet; action new; source surfaceToCell; sourceInfo { file "constant/triSurface/radiator.stl"; outsidePoints (); useSurfaceOrientation true; includeCut false; includeInside true; includeOutside false; nearDistance -1; curvature -1; } } { name porousZone; type cellZoneSet; action new; source setToCellZone; sourceInfo { set porousCells; } } ) Then, after running the meshing commands, and foamToVTK -cellSet porousZone, there it was, the radiator, proudly sitting there in its cuboid glory! Now, I will attempt to run the case. |
|
November 12, 2022, 16:33 |
|
#6 |
New Member
Marius
Join Date: Sep 2022
Posts: 27
Rep Power: 4 |
Thanks for sharing!
|
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
FLUENT porous zone inputs | eishinsnsayshin | FLUENT | 19 | April 17, 2020 05:40 |
contact detection and porous zone | 1993saurav | FLUENT | 0 | July 19, 2019 00:20 |
Cluster ID's not contiguous in compute-nodes domain. ??? | Shogan | FLUENT | 1 | May 28, 2014 16:03 |
[GAMBIT] periodic faces not matching | Aadhavan | ANSYS Meshing & Geometry | 6 | August 31, 2013 12:25 |
Free surface boudary conditions with SOLA-VOF | Fan | Main CFD Forum | 10 | September 9, 2006 13:24 |