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] checkMesh for a Hollow Cylinder (https://www.cfd-online.com/Forums/openfoam-meshing/144358-checkmesh-hollow-cylinder.html)

hwsv07 November 12, 2014 17:03

checkMesh for a Hollow Cylinder
 
2 Attachment(s)
ok I am rather new to CFD and to OF as well. So please kindly be patient and forgiving.

I am now attempting a simple flow analysis to get myself started. And I have a problem understand where I have checkMesh errors.

The case is a simple hollow cylinder. I need to create a mesh to represent the hollow cylinder. I used blockMesh to do this.

Each block must be 8 vertices ; i have a hollow part ; so I need to have to have at least 2 blocks. When I was doing this, I used 4 blocks. These 4 blocks were
in the form of 4 quadrants starting anticlock from 3 o'clock (see figure Attachment 35054).

I defined each of the 4 blocks starting from the inner point outwards.

Since it is a enclosed cylinder, I have merge the facing pairs of each quadrant using mergePatchPairs in blockMeshDict. And this I what I have previewed using paraview. Looks ok.


However, checkMesh tells me I have negative volume and I do not understand since the preview in paraview looks ok. Attachment 35055


That being said, running the solver also does not work, as it crashed out immediately. I assume it is the problem with the mesh.

Here is the checkMesh message.

Code:

Mesh stats
    points:          968
    internal points:  0
    faces:            1680
    internal faces:  720
    cells:            400
    faces per cell:  6
    boundary patches: 5
    point zones:      1
    face zones:      3
    cell zones:      0

Overall number of cells of each type:
    hexahedra:    400
    prisms:        0
    wedges:        0
    pyramids:      0
    tet wedges:    0
    tetrahedra:    0
    polyhedra:    0

Checking topology...
    Boundary definition OK.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
  *Number of regions: 4
    The mesh has multiple regions which are not connected by any face.
  <<Writing region information to "0/cellToRegion"
  <<Writing region 0 with 100 cells to cellSet region0
  <<Writing region 1 with 100 cells to cellSet region1
  <<Writing region 2 with 100 cells to cellSet region2
  <<Writing region 3 with 100 cells to cellSet region3

Checking patch topology for multiply connected surfaces...
    Patch              Faces    Points  Surface topology                 
    inlet              400      484      ok (non-closed singly connected) 
    outlet              400      484      ok (non-closed singly connected) 
    sideProfile        80      176      ok (non-closed singly connected) 
    masterpatch        40      88      ok (non-closed singly connected) 
    slavepatch          40      88      ok (non-closed singly connected) 

Checking geometry...
    Overall domain bounding box (0 0 0) (12 12 10)
    Mesh (non-empty, non-wedge) directions (1 1 1)
    Mesh (non-empty) directions (1 1 1)
    Boundary openness (3.8204e-17 -4.44232e-18 2.22119e-18) OK.
 ***High aspect ratio cells found, Max aspect ratio: 6.04165e+200, number of cells 200
  <<Writing 200 cells with high aspect ratio to set highAspectRatioCells
    Minimum face area = 0.146461. Maximum face area = 9.41509.  Face area magnitudes OK.
 ***Zero or negative cell volume detected.  Minimum negative volume: -3.18931, Number of negative volume cells: 200
  <<Writing 200 zero volume cells to set zeroVolumeCells
    Mesh non-orthogonality Max: 180 average: 90
 ***Number of non-orthogonality errors: 360.
  <<Writing 360 non-orthogonal faces to set nonOrthoFaces
 ***Error in face pyramids: 1200 faces are incorrectly oriented.
  <<Writing 840 faces with incorrect orientation to set wrongOrientedFaces
    Max skewness = 0.187165 OK.
    Coupled point location match (average 0) OK.

Failed 4 mesh checks.

End

This thing sounds really straightforward to me. But I have some much difficulty on this. so really appreciate anyone's wise comments.

zfaraday November 13, 2014 07:41

Whenever you get checkMesh errors you can see where the errors are by checking the directory sets that is created within the case directory after runing checkMesh. You can see these errors in paraview so that is easier to find where you did something wrong. However I guess that the problem is wrong orientation of the blocks or patches in the blockMeshDict file....

Regards,

Alex

hwsv07 November 13, 2014 07:58

Quote:

Originally Posted by zfaraday (Post 518968)
Whenever you get checkMesh errors you can see where the errors are by checking the directory sets that is created within the case directory after runing checkMesh. You can see these errors in paraview so that is easier to find where you did something wrong. However I guess that the problem is wrong orientation of the blocks or patches in the blockMeshDict file....

Regards,

Alex

thanks for the reply.

In the definition of the Blocks e.g. (0 1 2 3 4 5 6 7), must 1 and 2 be defined in the positive x1 and x2 direction or can it be negative x1 and x2 direction? Im suspecting this could be the problem.

I couldnt find the answer to my question in the manual. so thats why I am asking here.

zfaraday November 13, 2014 08:19

It's not a matter of defining all the points in the positive direction of the axes, but it's a matter of the point order in the block/patch definition. Maybe you haven't paid enough attention to this section of the manual...

hwsv07 November 13, 2014 08:56

Quote:

Originally Posted by zfaraday (Post 518978)
It's not a matter of defining all the points in the positive direction of the axes, but it's a matter of the point order in the block/patch definition. Maybe you haven't paid enough attention to this section of the manual...

I understood what you meant. of course, i have defined it correctly, otherwise I would not be able to see my block in paraview.

Im asking this question cos I realised defining my 2nd quadrant in the negative x1 and x2 direction gives a different error message.

However, now I have rebuilt my BlockMeshDict using just 2 blocks - top and bottom half. Also, I used the same defined vertices to define both block for the common points. so I did not have to define common faces in mergePatchPairs.

Weirdly, there are still error messages in checkMesh, but only 1 Mesh has failed, which I cannot understand why.

Code:

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create polyMesh for time = 0

Time = 0

Mesh stats
    points:          1760
    internal points:  0
    faces:            3280
    internal faces:  1520
    cells:            800
    faces per cell:  6
    boundary patches: 1
    point zones:      0
    face zones:      0
    cell zones:      0

Overall number of cells of each type:
    hexahedra:    800
    prisms:        0
    wedges:        0
    pyramids:      0
    tet wedges:    0
    tetrahedra:    0
    polyhedra:    0

Checking topology...
    Boundary definition OK.
 ***Total number of faces on empty patches is not divisible by the number of cells in the mesh. Hence this mesh is not 1D or 2D.
    Cell to face addressing OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
    Number of regions: 1 (OK).

Checking patch topology for multiply connected surfaces...
    Patch              Faces    Points  Surface topology                 
    defaultFaces        1760    1760    ok (closed singly connected)     

Checking geometry...
    Overall domain bounding box (-5 -5 0) (5 5 1)
    Mesh (non-empty, non-wedge) directions (0 0 0)
    Mesh (non-empty) directions (0 0 0)
 ***Number of edges not aligned with or perpendicular to non-empty directions: 3370
  <<Writing 1760 points on non-aligned edges to set nonAlignedEdges
    Boundary openness (-1.22808e-17 -1.40352e-17 1.69592e-17) OK.
    Max cell openness = 3.0479e-16 OK.
    Max aspect ratio = -1 OK.
    Minimum face area = 0.0170746. Maximum face area = 0.52336.  Face area magnitudes OK.
    Min volume = 0.0170746. Max volume = 0.226217.  Total volume = 77.6592.  Cell volumes OK.
    Mesh non-orthogonality Max: 8.95528 average: 0.822375
    Non-orthogonality check OK.
    Face pyramids OK.
    Max skewness = 0.586957 OK.
    Coupled point location match (average 0) OK.

Failed 1 mesh checks.

End


zfaraday November 13, 2014 09:20

You can check the fail with paraview opening the set nonAlignedEdges. Why don't you upload your blockMeshDict file so that someone can check your process?

hwsv07 November 13, 2014 09:54

Quote:

Originally Posted by zfaraday (Post 518991)
You can check the fail with paraview opening the set nonAlignedEdges. Why don't you upload your blockMeshDict file so that someone can check your process?

thank you very much.

Code:

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

convertToMeters 1;

vertices
(
(-5.000000 -0.000000 0.000000) // v0
(-2.500000 -4.330127 0.000000) // v1
(0.000000 -5.000000 0.000000) // v2
(2.500000 -4.330127 0.000000) // v3
(5.000000 -0.000000 0.000000) // v4
(2.500000 4.330127 0.000000) // v5
(0.000000 5.000000 0.000000) // v6
(-2.500000 4.330127 0.000000) // v7
(-0.500000 -0.000000 0.000000) // v8
(-0.250000 -0.433013 0.000000) // v9
(0.000000 -0.500000 0.000000) // v10
(0.250000 -0.433013 0.000000) // v11
(0.500000 -0.000000 0.000000) // v12
(0.250000 0.433013 0.000000) // v13
(0.000000 0.500000 0.000000) // v14
(-0.250000 0.433013 0.000000) // v15
(-5.000000 -0.000000 1.000000) // v16
(-2.500000 -4.330127 1.000000) // v17
(0.000000 -5.000000 1.000000) // v18
(2.500000 -4.330127 1.000000) // v19
(5.000000 -0.000000 1.000000) // v20
(2.500000 4.330127 1.000000) // v21
(0.000000 5.000000 1.000000) // v22
(-2.500000 4.330127 1.000000) // v23
(-0.500000 -0.000000 1.000000) // v24
(-0.250000 -0.433013 1.000000) // v25
(0.000000 -0.500000 1.000000) // v26
(0.250000 -0.433013 1.000000) // v27
(0.500000 -0.000000 1.000000) // v28
(0.250000 0.433013 1.000000) // v29
(0.000000 0.500000 1.000000) // v30
(-0.250000 0.433013 1.000000) // v31
);

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

edges
(
arc 0 1 (-3.750000 -3.307189 0.000000) // c0
arc 1 2 (-1.250000 -4.841229 0.000000) // c1
arc 2 3 (1.250000 -4.841229 0.000000) // c2
arc 3 4 (3.750000 -3.307189 0.000000) // c3
arc 4 5 (3.750000 3.307189 0.000000) // c4
arc 5 6 (1.250000 4.841229 0.000000) // c5
arc 6 7 (-1.250000 4.841229 0.000000) // c6
arc 7 0 (-3.750000 3.307189 0.000000) // c7
arc 8 9 (-0.375000 -0.330719 0.000000) // c8
arc 9 10 (-0.125000 -0.484123 0.000000) // c9
arc 10 11 (0.125000 -0.484123 0.000000) // c10
arc 11 12 (0.375000 -0.330719 0.000000) // c11
arc 12 13 (0.375000 0.330719 0.000000) // c12
arc 13 14 (0.125000 0.484123 0.000000) // c13
arc 14 15 (-0.125000 0.484123 0.000000) // c14
arc 15 0 (-0.375000 0.330719 0.000000) // c15
arc 16 17 (-3.750000 -3.307189 1.000000) // c16
arc 17 18 (-1.250000 -4.841229 1.000000) // c17
arc 18 19 (1.250000 -4.841229 1.000000) // c18
arc 19 20 (3.750000 -3.307189 1.000000) // c19
arc 20 21 (3.750000 3.307189 1.000000) // c20
arc 21 22 (1.250000 4.841229 1.000000) // c21
arc 22 23 (-1.250000 4.841229 1.000000) // c22
arc 23 16 (-3.750000 3.307189 1.000000) // c23
arc 24 25 (-0.375000 -0.330719 1.000000) // c24
arc 25 26 (-0.125000 -0.484123 1.000000) // c25
arc 26 27 (0.125000 -0.484123 1.000000) // c26
arc 27 28 (0.375000 -0.330719 1.000000) // c27
arc 28 29 (0.375000 0.330719 1.000000) // c28
arc 29 30 (0.125000 0.484123 1.000000) // c29
arc 30 31 (-0.125000 0.484123 1.000000) // c30
arc 31 24 (-0.375000 0.330719 1.000000) // c31
);

boundary // patches
(
);

mergePatchPairs
(
        //( masterpatch slavepatch ) // define connecting faces
);

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


zfaraday November 13, 2014 13:13

The error shown by checkMesh only means that you forgot to define the boundary faces in your blockMeshDict file. By the way, two questions.

First one, you forgot to define one of the arcs, well actually you have defined it in a wrong way. This is the arc going from point 15 to point 8 that you have defined it from 15 to 0.

Second question, why are you using such an amount of blocks to create a cylinder? You can do it with less blocks. Look at your blockMeshDict modified to create your cylinder with the half of the blocks you used:


Code:

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

convertToMeters 0.1;

vertices
(
(-5.000000 -0.000000 0.000000) // v0
(-2.500000 -4.330127 0.000000) // v1
(0.000000 -5.000000 0.000000) // v2
(2.500000 -4.330127 0.000000) // v3
(5.000000 -0.000000 0.000000) // v4
(2.500000 4.330127 0.000000) // v5
(0.000000 5.000000 0.000000) // v6
(-2.500000 4.330127 0.000000) // v7
(-0.500000 -0.000000 0.000000) // v8
(-0.250000 -0.433013 0.000000) // v9
(0.000000 -0.500000 0.000000) // v10
(0.250000 -0.433013 0.000000) // v11
(0.500000 -0.000000 0.000000) // v12
(0.250000 0.433013 0.000000) // v13
(0.000000 0.500000 0.000000) // v14
(-0.250000 0.433013 0.000000) // v15
(-5.000000 -0.000000 1.000000) // v16
(-2.500000 -4.330127 1.000000) // v17
(0.000000 -5.000000 1.000000) // v18
(2.500000 -4.330127 1.000000) // v19
(5.000000 -0.000000 1.000000) // v20
(2.500000 4.330127 1.000000) // v21
(0.000000 5.000000 1.000000) // v22
(-2.500000 4.330127 1.000000) // v23
(-0.500000 -0.000000 1.000000) // v24
(-0.250000 -0.433013 1.000000) // v25
(0.000000 -0.500000 1.000000) // v26
(0.250000 -0.433013 1.000000) // v27
(0.500000 -0.000000 1.000000) // v28
(0.250000 0.433013 1.000000) // v29
(0.000000 0.500000 1.000000) // v30
(-0.250000 0.433013 1.000000) // v31
);

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

edges
(
arc 0 2 (-3.750000 -3.307189 0.000000) // c0
//arc 1 2 (-1.250000 -4.841229 0.000000) // c1
arc 2 4 (1.250000 -4.841229 0.000000) // c2
//arc 3 4 (3.750000 -3.307189 0.000000) // c3
arc 4 6 (3.750000 3.307189 0.000000) // c4
//arc 5 6 (1.250000 4.841229 0.000000) // c5
arc 6 0 (-1.250000 4.841229 0.000000) // c6
//arc 7 0 (-3.750000 3.307189 0.000000) // c7
arc 8 10 (-0.375000 -0.330719 0.000000) // c8
//arc 9 10 (-0.125000 -0.484123 0.000000) // c9
arc 10 12 (0.125000 -0.484123 0.000000) // c10
//arc 11 12 (0.375000 -0.330719 0.000000) // c11
arc 12 14 (0.375000 0.330719 0.000000) // c12
//arc 13 14 (0.125000 0.484123 0.000000) // c13
arc 14 8 (-0.125000 0.484123 0.000000) // c14
//arc 15 8 (-0.375000 0.330719 0.000000) // c15 0->8
arc 16 18 (-3.750000 -3.307189 1.000000) // c16
//arc 17 18 (-1.250000 -4.841229 1.000000) // c17
arc 18 20 (1.250000 -4.841229 1.000000) // c18
//arc 19 20 (3.750000 -3.307189 1.000000) // c19
arc 20 22 (3.750000 3.307189 1.000000) // c20
//arc 21 22 (1.250000 4.841229 1.000000) // c21
arc 22 16 (-1.250000 4.841229 1.000000) // c22
//arc 23 16 (-3.750000 3.307189 1.000000) // c23
arc 24 26 (-0.375000 -0.330719 1.000000) // c24
//arc 25 26 (-0.125000 -0.484123 1.000000) // c25
arc 26 28 (0.125000 -0.484123 1.000000) // c26
//arc 27 28 (0.375000 -0.330719 1.000000) // c27
arc 28 30 (0.375000 0.330719 1.000000) // c28
//arc 29 30 (0.125000 0.484123 1.000000) // c29
arc 30 24 (-0.125000 0.484123 1.000000) // c30
//arc 31 24 (-0.375000 0.330719 1.000000) // c31
);

boundary // patches
(
    out
    {
        type wall;
        faces
        (
            (0 2 18 16)
            (2 4 20 18)
            (4 6 22 20)
            (6 0 16 22)
        );
    }
    in
    {
        type wall;
        faces
        (
            (10 8 24 26)
            (12 10 26 28)
            (14 12 28 30)
            (8 14 30 24)
        );
    }
);

mergePatchPairs
(
        //( masterpatch slavepatch ) // define connecting faces
);

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

Try to use this file and you will get no errors!

Regards,

Alex

hwsv07 November 13, 2014 13:40

Quote:

Originally Posted by zfaraday (Post 519044)
The error shown by checkMesh only means that you forgot to define the boundary faces in your blockMeshDict file. By the way, two questions.

First one, you forgot to define one of the arcs, well actually you have defined it in a wrong way. This is the arc going from point 15 to point 8 that you have defined it from 15 to 0.

Second question, why are you using such an amount of blocks to create a cylinder? You can do it with less blocks. Look at your blockMeshDict modified to create your cylinder with the half of the blocks you used:


Code:

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

convertToMeters 0.1;

vertices
(
(-5.000000 -0.000000 0.000000) // v0
(-2.500000 -4.330127 0.000000) // v1
(0.000000 -5.000000 0.000000) // v2
(2.500000 -4.330127 0.000000) // v3
(5.000000 -0.000000 0.000000) // v4
(2.500000 4.330127 0.000000) // v5
(0.000000 5.000000 0.000000) // v6
(-2.500000 4.330127 0.000000) // v7
(-0.500000 -0.000000 0.000000) // v8
(-0.250000 -0.433013 0.000000) // v9
(0.000000 -0.500000 0.000000) // v10
(0.250000 -0.433013 0.000000) // v11
(0.500000 -0.000000 0.000000) // v12
(0.250000 0.433013 0.000000) // v13
(0.000000 0.500000 0.000000) // v14
(-0.250000 0.433013 0.000000) // v15
(-5.000000 -0.000000 1.000000) // v16
(-2.500000 -4.330127 1.000000) // v17
(0.000000 -5.000000 1.000000) // v18
(2.500000 -4.330127 1.000000) // v19
(5.000000 -0.000000 1.000000) // v20
(2.500000 4.330127 1.000000) // v21
(0.000000 5.000000 1.000000) // v22
(-2.500000 4.330127 1.000000) // v23
(-0.500000 -0.000000 1.000000) // v24
(-0.250000 -0.433013 1.000000) // v25
(0.000000 -0.500000 1.000000) // v26
(0.250000 -0.433013 1.000000) // v27
(0.500000 -0.000000 1.000000) // v28
(0.250000 0.433013 1.000000) // v29
(0.000000 0.500000 1.000000) // v30
(-0.250000 0.433013 1.000000) // v31
);

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

edges
(
arc 0 2 (-3.750000 -3.307189 0.000000) // c0
//arc 1 2 (-1.250000 -4.841229 0.000000) // c1
arc 2 4 (1.250000 -4.841229 0.000000) // c2
//arc 3 4 (3.750000 -3.307189 0.000000) // c3
arc 4 6 (3.750000 3.307189 0.000000) // c4
//arc 5 6 (1.250000 4.841229 0.000000) // c5
arc 6 0 (-1.250000 4.841229 0.000000) // c6
//arc 7 0 (-3.750000 3.307189 0.000000) // c7
arc 8 10 (-0.375000 -0.330719 0.000000) // c8
//arc 9 10 (-0.125000 -0.484123 0.000000) // c9
arc 10 12 (0.125000 -0.484123 0.000000) // c10
//arc 11 12 (0.375000 -0.330719 0.000000) // c11
arc 12 14 (0.375000 0.330719 0.000000) // c12
//arc 13 14 (0.125000 0.484123 0.000000) // c13
arc 14 8 (-0.125000 0.484123 0.000000) // c14
//arc 15 8 (-0.375000 0.330719 0.000000) // c15 0->8
arc 16 18 (-3.750000 -3.307189 1.000000) // c16
//arc 17 18 (-1.250000 -4.841229 1.000000) // c17
arc 18 20 (1.250000 -4.841229 1.000000) // c18
//arc 19 20 (3.750000 -3.307189 1.000000) // c19
arc 20 22 (3.750000 3.307189 1.000000) // c20
//arc 21 22 (1.250000 4.841229 1.000000) // c21
arc 22 16 (-1.250000 4.841229 1.000000) // c22
//arc 23 16 (-3.750000 3.307189 1.000000) // c23
arc 24 26 (-0.375000 -0.330719 1.000000) // c24
//arc 25 26 (-0.125000 -0.484123 1.000000) // c25
arc 26 28 (0.125000 -0.484123 1.000000) // c26
//arc 27 28 (0.375000 -0.330719 1.000000) // c27
arc 28 30 (0.375000 0.330719 1.000000) // c28
//arc 29 30 (0.125000 0.484123 1.000000) // c29
arc 30 24 (-0.125000 0.484123 1.000000) // c30
//arc 31 24 (-0.375000 0.330719 1.000000) // c31
);

boundary // patches
(
    out
    {
        type wall;
        faces
        (
            (0 2 18 16)
            (2 4 20 18)
            (4 6 22 20)
            (6 0 16 22)
        );
    }
    in
    {
        type wall;
        faces
        (
            (10 8 24 26)
            (12 10 26 28)
            (14 12 28 30)
            (8 14 30 24)
        );
    }
);

mergePatchPairs
(
        //( masterpatch slavepatch ) // define connecting faces
);

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

Try to use this file and you will get no errors!

Regards,

Alex

thanks! im curious. what is the 'smart' way to quickly determine the vertices order in order to define a block?

Kevin.H November 22, 2018 07:59

1 Attachment(s)
Hello :)
based on this link (https://www.ehsanmadadi.com/cylinder-mesh/) I created a hollow cylinder as .m4 file for my project. Maybe someone can use it for other tasks.
To use the file you only have to change the extension .txt to .m4.
Best regards
Kevin


All times are GMT -4. The time now is 11:49.