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/)
-   -   [mesh manipulation] Merging meshes for chtMultiRegionFoam (https://www.cfd-online.com/Forums/openfoam-meshing/244245-merging-meshes-chtmultiregionfoam.html)

Hr_kules July 29, 2022 06:04

Merging meshes for chtMultiRegionFoam
 
Hey guys, for a multi region simulation i want to couple two (then three) seperate generated meshes. I am somewhat familiar with merging meshes, but i am unsure considering the interfaces.
For the first test i want to couple a solid and a fluid thermaly along a surface with the exact same geometric values. (same length and width and same geometric features).
After meshing both of them, with same refinement levels in for each snappyhex run, i am sitting on two times the surface, but with different amount of faces:
solid:
Code:

/*--------------------------------*- C++ -*----------------------------------*\
  =========                |
  \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox
  \\    /  O peration    | Website:  https://openfoam.org
    \\  /    A nd          | Version:  9
    \\/    M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class      polyBoundaryMesh;
    location    "constant/polyMesh";
    object      boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

3
(
    lowerInterface
    {
        type            wall;
        inGroups        List<word> 1(wall);
        nFaces          1972883;
        startFace      23702955;
    }
    upperInterface
    {
        type            wall;
        inGroups        List<word> 1(wall);
        nFaces          1976846;
        startFace      25675838;
    }
    wallplate
    {
        type            wall;
        inGroups        List<word> 1(wall);
        nFaces          69265;
        startFace      27652684;
    }
)

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

fluid:
Code:

/*--------------------------------*- C++ -*----------------------------------*\
  =========                |
  \\      /  F ield        | OpenFOAM: The Open Source CFD Toolbox
  \\    /  O peration    | Website:  https://openfoam.org
    \\  /    A nd          | Version:  9
    \\/    M anipulation  |
\*---------------------------------------------------------------------------*/
FoamFile
{
    format      ascii;
    class      polyBoundaryMesh;
    location    "constant/polyMesh";
    object      boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

4
(
    Inlethot
    {
        type            wall;
        inGroups        List<word> 1(wall);
        nFaces          10254;
        startFace      19818519;
    }
    Outlethot
    {
        type            wall;
        inGroups        List<word> 1(wall);
        nFaces          10242;
        startFace      19828773;
    }
    wallfluidhot
    {
        type            wall;
        inGroups        List<word> 1(wall);
        nFaces          1156425;
        startFace      19839015;
    }
    upperInterface
    {
        type            wall;
        inGroups        List<word> 1(wall);
        nFaces          1642604;
        startFace      20995440;
    }
)

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

My question is now how to couple the boundary upperInterface thermaly so that i can use the boundary condition of following type:
Code:

    fluid_to_plate
    {
        type            compressible::turbulentTemperatureCoupledBaffleMixed;
        value          $internalField;
        Tnbr            T;
    }

Generally i'd have no problem with changing the patches with a createPatchDict to mapped walls, however i am uncertain if that would lead to accurate solutions. I have no idea wether a mapped wall uses any kind of interpolation between the patches and wether chtMultiRegionFoam accepts non conforming interfaces, so I need an idea how to prepare the patches to get a nice simulation.



Any help is greatly appreciated!



Kind regards!

Yann July 29, 2022 09:32

Hi Nico,

Let's start with the most basic question: why do you want to use mergeMeshes for a CHT case? chtMultiRegionFoam use separate meshes for each region, this is why we use splitMeshRegions which is pretty much the opposite of mergeMeshes.

Regarding the interfaces coupling, mappedWall can work with non-conformal interfaces thanks to AMI. But it must be handled with care since the interpolation can lead to energy conservation issues, which is obviously something we would like to avoid when working with heat transfer.

I don't have the exact method in mind to create the interfaces, but you should have a look to utilities such as changeDictionary, createPatch.
The mappedWall definition should look like this: https://www.cfd-online.com/Forums/op...tml#post394476

The thread is pretty old and I don't think there is any tutorial demonstrating this kind of stuff so you might have to dig deeper, but it should be a good starting point.

My first thought is that this must be doable without merging the meshes, maybe another way would be to merge, deal with the interfaces, then split the meshes but it sounds a bit unnecessary to me.

I hope this helps!
Yann

Hr_kules July 29, 2022 09:40

Hi Yann,

i want to merge meshes of each region since the behaviour (as we discussed in a another post) doesn't seems really reliable. I made some "progress" with meshing each region and then splitting the meshes, delivering the wanted boundaries in each region. For the interface i wanted to (like you mentioned) use the createpatch dictionary. I have only concerns regarding the handling of data between the interfaces.

But the link to the thread seems quite what i am looking for, i will dig deeper and try to make the best out of it!

Thank you, as always, for your help!

Didu July 30, 2022 13:15

mergeMeshes
 
Dear foamers,
I have been working in blockMesh on two simple meshes (two cylinders), I intend to join with an overlap as a T-junction (90º degree angle). mergeMeshes command only joins the two meshes however the overlapped part is still there including the walls. Is there a command to remove the overlapped cells or to combine two meshes from blockMesh?
Many thanks,
Didu


All times are GMT -4. The time now is 05:19.