CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   [blockMesh] Inconsistent grading between a Hex and a Prism? (https://www.cfd-online.com/Forums/openfoam-meshing/233436-inconsistent-grading-between-hex-prism.html)

So_LL January 27, 2021 08:34

Inconsistent grading between a Hex and a Prism?
 
1 Attachment(s)
Hi,

I am trying to create a relatively simple mesh using blockMesh in OpenFOAM V8. However, I keep running into issues when merging a prism and a hex. I ended up using (1 1 1) for grading to see if it'd work better, but it seems not. I am trying to get a uniform mesh of about 0.01 meters and am not sure how to get there when I can't even merge simple blocks.

I saw that modifying the blockMeshMerge.C files to allow more spacing for merging might help (https://www.cfd-online.com/Forums/op...c-problem.html), but can't find a good tutorial to modify and use it. Since blockMesh is read only, can anyone refer me to a way to create my own blockMesh that I could use, with only the blockMeshMerge.C file modified?

Alternatively, here's my blockMeshDict file, in case someone can find the issue, along with a schematic of the mesh I am trying to create, with the vertices and blocks IDed.

Thank you so much for any help you can provide !

Quote:

/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 8
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
Build : 8-340defec456f
Exec : blockMesh
Date : Jan 27 2021
Time : 09:28:14
Host : "sophie-VirtualBox"
PID : 1856
I/O : uncollated
Case : /home/sophie/OpenFOAM/sophie-8/run/Tri2cm_LESCoarse
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Creating block mesh from
"system/blockMeshDict"
Creating block edges
No non-planar block faces defined
Creating topology blocks
Creating topology patches

Creating block mesh topology

Check topology

Basic statistics
Number of internal faces : 15
Number of boundary faces : 33
Number of defined boundary faces : 33
Number of undefined boundary faces : 0
Checking patch -> block consistency

Creating block offsets
Creating merge list

--> FOAM FATAL ERROR:
Inconsistent point locations between block pair 0 and 4
probably due to inconsistent grading.

From function void Foam::blockMesh::calcMergeInfo()
in file blockMesh/blockMeshMerge.C at line 295.

FOAM exiting
Quote:

/*--------------------------------*- C++ -*----------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | Website: https://openfoam.org
\\ / A nd | Version: 8
\\/ M anipulation |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices
(
(0 0 0) // 0
(3.08 0 0)
(3.22 0 0)
(6.3 0 0)
(0 0.02 0)
(3.22 0.02 0) // 5
(6.3 0.02 0)
(0 0.3 0)
(3.22 0.3 0)
(6.3 0.3 0)
(0 0 0.15) // 10
(3.05 0 0.15)
(3.22 0 0.14)
(6.3 0 0.14)
(0 0.02 0.15)
(3.22 0.02 0.15) // 15
(6.3 0.02 0.15)
(0 0.3 0.15)
(3.22 0.3 0.15)
(6.3 0.3 0.15)
(3.22 0 0.16) // 20
(6.3 0 0.16)
(0 0 0.3)
(3.08 0 0.3)
(3.22 0 0.3)
(6.3 0 0.3) // 25
(0 0.02 0.3)
(3.22 0.02 0.3)
(6.3 0.02 0.3)
(0 0.3 0.3)
(3.22 0.3 0.3) // 30
(6.3 0.3 0.3)
);

blocks
(
hex (0 1 5 4 10 11 15 14) (1 1 1) simpleGrading (1 1 1) // 0
hex (4 5 8 7 14 15 18 17) (1 1 1) simpleGrading (1 1 1) // 1
hex (10 11 15 14 22 23 27 26) (1 1 1) simpleGrading (1 1 1) // 2
hex (14 15 18 17 26 27 30 29) (1 1 1) simpleGrading (1 1 1) // 3
prism (2 5 1 12 15 11) (1 1 1) simpleGrading (1 1 1) // 4
prism (20 15 11 24 27 23) (1 1 1) simpleGrading (1 1 1) // 5
hex (2 3 6 5 12 13 16 15) (1 1 1) simpleGrading (1 1 1) // 6
hex (20 21 16 15 24 25 28 27) (1 1 1) simpleGrading (1 1 1) // 7
hex (5 6 9 8 15 16 19 18) (1 1 1) simpleGrading (1 1 1) // 8
hex (15 16 19 18 27 28 31 30) (1 1 1) simpleGrading (1 1 1) // 9
prism (21 16 13 20 15 12) (1 1 1) simpleGrading (1 1 1) // 10
);

edges
(
);

boundary
(
leftWall
{
type wall;
faces
(
(0 1 5 4)
(4 5 8 7)
(5 6 9 8)
(2 3 6 5)
(2 5 1)
);
}
rightWall
{
type wall;
faces
(
(22 23 27 26)
(26 27 30 29)
(24 27 23)
(24 25 28 27)
(27 28 31 30)
);
}
lowerWall
{
type wall;
faces
(
(0 1 11 10)
(10 11 23 22)
(1 2 12 11)
(24 20 11 23)
(2 3 13 12)
(12 13 21 20)
(20 21 25 24)
);
}
atmosphere
{
type patch;
faces
(
(17 18 8 7)
(29 30 18 17)
(18 19 9 8)
(30 31 19 18)
);
}
upstream
{
type patch;
faces
(
(14 4 7 17)
(10 0 4 14)
(22 10 14 26)
(26 14 17 29)
);
}
downstream
{
type patch;
faces
(
(6 9 19 16)
(3 6 16 13)
(13 16 21)
(16 19 31 28)
(21 16 28 25)
);
}
protru
{
type wall;
faces
(
(20 15 12)
(12 15 11)
(20 15 11)
);
}
);
mergePatchPairs
(
);

//
************************************************** ****//

So_LL January 27, 2021 12:24

Solved
 
In case it can help someone else: it turns out OpenFOAM V8 blockMesh still can't use prism as input. So I converted my 3 prisms to hex as outlined in Section 5.3.5 of the User Manual and got blockMesh to work. Can visualize it in paraview as well, now I just need to work on grading and I'm on to some fun simulations! :)


All times are GMT -4. The time now is 03:27.