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

[mesh manipulation] Split airfoil in pressure and suction side

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 23, 2022, 09:21
Default Split airfoil in pressure and suction side
  #1
New Member
 
Giacomo
Join Date: Feb 2022
Location: Stockholm, Sweden
Posts: 4
Rep Power: 4
gisc is on a distinguished road
Hello there,
I'm new to OpenFOAM (v2106) and this forum!

I want to mesh a NACA4412 airfoil, and for time purpose I've chosen the tool construct2D. For the post-processing, it'd be handy to split the airfoil in two patches, pressure side and suction side.

Unfortunately, that's is not done by construct2D, which creates a single patch for the whole airfoil; therefore, my idea is to use some OpenFOAM tools in order to achieve that.

For importing the mesh in OpenFOAM, I apply the same procedure described by Mikko here; the only difference it's the grid mesh type, a C-GRID due to the sharp TE, and the name of the wall patch, for me SS.

Consequently, I'd like to use the tools topoSet and createPacth tools for splitting the airfoil in pressure and suction side. My idea is to import the airfoil patch as a face, and then to delete half of it through the boxToFace tool (different purpose, but i got inspired from here).

Unfortunately OpenFOAM crashes when I give the topoSet command with the following error:
Code:
--> FOAM FATAL IO ERROR: (openfoam-2106 patch=211215)
Entry 'object' not found in dictionary ""


    From bool Foam::dictionary::readEntry(const Foam::word&, T&, Foam::keyType::option, bool) const [with T = Foam::word]
    in file /usr/src/packages/BUILD/src/OpenFOAM/lnInclude/dictionaryTemplates.C at line 334.

 FOAM exiting
This is the topoSetDict I use:
Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system"
    object      topoSetDict;
}

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

actions
(
    {
        name    PSPatch;
        type    faceSet;
        action  new;
        source  patchToFace;
        sourceInfo
        {
            name SS;
        }
    }

    {
        name    PSPatch;
        type    faceSet;
        action  delete;
        source  boxToFace;
        sourceInfo
        {
            box ( (-0.004 0.055 0) (1.005 0.035 1) );
        }

    }
);
As I can't understand what i'm doing wrong, therefore any help will be appreciate.

If this procedure would have succeed, the following is the createPatchDict I was going to use; note I have not still defined the SSPatch from topoSet, and also the name of the wall patch used in the former topoSetDict will be different (auto3):

Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      createPatchDict;
}

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

pointSync false;

//Patches to create.

patches
(
    {
        name PS;
        patchInfo
        {
            type wall;
        }
        constructFrom set;
        set PSPatch;
    }
    {
        name SS;
        patchInfo
        {
            type wall;
        }
        constructFrom set;
        set SSPatch;
    }
    {
        name frontAndBack;
        patchInfo
        {
            type empty;
        }
        constructFrom patches;
        patches (auto0 auto1);
    }
    {
        name inlet;
        patchInfo
        {
            type patch;
        }
        constructFrom patches;
        patches (auto4);
    }
    {
        name outlet;
        patchInfo
        {
            type patch;
        }
        constructFrom patches;
        patches (auto2);
    }


 );
Thanks in advance for any help and suggestion about these tools!

Last edited by gisc; March 1, 2022 at 11:44.
gisc is offline   Reply With Quote

Old   March 8, 2022, 06:50
Default [SOLVED] Split airfoil in pressure and suction side
  #2
New Member
 
Giacomo
Join Date: Feb 2022
Location: Stockholm, Sweden
Posts: 4
Rep Power: 4
gisc is on a distinguished road
The error in the previous topoSetDict file a missing semicolumn after "system".


I also managed to split the airfoil in pressure and suction side. I applied the following procedure on a mesh generated by the tool construct2d.


N.B. the airfoil has been set at 5° angle of attack.



Code:
plot3dToFoam <meshname>.p3d -2D 1 -singleBlock -noBlank

Code:
autoPatch 45 -overwrite

Code:
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      topoSetDict;
}

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

actions
(
    {
        name    wall;
        type    faceSet;
        action  new;
        source  patchToFace;
        sourceInfo
        {
            patch       auto3;
        }
    }
    {
        name    SSPatch;
        type    faceSet;
        action  new;
        source  faceToFace;
        sourceInfo
        {
            set     wall;
        }
    }
    {
        name    PSPatch;
            type        faceSet;
            action      new;
            source      faceToFace;
            sourceInfo
            {
                set     wall;
            }
    }
    {
        name    SScells;
        type    cellSet;
        action  new;
        source  rotatedBoxToCell;
        sourceInfo
        {
            origin  (-0.004 0.055 -1); //(1.005 0.035 1)
            i       (1.001 -0.0899 0);
            j       (0.0031 0.0349 0);
            k       (0 0 2);
        }

    }
    {
            name        PScells;
            type        cellSet;
            action      new;
            source      rotatedBoxToCell;
            sourceInfo
            {
                origin  (-0.001 0.0899 -1); //(1.0051 0.1 1)
                i       (1.001 -0.0899 0);
                j       (0.0089 0.0996 0);
                k       (0 0 2);
            }
    }
    {
        name    SSfaces;
        type    faceSet;
        action  new;
        source  cellToFace;
        sourceInfo
        {
            set     SScells;
            option  all;
        }
    }
    {
        name    PSfaces;
        type    faceSet;
        action  new;
        source  cellToFace;
        sourceInfo
        {
            set     PScells;
            option  all;
        }
    }
    {
        name    SSPatch;
        type    faceSet;
        action  delete;
        source  faceToFace;
        sourceInfo
        {
            set     SSfaces;
        }
    }
    {
        name    PSPatch;
        type    faceSet;
        action  delete;
        source  faceToFace;
        sourceInfo
        {
            set     PSfaces;
        }
    }
);

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

Code:
createPatch -overwrite
gisc is offline   Reply With Quote

Reply

Tags
airfoil 2d, openfoam, patches, toposet, toposetdict


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
Pointwise create good mesh on wing suction side, but poor mesh on pressure side quarkz Pointwise & Gridgen 2 August 31, 2020 23:28
Suction pressure distribution at the bottom caused by a ship propeller loewieke53 OpenFOAM Running, Solving & CFD 0 April 6, 2020 06:41
Modeling transient negative pressure (suction pressure) in outlet N_mrtz FLUENT 1 July 18, 2013 20:59
How to handle suction and pressure side of an airfoil as two different parts? TKE ANSYS Meshing & Geometry 4 March 17, 2011 06:49
How to handle suction and pressure side of an airfoil as two different parts? TKE ANSYS Meshing & Geometry 0 March 4, 2011 07:48


All times are GMT -4. The time now is 09:34.