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] Cavity with Internal Solid Cylinder (https://www.cfd-online.com/Forums/openfoam-meshing/200008-cavity-internal-solid-cylinder.html)

mucgoo March 21, 2018 16:15

Cavity with Internal Solid Cylinder
 
I'm modelling a water filled cavity with a heated central cylinder.

I've created geometry as shown below
https://i.imgur.com/CIi43XH.png

I've done this by creating the outer cavity, and then an inner cylinder block.

Code:

/*--------------------------------*- C++ -*----------------------------------*\
| =========                |                                                |
| \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox          |
|  \\    /  O peration    | Version:  3.0.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)
    (1 0 0)
    (1 0.5 0)
    (0 0.5 0)
    (0 0 1)
    (1 0 1)
    (1 .5 1)
    (0 0.5 1)
       
        (0.40454 0.022 0.40454)
        (0.59546 0.022 0.40454)
        (0.59546 0.478 0.40454)
        (0.40454 0.478 0.40454)
        (0.40454 0.022 0.59546)
        (0.59546 0.022 0.59546)
        (0.59546 0.478 0.59546)
        (0.40454 0.478 0.59546)
);

geometry
{
};

blocks
(
    hex (0 1 2 3 4 5 6 7) (50 50 50)
    simpleGrading
    (
        1
        1                 
        1             
    )
        hex (8 9 10 11 12 13 14 15) (10 10 10)
    simpleGrading
    (
        1
        1                 
        1             
    )
);

edges
(
        arc 8 9 (0.5 0.022 0.365)
        arc 10 11 (0.5 0.478 0.365)
        arc 9 13 (0.635 0.022 0.5)
        arc 10 14 (0.635 0.478 0.5)
        arc 13 12 (0.5 0.022 0.635)
        arc 14 15 (0.5 0.478 0.635)
        arc 12 8 (0.365 0.022 0.5)
        arc 15 11 (0.365 0.478 0.5)
);

boundary
(
  defaultFaces
    {
        type wall;
        faces
        (
            (9 13 14 10)
            (13 14 15 12)
            (12 8 11 15)
            (8 9 10 11)
            (8 9 13 12)
            (11 10 14 15)
        );
    }
  fixedWalls
    {
        type wall;
        faces
        (
            (0 3 2 1)
            (4 5 6 7)
        );
    }
    leftWall
    {
        type wall;
        faces
        (
            (0 4 7 3)
        );
    }
    rightWall
    {
        type wall;
        faces
        (
            (1 2 6 5)
        );
    }
    front
    {
        type cyclic;
        neighbourPatch back;
        faces
        (
            (0 1 5 4)
        );
    }
    back
    {
        type cyclic;
        neighbourPatch front;
        faces
        (
            (2 3 7 6)
        );
    }
);

mergePatchPairs
(
);

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

I've then specified the cylinder wall temperature as uniform. However, only the interior of the cylinder heats, and not the surrounding cavity.

Code:

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

dimensions      [0 0 0 1 0 0 0];

internalField  uniform 293.15;

boundaryField
{
    defaultFaces
        {
                type            fixedValue;
        value          uniform 353.15;
    }
        leftWall
    {
        type            zeroGradient;
    }
    rightWall
    {
        type            zeroGradient;
    }
    fixedWalls
    {
        type            zeroGradient;
    }
    front
    {
        type            zeroGradient;
    }

    back
    {
        type            zeroGradient;
    }
}

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

How do I get the exterior of the cylinder to interact, or is there a better way of going about this?

piu58 March 22, 2018 00:34

You need to define the boundary between the cylinder and the surroundings as wall or patch and give boundary conditions.

mucgoo March 22, 2018 04:17

Quote:

Originally Posted by piu58 (Post 686081)
You need to define the boundary between the cylinder and the surroundings as wall or patch and give boundary conditions.

Is that not done? (Poor naming but defaultFaces=the cylinder)

Code:

  defaultFaces
    {
        type wall;
        faces
        (
            (9 13 14 10)
            (13 14 15 12)
            (12 8 11 15)
            (8 9 10 11)
            (8 9 13 12)
            (11 10 14 15)
        );
    }

Code:

boundaryField
{
    defaultFaces
        {
                type            fixedValue;
        value          uniform 353.15;
    }


piu58 March 22, 2018 05:16

I don't recommend to use defaultFaces. Give the boundary a name and set the condition. Then you know for sure everything is ok.

mucgoo March 22, 2018 08:34

I've changed the face name to "Core" for all boundary conditions but the problem remains.

The interior wall of the Cylinder is heating the internal volume (I don't care what happens in this space), while the exterior isn't heating the surrounding air filled cavity.

piu58 March 22, 2018 08:44

Now I understand.

A patch has only one direction, because the other side is thought to be the boundary of the domain to be computed. To define it for two adjacent regions you have to note the patches twice, with an alternativ counting of nodes.

mucgoo March 22, 2018 08:52

So how do I reverse the direction so the cylinder becomes outward facing, and computation occurs between the cavity/cylinder.

Thank you very much for your help so far!

piu58 March 22, 2018 11:24

If you don't need the region inside the cylinder you should not mesh it but let it empty.

mucgoo March 23, 2018 05:10

That result in a blockMesh error?

Code:

Creating topology blocks
Creating topology patches

Creating block mesh topology


--> FOAM FATAL ERROR:
face 0 in patch 0 does not have neighbour cell face: 4(9 13 14 10)

    From function polyMesh::facePatchFaceCells(const faceList& patchFaces,const labelListList& pointCells,const faceListList& cellsFaceShapes,const label patchID)
    in file meshes/polyMesh/polyMeshFromShapeMesh.C at line 124.



All times are GMT -4. The time now is 20:43.