CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Meshing & Mesh Conversion

[blockMesh] mergePatchPairs problem when using two master and slave combination

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   September 22, 2021, 10:35
Unhappy mergePatchPairs problem when using two master and slave combination
  #1
New Member
 
Ali
Join Date: Aug 2021
Posts: 3
Rep Power: 5
Ali_Sh is on a distinguished road
I have read some related issues on the forum, but the problem could not be passed despite my longtime efforts. I would like to merge circumferential faces and one of two caps of a cylinder with faces of a bigger box, separately. For this goal, I have created 18 blocks using blockMesh. There is no problem when I merge only circumferential faces or only the cap, as it is obvious in the following picture:
Main.jpg
The problem is for when I want to merge both of the circumferential faces and the cap. In someway it shows an error as the following picture, which, I guess, is related to the changes in allocated vertices by first combination of master and slave patches.
333333.PNG
I have tried various ways such as defining some same duplicated coordinates with different numbers or adding some duplicated blocks and etc., which are recommended by some other CFD users. But the problem is still remains. I would be very appreciated if anyone could help me to find out how to do that. I have seen somewhere that it is recommended by a CFD experienced expert to don't using duplicated vertices, which may confuse the OpenFOAM "Face reduced to less than 3 points (simple cubic blocks)", but there are various problems on the forum that recommend to use this method. Is there any problem with defining some duplicated vertices?
My used blockMesh is as:

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

convertToMeters 1;

IR__ 0.5;
Ranx__ #calc "$IR__-$IR__/2.0";
pnt__ #calc "$IR__+ 2*($IR__- sqrt(pow($IR__,2.0)-pow($Ranx__,2.0)))";

vertices
(
    // Rectangle
    (-2.0 -5.0 -2.0)   //0
    (-2.0 -5.0 2.0)    //1
    (2.0 -5.0 2.0)     //2
    (2.0 -5.0 -2.0)    //3
    (-2.0 5.0 -2.0)    //4
    (-2.0 5.0 2.0)     //5
    (2.0 5.0 2.0)      //6
    (2.0 5.0 -2.0)     //7
    // Perforation corresponding reservoir
    (-0.5 1.0 -0.5)    //8
    (-0.5 1.0 0.5)     //9
    (0.5 1.0 0.5)      //10
    (0.5 1.0 -0.5)     //11
    (-0.5 5.0 -0.5)    //12
    (-0.5 5.0 0.5)     //13
    (0.5 5.0 0.5)      //14
    (0.5 5.0 -0.5)     //15
    // Reservoir Inlet
    (-2.0 -5.0 -0.5)   //16
    (-2.0 -5.0 0.5)    //17
    (-0.5 -5.0 2.0)    //18
    (0.5 -5.0 2.0)     //19
    (2.0 -5.0 0.5)     //20
    (2.0 -5.0 -0.5)    //21
    (0.5 -5.0 -2.0)    //22
    (-0.5 -5.0 -2.0)   //23
    (-0.5 -5.0 -0.5)   //24
    (-0.5 -5.0 0.5)    //25
    (0.5 -5.0 0.5)     //26
    (0.5 -5.0 -0.5)    //27
    // Center XZ plane of the reservoir without perforation corresponding reservoir
    (-2.0 1.0 -2.0)    //28
    (-2.0 1.0 -0.5)    //29
    (-2.0 1.0 0.5)     //30
    (-2.0 1.0 2.0)     //31
    (-0.5 1.0 2.0)     //32
    (0.5 1.0 2.0)      //33
    (2.0 1.0 2.0)      //34
    (2.0 1.0 0.5)      //35
    (2.0 1.0 -0.5)     //36
    (2.0 1.0 -2.0)     //37
    (0.5 1.0 -2.0)     //38
    (-0.5 1.0 -2.0)    //39
    // Outer XZ plane of the reservoir without perforation corresponding reservoir
    (-2.0 5.0 -0.5)    //40
    (-2.0 5.0 0.5)     //41
    (-0.5 5.0 2.0)     //42
    (0.5 5.0 2.0)      //43
    (2.0 5.0 0.5)      //44
    (2.0 5.0 -0.5)     //45
    (0.5 5.0 -2.0)     //46
    (-0.5 5.0 -2.0)    //47
    /////////////////////// FOR MERGING:
    // Perforation
    (-0.5 1.0 -0.5)    //48
    (-0.5 1.0 0.5)     //49
    (0.5 1.0 0.5)      //50
    (0.5 1.0 -0.5)     //51
    (-0.5 5.0 -0.5)    //52
    (-0.5 5.0 0.5)     //53
    (0.5 5.0 0.5)      //54
    (0.5 5.0 -0.5)     //55//
    /* Behind perforation
    (-0.5 1.0 -0.5)    //56
    (-0.5 1.0 0.5)     //57
    (0.5 1.0 0.5)      //58
    (0.5 1.0 -0.5)     //59*/
    /*(-0.5 -5.0 -0.5)   //60
    (-0.5 -5.0 0.5)    //61
    (0.5 -5.0 0.5)     //62
    (0.5 -5.0 -0.5)    //63*/
);

blocks
(
    hex (0 23 39 28 16 24 8 29) (15 30 15) simpleGrading (1 1 1)   // behind left down
    hex (16 24 8 29 17 25 9 30) (15 30 10) simpleGrading (1 1 1)
    hex (17 25 9 30 1 18 32 31) (15 30 15) simpleGrading (1 1 1)
    hex (23 22 38 39 24 27 11 8) (10 30 15) simpleGrading (1 1 1)  // behind middle down
    hex (24 27 11 8 25 26 10 9) (10 30 10) simpleGrading (1 1 1)   // CENTER
    //hex (24 27 59 56 25 26 58 57) (10 30 10) simpleGrading (1 1 1) // CENTER if behind perforation specified for merging
    //hex (60 63 59 56 61 62 58 57) (10 30 10) simpleGrading (1 1 1) // CENTER if behind perforation specified for merging
    hex (25 26 10 9 18 19 33 32) (10 30 15) simpleGrading (1 1 1)
    hex (22 3 37 38 27 21 36 11) (15 30 15) simpleGrading (1 1 1)  // behind right down
    hex (27 21 36 11 26 20 35 10) (15 30 10) simpleGrading (1 1 1)
    hex (26 20 35 10 19 2 34 33) (15 30 15) simpleGrading (1 1 1)

    hex (28 39 47 4 29 8 12 40) (15 20 15) simpleGrading (1 1 1)   // front left down
    hex (29 8 12 40 30 9 13 41) (15 20 10) simpleGrading (1 1 1)
    hex (30 9 13 41 31 32 42 5) (15 20 15) simpleGrading (1 1 1)
    hex (39 38 46 47 8 11 15 12) (10 20 15) simpleGrading (1 1 1)  // front middle down
    //hex (8 11 15 12 9 10 14 13) (10 20 10) simpleGrading (1 1 1)   // CENTER
    hex (48 51 55 52 49 50 54 53) (10 20 10) simpleGrading (1 1 1) // CENTER if perforation specified for merging
    hex (9 10 14 13 32 33 43 42) (10 20 15) simpleGrading (1 1 1)
    hex (38 37 7 46 11 36 45 15) (15 20 15) simpleGrading (1 1 1)  // front right down
    hex (11 36 45 15 10 35 44 14) (15 20 10) simpleGrading (1 1 1)
    hex (10 35 44 14 33 34 6 43) (15 20 15) simpleGrading (1 1 1)
);

edges
(
    arc 24 25 (#calc "-$pnt__" -5.0 0.0)
    arc 25 26 (0.0 -5.0 $pnt__)
    arc 26 27 ($pnt__ -5.0 0.0)
    arc 27 24 (0.0 -5.0 #calc "-$pnt__")

    arc 8 9 (#calc "-$pnt__" 1.0 0.0)
    arc 9 10 (0.0 1.0 $pnt__)
    arc 10 11 ($pnt__ 1.0 0.0)
    arc 11 8 (0.0 1.0 #calc "-$pnt__")
    /*/////
    arc 56 57 (#calc "-$pnt__" 1.0 0.0)
    arc 57 58 (0.0 1.0 $pnt__)
    arc 58 59 ($pnt__ 1.0 0.0)
    arc 59 56 (0.0 1.0 #calc "-$pnt__")*/

    /*arc 60 61 (#calc "-$pnt__" -5.0 0.0)
    arc 61 62 (0.0 -5.0 $pnt__)
    arc 62 63 ($pnt__ -5.0 0.0)
    arc 63 60 (0.0 -5.0 #calc "-$pnt__")*///////
    //
    arc 48 49 (#calc "-$pnt__" 1.0 0.0)
    arc 49 50 (0.0 1.0 $pnt__)
    arc 50 51 ($pnt__ 1.0 0.0)
    arc 51 48 (0.0 1.0 #calc "-$pnt__")//

    arc 12 13 (#calc "-$pnt__" 5.0 0.0)
    arc 13 14 (0.0 5.0 $pnt__)
    arc 14 15 ($pnt__ 5.0 0.0)
    arc 15 12 (0.0 5.0 #calc "-$pnt__")
    //
    arc 52 53 (#calc "-$pnt__" 5.0 0.0)
    arc 53 54 (0.0 5.0 $pnt__)
    arc 54 55 ($pnt__ 5.0 0.0)
    arc 55 52 (0.0 5.0 #calc "-$pnt__")//
);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (0 23 24 16)
            (16 24 25 17)
            (17 25 18 1)
            (23 22 27 24)
            (24 27 26 25)
	  //(60 63 62 61)
            (25 26 19 18)
            (22 3 21 27)
            (27 21 20 26)
            (26 20 2 19)
        );
    }

    perf_op_outlet
    {
        type inletOutlet;
        faces
        (
            //(12 13 14 15)
            (52 53 54 55)
        );
    }
    
    wall_res_outlet
    {
        type patch;
        faces
        (
            (8 12 13 9)
            (9 13 14 10)
            (10 14 15 11)
            (11 15 12 8)

            //(8 9 10 11)
        );
    }

    wall_perf_outlet
    {
        type patch;
        faces
        (
            (48 49 53 52)
            (49 50 54 53)
            (51 55 54 50)
            (48 52 55 51)

            //(51 50 49 48)
        );
    }
    ///*
    tip_res
    {
        type wall;
        faces
        (
            (8 9 10 11)
            //(56 57 58 59)
        );
    }

    tip_perf
    {
        type wall;
        faces
        (
            (51 50 49 48)
        );
    }
    
    //*/
    reservoir
    {
        type patch;
        faces
        (
            (3 37 36 21)
            (37 7 45 36)
            (21 36 35 20)
            (36 45 44 35)
            (20 35 34 2)
            (35 44 6 34)
            (16 29 28 0)
            (29 40 4 28)
            (17 30 29 16)
            (30 41 40 29)
            (1 31 30 17)
            (31 5 41 30)
        );
    }
    
    
    boundaries
    {
        type wall;
        faces
        (
            (0 28 39 23)
            (28 4 47 39)
            (23 39 38 22)
            (39 47 46 38)
            (22 38 37 3)
            (38 46 7 37)
            (2 34 33 19)
            (34 6 43 33)
            (19 33 32 18)
            (33 43 42 32)
            (18 32 31 1)
            (32 42 5 31)
        );
    }
    
    csg_cmt
    {
        type wall;
        faces
        (
            (4 40 12 47)
            (40 41 13 12)
            (41 5 42 13)
            (13 42 43 14)
            (14 43 6 44)
            (15 14 44 45)
            (46 15 45 7)
            (47 12 15 46)
        );
    }
);

mergePatchPairs
(
    //(wall_res_outlet wall_perf_outlet)

    (wall_perf_outlet wall_res_outlet)
    //(tip_perf tip_res)

    //(tip_res tip_perf)
);

// ************************************************************************* //
The aforementioned code is for when merging only circumferences faces of the cylinder with the box.

Please help to understand this challenging issue.

Last edited by Ali_Sh; September 23, 2021 at 11:39. Reason: Adding another need
Ali_Sh is offline   Reply With Quote

Reply

Tags
blockmesh, blockmeshmerge, master slave, mergepatchpairs, stitchmesh


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Radiation in semi-transparent media with surface-to-surface model? mpeppels CFX 11 August 22, 2019 08:30
big difference between clockTime and executionTime LM4112 OpenFOAM Running, Solving & CFD 21 February 15, 2019 04:05
foam-extend-3.2 Pstream: "MPI_ABORT was invoked" craven.brent OpenFOAM Running, Solving & CFD 5 November 18, 2015 08:55
Integer stack memory insufficient mactech001 CFX 1 May 15, 2014 07:22
Conjugate heat transfer sunilpatil CFX 1 January 25, 2013 12:42


All times are GMT -4. The time now is 02:52.