간단한 blockMesh 오류

Main Forums Mesh Generation 간단한 blockMesh 오류

This topic contains 2 replies, has 3 voices, and was last updated by  ethanOh 1 year, 5 months ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #1330

    Seung Hoon
    Participant

    아직 초보인데 오류가 생겨서 부탁드려요

    I tried to split a block into different segments in order to define a mesh quality for each segment but I encountered some problem.:

    제가 만든 blockMeshdict인데 제가 블록을 여러가지 조각으로 나누서 각각을 meshquality로 정의하려고 하는데 에러가 나네요
    많이 길긴 한데 에러가 어디서 나는지 잘모르겠습니다

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

    convertToMeters 1;

    vertices
    (
    (-1100 -1100 0) //0 – 0
    (1100 -1100 0) //1
    (1100 1100 0) //2
    (-1100 1100 0) //3
    (-1100 -1100 10) //4 – 1
    (1100 -1100 10) //5
    (1100 1100 10) //6
    (-1100 1100 10) //7
    (-1100 -1100 20) //8 – 2
    (1100 -1100 20) //9
    (1100 1100 20) //10
    (-1100 1100 20) //11
    (-1100 -1100 35) //12 – 3
    (1100 -1100 35) //13
    (1100 1100 35) //14
    (-1100 1100 35) //15
    (-1100 -1100 40) //16 – 4
    (1100 -1100 40) //17
    (1100 1100 40) //18
    (-1100 1100 40) //19
    (-1100 -1100 50) //20 – 5
    (1100 -1100 50) //21
    (1100 1100 50) //22
    (-1100 1100 50) //23
    (-1100 -1100 60) //24 – 6
    (1100 -1100 60) //25
    (1100 1100 60) //26
    (-1100 1100 60) //27
    (-1100 -1100 65) //28 – 7
    (1100 -1100 65) //29
    (1100 1100 65) //30
    (-1100 1100 65) //31
    (-1100 -1100 80) //32 – 8
    (1100 -1100 80) //33
    (1100 1100 80) //34
    (-1100 1100 80) //35
    (-1100 -1100 100) //36 – 9
    (1100 -1100 100) //37
    (1100 1100 100) //38
    (-1100 1100 100) //39
    (-1100 -1100 120) //40 – 10
    (1100 -1100 120) //41
    (1100 1100 120) //42
    (-1100 1100 120) //43
    (-1100 -1100 140) //44 – 11
    (1100 -1100 140) //45
    (1100 1100 140) //46
    (-1100 1100 140) //47
    (-1100 -1100 160) //48 – 12
    (1100 -1100 160) //49
    (1100 1100 160) //50
    (-1100 1100 160) //51
    (-1100 -1100 200) //52 – 13
    (1100 -1100 200) //53
    (1100 1100 200) //54
    (-1100 1100 200) //55
    (-1100 -1100 240) //56 – 14
    (1100 -1100 240) //57
    (1100 1100 240) //58
    (-1100 1100 240) //59
    (-1100 -1100 280) //60 – 15
    (1100 -1100 280) //61
    (1100 1100 280) //62
    (-1100 1100 280) //63
    (-1100 -1100 320) //64 – 16
    (1100 -1100 320) //65
    (1100 1100 320) //66
    (-1100 1100 320) //67
    (-1100 -1100 360) //68 – 17
    (1100 -1100 360) //69
    (1100 1100 360) //70
    (-1100 1100 360) //71
    (-1100 -1100 400) //72 – 18
    (1100 -1100 400) //73
    (1100 1100 400) //74
    (-1100 1100 400) //75
    (-1100 -1100 470) //76 – 19
    (1100 -1100 470) //77
    (1100 1100 470) //78
    (-1100 1100 470) //79
    (-1100 -1100 500) //80 – 20
    (1100 -1100 500) //81
    (1100 1100 500) //82
    (-1100 1100 500) //83
    (-1100 -1100 1100) //84 – last – 4
    (1100 -1100 1100) //85 – 5
    (1100 1100 1100) //86 – 6
    (-1100 1100 1100) //87 – 7
    );

    blocks
    (
    hex (0 1 2 3 4 5 6 7) (20 20 2) simpleGrading (1 1 1)
    hex (4 5 6 7 8 9 10 11) (20 20 2) simpleGrading (1 1 1)
    hex (8 9 10 11 12 13 14 15) (20 20 2) simpleGrading (1 1 1)
    hex (16 17 18 19 20 21 22 23) (20 20 2) simpleGrading (1 1 1)
    hex (20 21 22 23 24 25 26 27) (20 20 2) simpleGrading (1 1 1)
    hex (24 25 26 27 28 29 30 31) (20 20 1) simpleGrading (1 1 1)
    hex (28 29 30 31 32 33 34 35) (20 20 1) simpleGrading (1 1 1)
    hex (32 33 34 35 36 37 38 39) (20 20 1) simpleGrading (1 1 1)
    hex (36 37 38 39 40 41 42 43) (20 20 1) simpleGrading (1 1 1)
    hex (40 41 42 43 44 45 46 47) (20 20 1) simpleGrading (1 1 1)
    hex (44 45 46 47 48 49 50 51) (20 20 1) simpleGrading (1 1 1)
    hex (48 49 50 51 52 53 54 55) (20 20 1) simpleGrading (1 1 1)
    hex (52 53 54 55 56 57 58 59) (20 20 1) simpleGrading (1 1 1)
    hex (60 61 62 63 64 65 66 67) (20 20 1) simpleGrading (1 1 1)
    hex (64 65 66 67 68 69 70 71) (20 20 1) simpleGrading (1 1 1)
    hex (68 69 70 71 72 73 74 75) (20 20 1) simpleGrading (1 1 1)
    hex (72 73 74 75 76 77 78 79) (20 20 1) simpleGrading (1 1 1)
    hex (76 77 78 79 80 81 82 83) (20 20 1) simpleGrading (1 1 1)
    hex (80 81 82 83 84 85 86 87) (20 20 1) simpleGrading (1 1 1)
    );

    edges
    (
    );

    boundary
    (
    inlet
    {
    type patch;
    faces
    (
    (0 3 7 4)
    (8 11 15 12)
    (16 19 23 20)
    (24 27 31 28)
    (32 35 39 36)
    (40 43 47 44)
    (48 51 55 52)
    (56 59 63 60)
    (64 67 71 68)
    (72 75 79 76)
    (80 83 84 87)
    );
    }

    outlet
    {
    type patch;
    faces
    (
    (1 5 6 2)
    (9 13 14 10)
    (17 21 22 18)
    (25 29 30 26)
    (33 37 38 34)
    (41 45 46 42)
    (49 53 54 50)
    (57 61 62 58)
    (65 69 70 66)
    (73 77 78 74)
    (81 85 86 82)
    );
    }

    ground
    {
    type wall;
    faces
    (
    (0 1 2 3)
    );
    }

    frontAndBack
    {
    type symmetry;
    faces
    (
    (0 4 5 1)
    (8 12 13 9)
    (16 20 21 17)
    (24 28 29 25)
    (32 36 37 33)
    (40 44 45 41)
    (48 52 53 49)
    (56 60 61 57)
    (64 68 69 65)
    (72 76 77 73)
    (80 84 85 81)
    (3 2 6 7)
    (11 10 14 15)
    (19 18 22 23)
    (27 26 30 31)
    (35 34 38 39)
    (43 42 46 47)
    (51 50 54 55)
    (59 58 62 63)
    (67 66 70 71)
    (75 74 78 79)
    (83 82 86 87)
    (84 87 86 85)
    );
    }

    );

    mergePatchPairs
    (
    );

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

    에러뜨는 부분입니다.

    –> FOAM FATAL ERROR:
    face 10 in patch 0 does not have neighbour cell face: 4(80 83 84 87)

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

    FOAM aborting

    #1331

    ChockChock
    Participant

    안녕하세요, osj3760님. 저도 오픈폼에 입문한지 얼마되지 않았지만
    그 동안의 시행착오 경험을 되살려 적어보자면,
    기본적으로 이 에러는 면위의 꼭지점의 순서가 시계방향을 따르지 않기때문에 발생합니다.
    블록 내에서 면을 보았을때 그 면을 정의하는 면의 꼭지점 순서가 시계방향이어야합니다.
    위 코딩에서는 (83 83 84 87) 부분이 순서가 잘못된거같습니다.
    아마 84, 87순서를 바꿔주면 잘 잘동할것입니다.

    #1335

    ethanOh
    Participant

    아마 seon7617님이 말씀하신 boundary face의 방향에 따른 포인트 순서 오류인듯 합니다.
    추가로 답변을 드리면 OpenFOAM 3.0 버전 부터는 blockMesh에서 boundary face를 줄 때
    방향성이 자동으로 고려되는것으로 알고 있습니다. OpenFOAM 3.0에서 실행해보시는걸 추천드립니다.

Viewing 3 posts - 1 through 3 (of 3 total)

You must be logged in to reply to this topic.