CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Native Meshers: blockMesh (http://www.cfd-online.com/Forums/openfoam-meshing-blockmesh/)
-   -   Problems in creating a wedge type mesh (http://www.cfd-online.com/Forums/openfoam-meshing-blockmesh/76400-problems-creating-wedge-type-mesh.html)

Joscha May 25, 2010 04:43

Problems in creating a wedge type mesh
 
Hello,

I'm a newbie with OpenFOAM.
I'd like to create a wedge type quasi 2d mesh with blockMesh.

Inside the tutorials I found a matching case: /tutorials/multiphase/interFoam/les/nozzleFlow2D .

But even with the help of this sample case and the documentation of OpenFoam I don't progress with my Problem. :confused:

My Code:

blockMeshDict.m4:
Code:/*--------------------------------*- C++
...
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// General macros to create 2D/extruded-2D meshes
changecom(//)changequote([,])
define(calc, [esyscmd(perl -e 'print ($1)')])
define(pi, 3.14159265)



*/

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *//
//Definition variabls
define(sR, 0.2) // Input value s/R !!!! This value is to be varied !!!!!
define(R, 15) // Input value R
define(s, calc(sR*R)) // calculate value s
define(a, calc(s/2)) //
calculate value a
define(b, calc(R/2)) //
calculate value b
//define(Ri, 0) //
Input value Ri - Radius Innen
define(Walpha, 5) //
Input value angle !!! input in DEG !!! FOR WEDGE 5░ !!!!
define(WalphaRAD, calc( Walpha*pi/180 ) ) // Umrechnung Winkel von DEG --> RAD (OpenFoam bzw C++ verwendet ausschlie▀lich RAD)

define(cosW, calc(cos(WalphaRAD)))
define(sinW, calc(sin(WalphaRAD)))

define(cosArc, calc(cos(WalphaRAD/2)))
define(sinArc, calc(sin(WalphaRAD/2)))


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

convertToMeters 0.01; // Umrechnung LE (LE=[cm]) in [m]
vertices
(

// ( X Y Z )
( 0 0 0 ) // Vertice0
( a 0 0 ) // Vertice1
( 100 100 100 ) // Vertice2 -- not in use!!!
( 99 99 99 ) // Vertice3 --
not in use!!!
( 0 b 0 ) // Vertice4
( a b 0 ) // Vertice5
( a calc(cosW*b) calc(-sinW*b) ) // Vertice6 [X]
( 0 calc(cosW*b) calc(-sinW*b) ) // Vertice7 [X]
( s 0 0 ) // Vertice8 !!! --
not in use!!!
( 98 98 98 ) // Vertice9 -- not in use!!!
( s b 0 ) // Vertice10 !!! --
not in use!!!
( s calc(cosW*b) calc(-sinW*b) ) // Vertice11 !!! --
not in use!!!
( 0 R 0 ) // Vertice12 !!! --
not in use!!!
( a R 0 ) // Vertice13 !!! --
not in use!!!
( a calc(cosW*R) calc(-sinW*2*b) ) // Vertice14 !!! --
not in use!!!
( 0 calc(cosW*R) calc(-sinW*2*b) ) // Vertice15 !!! --
not in use!!!
( s R 0 ) // Vertice16 !!! --
not in use!!!
( s calc(cosW*R) calc(-sinW*R) ) // Vertice17 !!! --
not in use!!!
);

blocks
(
hex (0 1 1 0 4 5 6 7) (15 25 1) simpleGrading (3 1 1) //Block 0
);

edges
(
);

patches
(
wall rotatingWall
(
(0 4 7 0)
)
empty rotAxis1
(
(0 0 1 1)
)
wall wallShroudBottom
(
(1 1 6 5)
)
wall wallShroudLateral
(
(4 5 6 7)
)
wedge front
(
(0 1 5 4)
)
wedge back
(
(1 0 7 6)
)
);

mergePatchPairs
(
);

// ************************************************** *********************** //
0/p:
...
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
rotatingWall
{
type zeroGradient;
}

rotAxis1
{
type empty;
}

wallShroudBottom
{
type zeroGradient;
}

wallShroudLateral
{
type zeroGradient;
}

front
{
type wedge;
}

back
{
type wedge;
}
}

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

0/U:

...
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
rotatingWall
{
type rotatingWallVelocity;
origin (0 0 0); // origin of axis and the axis
axis (1 0 0); // about which the wall will rotate
omega 100; // 1/s
}

rotAxis1
{
type empty;
}


wallShroudBottom
{
type fixedValue;
value uniform (0 0 0);
}

wallShroudLateral
{
type fixedValue;
value uniform (0 0 0);
}

front
{
type wedge;
}

back
{
type wedge;
}

}
// ************************************************** *********************** //


And here the error prompt I get when running blockMesh:


nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time


Creating block mesh from
"/home/cfxuser/OpenFOAM/cfxuser-1.6/run/projects/001_einfach/constant/polyMesh/blockMeshDict"


Creating blockCorners

Creating curved edges
Creating blocks
Creating patches
Creating block mesh topology
Default patch type set to empty
#0 Foam::error: :tongue:rintStack(Foam::Ostream&) in "/home/cfxuser/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#1 Foam::sigFpe::sigFpeHandler(int) in "/home/cfxuser/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#2 __restore_rt at sigaction.c:0
#3 Foam::wedgePolyPatch::initTransforms() in "/home/cfxuser/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#4 Foam::wedgePolyPatch::wedgePolyPatch(Foam::word const&, int, int, int, Foam: :tongue:PolyBoundaryMesh const&) in "/home/cfxuser/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#5 Foam: :tongue
:PolyPatch::addwordConstructorToTable<Foam::wedgePoly Patch>::New(Foam::word const&, int, int, int, Foam: :tongue:PolyBoundaryMesh const&) in "/home/cfxuser/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#6 Foam: :tongue
:PolyPatch::New(Foam::word const&, Foam::word const&, int, int, int, Foam: :tongue:PolyBoundaryMesh const&) in "/home/cfxuser/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#7 Foam: :tongue
:PolyMesh: :tongue:PolyMesh(Foam::IOobject const&, Foam::Xfer<Foam::Field<Foam::Vector<double> > > const&, Foam::List<Foam::cellShape> const&, Foam::List<Foam::List<Foam::face> > const&, Foam::List<Foam::word> const&, Foam::List<Foam::word> const&, Foam::word const&, Foam::word const&, Foam::List<Foam::word> const&, bool) in "/home/cfxuser/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#8 Foam::blockMesh::createTopology(Foam::IOdictionary &) in "/home/cfxuser/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/blockMesh"
#9 Foam::blockMesh::blockMesh(Foam::IOdictionary&) in "/home/cfxuser/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/blockMesh"
#10 main in "/home/cfxuser/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/blockMesh"
#11 __libc_start_main in "/lib64/libc.so.6"
#12 _start at /usr/src/packages/BUILD/glibc-2.9/csu/../sysdeps/x86_64/elf/start.S:116
floating point exception


Please help me with my problem, thanks in advance.

Yours Joscha

alank June 10, 2010 12:40

Wedge Geometry
 
I just had a similar problem. As mentioned in the user's guide, the wedge geometry must straddle a coordinate plane. It appears that your geometry has one face on a coordinate plane. I did the same thing, and had floating point errors until I corrected it. I hope this helps.

Joscha June 21, 2010 08:10

Quote:

Originally Posted by alank (Post 262502)
I just had a similar problem. As mentioned in the user's guide, the wedge geometry must straddle a coordinate plane. It appears that your geometry has one face on a coordinate plane. I did the same thing, and had floating point errors until I corrected it. I hope this helps.

Thanks a lot.
I corrected my blockmeshDict - file like you said. --> Problem solved

TRT March 19, 2011 08:02

Thank you, I had the same problem and after checking that I had a face in the xz plane I corrected that and it worked.

free-jet January 31, 2012 04:13

Quote:

Originally Posted by alank (Post 262502)
As mentioned in the user's guide, the wedge geometry must straddle a coordinate plane. It appears that your geometry has one face on a coordinate plane.

I have exactly the same problem with my 2d axisymmetric geometry. I am not quite familiar with openfoam and I am not sure to understand what I have to do.

If I understand well, the first points define the coordinate planes, so I don't see how a geometry can have no face on a coordinate plane.

Sorry if my question seems stupid but I really need your help.
Here is my (very simple) code:

vertices
(
(0 0 0) //0
(2000 0 0) //1
(2000 17 0) //2
(0 17 0) //3
(0 0 500) //4
(2000 0 500) //5
);

blocks
(
hex (0 1 2 3 4 5 5 4)
(2000 1 500)
simpleGrading (1 1 1)
);

edges
(
);

patches
(
empty axis
(
(4 5 5 4)
)

wedge front
(
(0 4 5 1)
)

wedge back
(
(2 5 4 3)
)

patch inlet
(
(2 1 5 5)
)

patch outlet
(
(0 1 2 3)
(4 0 3 4)
)

);

TRT January 31, 2012 06:56

Your front wedge is on the x,z plane, all points have y = 0. Maybe you can solve that by displacing all points in the y direction, i.e. use y = 1 and y = 18 on the z = 0 edges. Or by using symmetrical points, i.e. points with y = -17 and with y = 17 for the z = 0 edges.

Check this mesh I made recently, It's for OpenFOAM 2.0 and has several blocks, but it is not really complicated. It's a small rocket nozzle.

Code:

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

convertToMeters 0.001;

vertices       
(
        //Axis Points
        (-58.59 0 0)                //0
        (-10.1752 0 0)        //1
        (4.4139 0 0)                //2
        (38.94 0 0)                //3
       
        //Nozzle Points (Front)
        (-58.59 39.6004478247 1.9816740616)        //4
        (-10.1752 19.9750052079 0.9995833854)        //5
        (4.4139 18.4381283072 0.9226754397)        //6
        (38.94 24.1198187885 1.2069969379)                //7
       
        //Nozzle Points (Back)
        (-58.59 39.6004478247 -1.9816740616)        //8
        (-10.1752 19.9750052079 -0.9995833854)        //9
        (4.4139 18.4381283072 -0.9226754397)        //10
        (38.94 24.1198187885 -1.2069969379)        //11
);

blocks         
(
        hex (0 1 1 0 4 5 9 8) (40 1 30) simpleGrading (0.33 1 0.05)
        hex (1 2 2 1 5 6 10 9) (20 1 30) simpleGrading (1 1 0.05)
        hex (2 3 3 2 6 7 11 10) (30 1 30) simpleGrading (3 1 0.05)
);

edges         
(
        arc 4 8  (-58.59 39.65 0)
        arc 5 9  (-10.1752 20 0)
        arc 6 10 (4.4139 18.4612 0)
        arc 7 11 (38.94 24.15 0)
       
        arc 5 6  (0 18.0773797131 0.9046229638)
        arc 9 10 (0 18.0773797131 -0.9046229638)
);

boundary
(
    inlet
    {
        type patch;
        faces
        (
            (0 0 4 8)
        );
    }
    outlet
    {
        type patch;
        faces
        (
            (3 3 11 7)
        );
    }
    nozzle
    {
        type wall;
        faces
        (
            (4 5 9 8)
            (5 6 10 9)
            (6 7 11 10)
        );
    }
    sideFront
    {
        type wedge;
        faces
        (
            (0 1 5 4)
            (1 2 6 5)
            (2 3 7 6)
        );
    }
    sideBack
    {
        type wedge;
        faces
        (
            (1 0 8 9)
            (2 1 9 10)
            (3 2 10 11)
        );
    }
    axis
    {
        type empty;
        faces
        (
            (0 0 1 1)
            (1 1 2 2)
            (2 2 3 3)
        );
    }
);

mergePatchPairs
(
);

Notice how I used two symmetrical faces with respect to the x,y plane (the z coordinates are opposite in sign for each wedge face).

free-jet February 7, 2012 09:55

Thank you very much TRT!
I managed to create my geometry.
However, I have another problem when I try to compile with simpleFoam.
It is not the subject of the original post but maybe you can help me once more.
Here is the massage:

--> FOAM FATAL IO ERROR:
keyword div((nuEff*dev(grad(U).T()))) is undefined in dictionary "/home/nhurel/BE/simulations_OpenFoam/2d_axisymetrique/jet_libre/test_sans_6_7/system/fvSchemes::divSchemes"

file: /home/nhurel/BE/simulations_OpenFoam/2d_axisymetrique/jet_libre/test_sans_6_7/system/fvSchemes::divSchemes from line 32 to line 39.

From function dictionary::lookupEntry(const word&, bool, bool) const
in file db/dictionary/dictionary.C at line 395.

FOAM exiting



And here is my fvSchemes file:

FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

ddtSchemes
{
default steadyState;
}

gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
grad(U) Gauss linear;
}

divSchemes
{
default none;
div(phi,U) Gauss upwind;
div(phi,k) Gauss upwind;
div(phi,epsilon) Gauss upwind;
div(phi,R) Gauss upwind;
div(R) Gauss linear;
div(phi,nuTilda) Gauss upwind;
div((nuEff*dev(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
default none;
laplacian(nuEff,U) Gauss linear corrected;
laplacian((1|A(U)),p) Gauss linear corrected;
laplacian(DkEff,k) Gauss linear corrected;
laplacian(DepsilonEff,epsilon) Gauss linear corrected;
laplacian(DREff,R) Gauss linear corrected;
laplacian(DnuTildaEff,nuTilda) Gauss linear corrected;
}

interpolationSchemes
{
default linear;
interpolate(U) linear;
}

snGradSchemes
{
default corrected;
}

fluxRequired
{
default no;
p ;
}



Thanks a lot once more!

TRT February 7, 2012 10:43

I am not sure, since I have never touched the schemes file. However your error is:
Code:

div((nuEff*dev(grad(U).T()))) undefined
but you have the definition for:
Code:

div((nuEff*dev(T(grad(U)))))
which is identical, I think, with the product of T and grad(U) commuted. Maybe your version of OpenFOAM doesn't match the one of this file, not sure. You can try to add the following line to your schemes file, just before the end of the divSchemes section, i.e.
Code:

divSchemes
{
[...]
div((nuEff*dev(grad(U).T()))) Gauss linear;
}

Keep the other lines. However I would recommend to keep the thread on its topic and create a new one for other problems (or for general help), probably more people will be able to help you.

I hope this helps!

free-jet February 10, 2012 05:07

Indeed it works!
Thank you very very much! :)

miael February 13, 2012 06:29

Hello everybody,

I just built the nozzle, which TRT posted bevore and I got the checkMesh error message:

***Number of edges not aligned with or perpendicular to non-empty directions

I read some threads to this topic, but I think that the nozzle-mesh is quite correct.
I use OpenFoam-1.6-ext, could this be the "failure".

Thanks

Michael

TRT February 13, 2012 06:45

Take into account that the nozzle I posted is for OpenFOAM 2.0. The boundary definitions have changed a lot, maybe there is the problem as you said. For exemple:

OpenFOAM 1.7.1:
Code:

patches       
(
    wall nozzle
    (
            (4 5 9 8)
            (5 6 10 9)
            (6 7 11 10)
    )

    [...]

);

OpenFOAM 2.0:
Code:

boundary
(
    nozzle
    {
        type wall;
        faces
        (
            (4 5 9 8)
            (5 6 10 9)
            (6 7 11 10)
        );
    }

    [...]

);

I'm not sure if there are other significant changes. I hope this helps!

miael February 13, 2012 07:32

Thanks for your reply,

I adapted your blockMeshDict to my version, so everything regarded to the blockMeshDict is fine. For the first simulations, a simple pipeflow, I ignored the errors and run the case and this seems to work.
Interesting is also the fact, that checkMesh collect every point as "not aligned with or perpendicular to non-empty directions". But with foamToVTK you can see no points in paraView!
Do you get any error message with OF-2.0?

Greetings

Michael

MadEyeMoody April 2, 2013 04:28

hello,
I have recently started using Openfoam. I need to form a wedge mesh for Axis symmetric jet. M getting the following error:

/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 2.1.1-221db2718bbb
Exec : blockMesh
Date : Mar 30 2013
Time : 11:43:26
Host : "ubuntu"
PID : 5658
Case : /home/striker/Desktop/jet
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Disallowing user-supplied system call operations

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

Creating block mesh from
"/home/striker/Desktop/jet/constant/polyMesh/blockMeshDict"
Creating curved edges
Creating topology blocks
Creating topology patches

Creating block mesh topology

Check topology

Basic statistics
Number of internal faces : 1
Number of boundary faces : 10
Number of defined boundary faces : 10
Number of undefined boundary faces : 0
Checking patch -> block consistency

Creating block offsets
Creating merge list

--> FOAM FATAL ERROR:
Inconsistent number of faces between block pair 0 and 1

From function blockMesh::calcMergeInfo()
in file blockMesh/blockMeshMerge.C at line 221.

FOAM exiting


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

convertToMeters 0.01;

vertices
(
(0 -0.034899 0.99939) //vertex 0
(150 -0.034899 0.99939) //vertex 1
//(0 0 150)
//(0 0 0)
(150 0.034899 0.99939) //vertex 2
(0 0.034899 0.99939) //vertex 3
(0 -3.4899 99.939) //vertex 4
(150 -3.4899 99.939) //vertex 5
(150 3.4899 99.939) //vertex 6
(0 3.4899 99.939) //vertex 7
(0 0 0) //vertex 8
(150 0 0) //vertex 9

);

blocks
(
hex (8 9 9 8 0 1 2 3) (1 2 50) simpleGrading (1 1 1)
hex (0 1 2 3 4 5 6 7) (1 198 50) simpleGrading (1 1 1)
);

edges
(
arc 0 3 (0 0 1)
arc 1 2 (150 0 1)
arc 4 7 (0 0 100)
arc 5 6 (150 0 100)
);

boundary
(
Wall2
{
type wall;
faces ((0 4 7 3) //The wall above the jet
);
}
Wedgeplanes
{
type patch;
faces ((1 0 8 9)
(5 4 0 1)
(8 3 2 9)
(3 7 6 2)
);
}
axis
{
type empty;
faces ((9 8 8 9)
);
}


faroffWall
{
type patch;
faces ((4 5 6 7)
);
}



inlet
{
type patch;
faces ((8 0 3 8)
);
}


outlet
{
type patch;
faces ((9 2 1 9)
(2 6 5 1)
);
}

);

mergePatchPairs
(
);

//************************************************** *********************** //
Can someone please help in rectifying the error?
Thanks in Advance!

colinB April 2, 2013 05:49

Hey


--> FOAM FATAL ERROR:
Inconsistent number of faces between block pair 0 and 1

means in one of the directions the number of cells is not the same
as on the adjunct edge dependant on how the edges are oriented
or that the grading is not consistent

regards

sh.d June 2, 2013 02:53

1 Attachment(s)
hi
i want to creat a c-meh in blockmesh
please please can you help me?
there is this error:
Create time

Creating block mesh from
"/home/shirin/OpenFOAM/shirin-2.1.x/run/tutorials/mesh/snapp/block/constant/polyMesh/blockMeshDict"
Creating curved edges
Creating topology blocks
Creating topology patches

Check topology
#0 Foam::error::printStack(Foam::Ostream&) in "/opt/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64Gcc46DPOpt/lib/libOpenFOAM.so"
#1 Foam::sigSegv::sigHandler(int) in "/opt/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64Gcc46DPOpt/lib/libOpenFOAM.so"
#2 in "/lib64/libc.so.6"
#3 Foam::blockMesh::checkBlockMesh(Foam::polyMesh const&) const in "/opt/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64Gcc46DPOpt/lib/libblockMesh.so"
#4 Foam::blockMesh::createTopology(Foam::IOdictionary const&, Foam::word const&) in "/opt/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64Gcc46DPOpt/lib/libblockMesh.so"
#5 Foam::blockMesh::blockMesh(Foam::IOdictionary const&, Foam::word const&) in "/opt/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64Gcc46DPOpt/lib/libblockMesh.so"
#6
in "/opt/OpenFOAM/OpenFOAM-2.1.x/platforms/linux64Gcc46DPOpt/bin/blockMesh"
#7 __libc_start_main in "/lib64/libc.so.6"
#8
at /home/abuild/rpmbuild/BUILD/glibc-2.14.1/csu/../sysdeps/x86_64/elf/start.S:116
Segmentation fault

Yosmcer June 2, 2013 04:27

2 Attachment(s)
Hello sh.d,

As I understand, the software has a problem to merge the face 3 10 8 1 between the wedge and the hex (and for the other wedge, 3 10 12 5) because there are a face in 1 8 8 1.
So a solution could be to put the 0 faces at the nose of your mesh, so in 0 7 7 0.

I tried this and it works*:

Code:

    hex (0 3 1 0 7 10 8 7) (6 4 1) simpleGrading (1 1 1)
    hex (3 4 2 1 10 11 9 8) (6 4 1) simpleGrading (1 1 1)
    hex (0 5 3 0  7 12 10 7) (6 4 1) simpleGrading (1 1 1)
    hex (5 6 4 3 12 13 11 10) (6 4 1) simpleGrading (1 1 1)

If you really want the O face at the 8 1 and 12 5 place, maybe try an other way of numbering the wedge.


*I just tested the blocks, I deleted all the boundary definition and the curved edges for my try. So it might be errors theres. I checked the blocks with 'paraFoam -block".
Be careful for your face definition in the boundary section: (0 1 7 8) is not correct, (0 7 8 1) is better; (13 4 11 6) is incorrect, (13 6 4 11) is better.
(7 10 8) should be (7 10 8 7), same for the other 'triangular" faces (note that I use the new block definition I suggested here).

[EDIT]
after corrected the patches error, I get this mesh (attached, and blockMeshDict used too).

sh.d June 2, 2013 09:59

thank you very very much

psk July 28, 2013 13:22

Good Day ...

thanasis January 10, 2014 16:59

importance of starting vertex index in boundary patch
 
I have created a blockMeshDict file to generate a 2D cylindrical wedge, split in 4 parts, so that I can apply different grading. I am currently working in OpenFoam 2.2.1. You can find the file below. The blockMesh utility was giving me an error message:

Code:

face 0 in patch 1 does not have neighbour cell face: 4(0 3 9 0)
I eventually managed to make it work by just changing the staring vertex in the particular face to (3 9 0 0). Note that the right hand rule was correct in both cases. I found out that a similar problem occurs also at the outlet, where only the (2 11 5 2) ordering works.

As I spent a lot of time trying to figure out this "bug", I wanted to share this with you.

Code:

FoamFile
{
version    2.0;
format      ascii;
class      dictionary;
object      blockMeshDict;
}

convertToMeters  0.001;

vertices
(
  (0 0 0)
  (50 0 0)
  (100 0 0)
  (0 49.9524 2.18097)
  (50 49.9524 2.18097)
  (100 49.9524 2.18097)
  (0 99.9048 4.36194)
  (50 99.9048 4.36194)
  (100 99.9048 4.36194)
  (0 49.9524 -2.18097)
  (50 49.9524 -2.18097)
  (100 49.9524 -2.18097)
  (0 99.9048 -4.36194)
  (50 99.9048 -4.36194)
  (100 99.9048 -4.36194)
);

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

edges
(
  arc 6 12 (0 100 0)
  arc 7 13 (50 100 0)
  arc 8 14 (100 100 0)
);

boundary
(
  axis
  {
      type  empty;
      faces
      (
        (0 1 1 0)
        (1 2 2 1)
      );
  }

  inlet
  {
      type  patch;
      faces
      (
        (3 9 0 0)
        (3 6 12 9)
      );
  }

  outlet
  {
      type  patch;
      faces
      (
        (2 11 5 2)
        (8 5 11 14)
      );
  }

  front
  {
      type wedge;
      faces
      (
        (0 1 4 3)
        (1 2 5 4)
        (3 4 7 6)
        (4 5 8 7)
      );
  }

  back
  {
      type wedge;
      faces
      (
        (0 9 10 1)
        (1 10 11 2)
        (9 12 13 10)
        (10 13 14 11)
      );
  }

  walls
  {
      type wall;
      faces
      (
        (6 7 13 12)
        (7 8 14 13)
      );
  }

);

mergePatchPairs
(
);


bullmut February 15, 2015 11:35

Wedge trouble
 
1 Attachment(s)
Hi can anyone tell me what i am defining wrong in my blockMesh?
I followed this thread for the way to make a wedge using the hex definition in openFoam but i am still getting an error...

Creating curved edges
Creating topology blocks
Creating topology patches

Creating block mesh topology


--> FOAM FATAL ERROR:
face 2 in patch 1 does not have neighbour cell face: 4(7 8 17 16)

Please find my BlockMeshDict attached.. any help would be appreciated.


All times are GMT -4. The time now is 17:54.