CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   Simple mesh of a room with floor patch (https://www.cfd-online.com/Forums/openfoam-meshing/114539-simple-mesh-room-floor-patch.html)

 jlp56 March 13, 2013 04:31

Simple mesh of a room with floor patch

Hi,

I am very new to CFD, meshing and alike, I am usually an experimentalist. Still, I would like to become more proficient. I think I understand the basics of OpenFOAM, worked through the tutorials etc. but I am struggling to mesh the simplest of enclosures!

Essentially, I would like a cube with a small patch on the floor (ideally a circle but for simplicity a square patch would do) which I can then apply a constant heat flux condition to. I know how to apply the boundary conditions but I am struggling to mesh it up with BlockMesh. I initially tried to mesh a 2D model of such flow, so with a small square in the middle of the base of the enclosure that I can apply heat to but also struggled as it kept throwing the error that the cell had no neighbouring face.

In the grand schemes of things, I would like to position this small cube with heated patch and a couple of openings, inside a larger cube.

It sounds simple in theory, and I am sure it is, but I have trouble with the vertices, as adding a smaller square inside the larger base square of the enclosure seems to throw up errors.

Any help would be greatly appreciated.

 lucasw7 March 14, 2013 21:24

Hi,

Do you have access to a CAD Program? If so, you could model your smaller cube with that, save as an STL file and use snappyHexMesh function.
To start you off, I would recommend you take a look at this tutorial:

This should help you understand the snappyHexMesh utility, which you should use as it'd be a much easier approach then blockMesh.

However should you attempt to do it in blockMesh, see below - 5x5x5 metre cube with 1x1x1 metre patch (labelled hole) in the middle. Best you get a pencil and paper and mark all the coordinates in order to get an understanding of how each point is projected to it's opposite face, and ordering of coordinates for the patches and walls.

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

convertToMeters 1;

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

);

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

edges
(
);

boundary
(
hole
{
type patch;
faces
(
(5 9 10 6)
);
}

wall
{
type wall;
faces
(
(0 1 17 16)
(1 2 18 17)
(2 3 19 18)
(3 7 23 19)
(7 11 27 23)
(11 15 31 27)
(14 30 31 15)
(13 29 30 14)
(12 28 29 13)
(8 24 28 12)
(4 20 24 8)
(0 16 20 4)
(0 4 5 1)
(1 5 6 2)
(2 6 7 3)
(4 8 9 5)
(6 10 11 7)
(8 12 13 9)
(9 13 14 10)
(10 14 15 11)
(16 17 21 20)
(17 18 22 21)
(18 19 23 22)
(20 21 25 24)
(21 22 26 25)
(22 23 27 26)
(24 25 29 28)
(25 26 30 29)
(26 27 31 30)

);
}
);

mergePatchPairs
(
);

Luke

 All times are GMT -4. The time now is 00:22.