CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > General Forums > Main CFD Forum

sub-division mismatch in 2d wedge

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   October 4, 2022, 15:52
Default sub-division mismatch in 2d wedge
  #1
New Member
 
Join Date: Sep 2022
Posts: 6
Rep Power: 3
chrisyang is on a distinguished road
Hi, I am kind of new in Openfoam and blockMeshDict. I am working on a 2D axisymmetric wedge case with two nonlinear edges in the bottom faces and here is my blockMeshDict:

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

scale   0.001;

n   100;                           //power
a   0.15;                          //ridge amplitude
lambda   4;                        //wavelength of ridge
halfAngle   2.5;                   //half angle of wedge in degrees
offset   90;
maxX    #eval{ $lambda*cos(degToRad($halfAngle)) };    //vertices 2,3,7,8 x-coordinates
maxY    #eval{ $lambda*sin(degToRad($halfAngle)) };    //vertices 2,3,7,8 y-coordinates abs


//interpolation points x-y-z coordinates 
r1   0.1;            
x1   #calc  "$r1*cos(degToRad($halfAngle))";
y1   #calc  "$r1*sin(degToRad($halfAngle))";
z1   #calc  "$a*Foam::pow(sin($r1/$lambda + degToRad($offset)), $n)";

r2   0.2;
x2   #calc  "$r2*cos(degToRad($halfAngle))";
y2   #calc  "$r2*sin(degToRad($halfAngle))";
z2   #calc  "$a*Foam::pow(sin($r2/$lambda + degToRad($offset)), $n)";

r3   0.3;
x3   #calc  "$r3*cos(degToRad($halfAngle))";
y3   #calc  "$r3*sin(degToRad($halfAngle))";
z3   #calc  "$a*Foam::pow(sin($r3/$lambda + degToRad($offset)), $n)";

r4   0.4;
x4   #calc  "$r4*cos(degToRad($halfAngle))";
y4   #calc  "$r4*sin(degToRad($halfAngle))";
z4   #calc  "$a*Foam::pow(sin($r4/$lambda + degToRad($offset)), $n)";

r5   0.5;
x5   #calc  "$r5*cos(degToRad($halfAngle))";
y5   #calc  "$r5*sin(degToRad($halfAngle))";
z5   #calc  "$a*Foam::pow(sin($r5/$lambda + degToRad($offset)), $n)";

r6   0.6;
x6   #calc  "$r6*cos(degToRad($halfAngle))";
y6   #calc  "$r6*sin(degToRad($halfAngle))";
z6   #calc  "$a*Foam::pow(sin($r6/$lambda + degToRad($offset)), $n)";

r7   0.7;
x7   #calc  "$r7*cos(degToRad($halfAngle))";
y7   #calc  "$r7*sin(degToRad($halfAngle))";
z7   #calc  "$a*Foam::pow(sin($r7/$lambda + degToRad($offset)), $n)";

r8   0.8;
x8   #calc  "$r8*cos(degToRad($halfAngle))";
y8   #calc  "$r8*sin(degToRad($halfAngle))";
z8   #calc  "$a*Foam::pow(sin($r8/$lambda + degToRad($offset)), $n)";

r9   0.9;
x9   #calc  "$r9*cos(degToRad($halfAngle))";
y9   #calc  "$r9*sin(degToRad($halfAngle))";
z9   #calc  "$a*Foam::pow(sin($r9/$lambda + degToRad($offset)), $n)";

r10  1.0;
x10  #calc  "$r10*cos(degToRad($halfAngle))";
y10  #calc  "$r10*sin(degToRad($halfAngle))";
z10  #calc  "$a*Foam::pow(sin($r10/$lambda + degToRad($offset)), $n)";

r11  1.1;
x11  #calc  "$r11*cos(degToRad($halfAngle))";
y11  #calc  "$r11*sin(degToRad($halfAngle))";
z11  #calc  "$a*Foam::pow(sin($r11/$lambda + degToRad($offset)), $n)";

r12  1.2;
x12  #calc  "$r12*cos(degToRad($halfAngle))";
y12  #calc  "$r12*sin(degToRad($halfAngle))";
z12  #calc  "$a*Foam::pow(sin($r12/$lambda + degToRad($offset)), $n)";

r13  1.3;
x13  #calc  "$r13*cos(degToRad($halfAngle))";
y13  #calc  "$r13*sin(degToRad($halfAngle))";
z13  #calc  "$a*Foam::pow(sin($r13/$lambda + degToRad($offset)), $n)";

r14  1.4;
x14  #calc  "$r14*cos(degToRad($halfAngle))";
y14  #calc  "$r14*sin(degToRad($halfAngle))";
z14  #calc  "$a*Foam::pow(sin($r14/$lambda + degToRad($offset)), $n)";

r15  1.5;
x15  #calc  "$r15*cos(degToRad($halfAngle))";
y15  #calc  "$r15*sin(degToRad($halfAngle))";
z15  0;

vertices
(
    (0 0 $a)                     //0
    ($x15 $y15 $z15)             //1
    ($maxX $maxY 0)              //2
    ($maxX $maxY 4)              //3
    ($x15 $y15 4)                //4
    (0 0 4)                      //5
    ($x15 #eval{-1*$y15} $z15)   //6
    ($maxX #eval{-1*$maxY} 0)    //7
    ($maxX #eval{-1*$maxY} 4)    //8
    ($x15 #eval{-1*$y15} 4)      //9
    
    
);

blocks
(
    hex (0 6 1 0 5 9 4 5) (60 1 100) simpleGrading (1 1 10)
    hex (1 6 7 2 4 9 8 3) (20 1 100) simpleGrading (10 1 10)
    
);

edges
(
    spline 0 1 
    (
        (0 0 $a)
        ($x1 $y1 $z1)//($x1 $y1 0.145380)
	($x2 $y2 $z2)//($x2 $y2 0.132370)
	($x3 $y3 $z3)//($x3 $y3 0.113200)
	($x4 $y4 $z4)//($x4 $y4 0.090900)
	($x5 $y5 $z5)//($x5 $y5 0.068540)
	($x6 $y6 $z6)//($x6 $y6 0.048490)
	($x7 $y7 $z7)//($x7 $y7 0.032190)
	($x8 $y8 $z8)//($x8 $y8 0.020030)
	($x9 $y9 $z9)//($x9 $y9 0.011680)
	($x10 $y10 $z10)//($x10 $y10 0.006380)
	($x11 $y11 $z11)
	($x12 $y12 $z12)
	($x13 $y13 $z13)
	($x14 $y14 $z14)
	($x15 $y15 $z15)
    )

    spline 0 6
    (
        (0 0 $a)
        ($x1 #eval{-1*$y1} $z1)
	($x2 #eval{-1*$y2} $z2)
	($x3 #eval{-1*$y3} $z3)
	($x4 #eval{-1*$y4} $z4)
	($x5 #eval{-1*$y5} $z5)
	($x6 #eval{-1*$y6} $z6)
	($x7 #eval{-1*$y7} $z7)
	($x8 #eval{-1*$y8} $z8)
	($x9 #eval{-1*$y9} $z9)
	($x10 #eval{-1*$y10} $z10)
	($x11 #eval{-1*$y11} $z11)
	($x12 #eval{-1*$y12} $z12)
	($x13 #eval{-1*$y13} $z13)
	($x14 #eval{-1*$y14} $z14)
	($x15 #eval{-1*$y15} $z15)
    )
);

boundary
(
    
    lowerWall
    {
        type wall;
        faces
        (
            (0 6 1 0)
	    (1 6 7 2)
          
        );
    }
    atmosphere
    {
        type patch;
        faces
        (
            (5 9 4 5)
	    (4 9 8 3)
            (2 7 8 3)
           
        );
    }
    axis
    {
        type empty;
	faces
        (
            (0 5 5 0)
	);
    }
    front
    {
	type wedge;
	faces
        (
	     (0 1 4 5)
	     (1 2 3 4)
	);
    }
    back
    {
	type wedge;
	faces
        (
	      (0 5 9 6)
	      (6 9 8 7)
        );
    }
);

mergePatchPairs
(
);

// ************************************************************************* //
I can use blockMesh to create the geometry except there is issue with front and back surfaces... However, the major error I get is the sub-division mismatch between two blocks. And this is how it looks like:

Code:
Creating block edges
No non-planar block faces defined
Creating topology blocks
Creating topology patches

Creating block mesh topology
--> FOAM Warning :
    From virtual void Foam::wedgePolyPatch::calcGeometry(Foam::PstreamBuffers&)
    in file meshes/polyMesh/polyPatches/constraint/wedge/wedgePolyPatch.C at line 72
    Wedge patch 'front' is not planar.
At local face at (0.754058 0.0329229 2.03726) the normal (-0.0436195 0.999048 0) differs from the average normal (-0.0436194 0.999048 6.93889e-19) by 4.14191e-15
Either correct the patch or split it into planar parts
--> FOAM Warning :
    From virtual void Foam::wedgePolyPatch::calcGeometry(Foam::PstreamBuffers&)
    in file meshes/polyMesh/polyPatches/constraint/wedge/wedgePolyPatch.C at line 72
    Wedge patch 'front' is not planar.
At local face at (2.74738 0.119953 2) the normal (-0.0436193 0.999048 1.38778e-18) differs from the average normal (-0.0436194 0.999048 6.93889e-19) by 4.14191e-15
Either correct the patch or split it into planar parts
--> FOAM Warning :
    From virtual void Foam::wedgePolyPatch::calcGeometry(Foam::PstreamBuffers&)
    in file meshes/polyMesh/polyPatches/constraint/wedge/wedgePolyPatch.C at line 72
    Wedge patch 'back' is not planar.
At local face at (0.754058 -0.0329229 2.03726) the normal (-0.0436194 -0.999048 0) differs from the average normal (-0.0436195 -0.999048 6.93889e-19) by 6.23259e-15
Either correct the patch or split it into planar parts
--> FOAM Warning :
    From virtual void Foam::wedgePolyPatch::calcGeometry(Foam::PstreamBuffers&)
    in file meshes/polyMesh/polyPatches/constraint/wedge/wedgePolyPatch.C at line 72
    Wedge patch 'back' is not planar.
At local face at (2.74738 -0.119953 2) the normal (-0.0436196 -0.999048 1.38778e-18) differs from the average normal (-0.0436195 -0.999048 6.93889e-19) by 6.23259e-15
Either correct the patch or split it into planar parts

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 (topological search)..

--> FOAM FATAL ERROR: (openfoam-2012)
Sub-division mismatch between face 1 of block 0(2 101) and face 2 of block 1(21 101)

    From void Foam::blockMesh::calcTopologicalMerge()
    in file blockMesh/blockMeshMergeTopological.C at line 414.

FOAM exiting
I am curious is there any possibility to know where the issue might be since I have checked with geometry couple times. I would be extremely appreciated for any help!

Chris
chrisyang is offline   Reply With Quote

Reply


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
chtMultiRegionFoam: two fluid regions separated by a thin, conducting wall JayDeeUU OpenFOAM Pre-Processing 16 July 22, 2021 21:17
[Other] Wedge patch '*' is not planar LilumDaru OpenFOAM Meshing & Mesh Conversion 6 January 12, 2021 05:55
Axisymmetric Whirl BCs; Wedge or Cyclic? c_dowd OpenFOAM Pre-Processing 4 December 5, 2012 10:38
Wedge and morpher Henry Arrigo STAR-CCM+ 5 July 6, 2012 18:34
Wall boundary is ignored when using wedge Wedge OpenFOAM 1 February 7, 2011 06:20


All times are GMT -4. The time now is 01:36.