CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Pre-Processing

MRF Simulation of Radialpump unsure of right Boundaryconditions

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 5, 2024, 07:47
Question MRF Simulation of Radialpump unsure of right Boundaryconditions
  #1
New Member
 
Daniel
Join Date: Feb 2024
Location: Austria
Posts: 5
Rep Power: 2
dnl_xr is on a distinguished road
Hello users,



my plan is to to a MRF Simulation of one blade of a Pump with cyclic conditions. Note the Point (0 0 0) ist not located at the patch of the inlet, its +50 in z above.

Im using the SpalartAllmaras turbulence modell with simpleFoam solver.



This is the Frame:
Runner2.jpg




on the bottom the inlet (IF_LAUF_SAUGROHR) at the top the outlet ( IF_LAUF_LEIT).



Rotation in pos in z achsis with following boundary conditions:



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       volScalarField;
    location    "0";
    object      nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -1 0 0 0 0];

internalField   uniform 1e-5;

boundaryField
{

    IF_LAUF_LEIT
    {   
        type            calculated;
        value           $internalField;
    }

    IF_LAUF_SAUGROHR
    {
        type            calculated;
        value           $internalField;
    }
    
    "(cP_cyclicA|cP_cyclicB)"
    {   
        type            cyclic;
    }
    
    "(NABE|KRANZ|SCHAUFEL)"
    {   
        type            nutUBlendedWallFunction;
        value           uniform 0;
    }

}

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

dimensions      [0 2 -1 0 0 0 0];

internalField   uniform 7.5e-05;

boundaryField
{
    IF_LAUF_LEIT
    {


        type            inletOutlet;
    inletValue    $internalField;
        value           $internalField;

    }

    IF_LAUF_SAUGROHR
    {
    type            fixedValue;
        value           $internalField;
    }

    "(cP_cyclicA|cP_cyclicB)"
    {
        type            cyclic;
    }

    "(NABE|KRANZ|SCHAUFEL)"
    {
        type            fixedValue;
        value           uniform 0;
    }

}
// ************************************************************************* //
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       volScalarField;
    object      p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 2 -2 0 0 0 0];

internalField   uniform 0;



boundaryField
{
    IF_LAUF_LEIT        
    {

        type            fixedMean;
        meanValue       0.0;
        value           uniform 0.0;
    }
    
    IF_LAUF_SAUGROHR    
    {   
        type            zeroGradient;
    }
    
    "(cP_cyclicA|cP_cyclicB)"
    {
        type            cyclic;
    }

    "(NABE|KRANZ|SCHAUFEL)"
    {
        type            zeroGradient;
    }
}




// ************************************************************************* //
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       volVectorField;
    object      U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 1 -1 0 0 0 0];

internalField   uniform (0 0 0);

boundaryField
{
    IF_LAUF_LEIT
    
    {
      type            zeroGradient;

    }

    IF_LAUF_SAUGROHR
    {
    type        cylindricalInletVelocity;
        axis            (0 0 1);
        origin          (0 0 -50);
        axialVelocity   constant 10;
        radialVelocity  constant 0.0;
        rpm             constant 800;
    value        uniform (0 0 0);
    }

    "(cP_cyclicA|cP_cyclicB)"
    {
        type            cyclic;
    }

    "(NABE|KRANZ|SCHAUFEL)"
    {
        type            noSlip;
    }
}
// ************************************************************************* //
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;
    location    "constant";
    object      MRFProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

MRF1
{
    cellZone    internalMesh;
    active      yes;

    // Fixed patches (by default they 'move' with the MRF zone)
    nonRotatingPatches ();

    origin    (0 0 -50);
    axis      (0 0 1);
    omega     83.775804095728;
}

// ************************************************************************* //
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  2312                                  |
|   \\  /    A nd           | Website:  www.openfoam.com                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    arch        "LSB;label=32;scalar=64";
    class       polyBoundaryMesh;
    location    "constant/polyMesh";
    object      boundary;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

7
(
    IF_LAUF_LEIT
    {
        type            patch;
        physicalType    patch;
        nFaces          3182;
        startFace       762848;
    }
    NABE
    {
        type            wall;
        physicalType    wall;
        nFaces          7155;
        startFace       766030;
    }
    KRANZ
    {
        type            wall;
        physicalType    wall;
        nFaces          7924;
        startFace       773185;
    }
    SCHAUFEL
    {
        type            wall;
        physicalType    wall;
        nFaces          14883;
        startFace       781109;
    }
    IF_LAUF_SAUGROHR
    {
        type            patch;
        physicalType    patch;
        nFaces          2230;
        startFace       795992;
    }
    cP_cyclicA
    {
        type            cyclic;
        inGroups        1(cyclic);
        nFaces          10351;
        startFace       798222;
        matchTolerance  0.0001;
        transform       rotational;
        neighbourPatch  cP_cyclicB;
        rotationAxis    (0 0 1);
        rotationCentre  (0 0 -50);
    }
    cP_cyclicB
    {
        type            cyclic;
        inGroups        1(cyclic);
        nFaces          10351;
        startFace       808573;
        matchTolerance  0.0001;
        transform       rotational;
        neighbourPatch  cP_cyclicA;
        rotationAxis    (0 0 1);
        rotationCentre  (0 0 -50);
    }
)

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

// This application/dictionary controls:
// - optional: create new patches from boundary faces (either given as
//   a set of patches or as a faceSet)
// - always: order faces on coupled patches such that they are opposite. This
//   is done for all coupled faces, not just for any patches created.
// - optional: synchronise points on coupled patches.

// 1. Create cyclic:
// - specify where the faces should come from
// - specify the type of cyclic. If a rotational specify the rotationAxis
//   and centre to make matching easier
// - always create both halves in one invocation with correct 'neighbourPatch'
//   setting.
// - optionally pointSync true to guarantee points to line up. 

// 2. Correct incorrect cyclic:
// This will usually fail upon loading:
//  "face 0 area does not match neighbour 2 by 0.0100005%"
//  " -- possible face ordering problem."
// - in polyMesh/boundary file:
//      - loosen matchTolerance of all cyclics to get case to load
//      - or change patch type from 'cyclic' to 'patch'
//        and regenerate cyclic as above

// Do a synchronisation of coupled points after creation of any patches.
// Note: this does not work with points that are on multiple coupled patches
//       with transformations (i.e. cyclics).
pointSync false;

tol 1e-4;

// Patches to create.
patches
(
    {   
        // Name of new patch
        name cP_cyclicA;

        // Dictionary to construct new patch from
        patchInfo
        {   
            type cyclic;
            neighbourPatch cP_cyclicB;

            // Optional: explicitly set transformation tensor.
            // Used when matching and synchronising points.
            transform rotational;
            rotationAxis     (0 0 1);
            rotationCentre   (0 0 -50);
        rotationAngle    51.428571428571429;
            // transform translational;
            // separationVector (1 0 0);

            // Optional non-default tolerance to be able to define cyclics
            // on bad meshes
            matchTolerance 1E-4;
        }

        // How to construct: either from 'patches' or 'set'
        constructFrom patches;

        // If constructFrom = patches : names of patches. Wildcards allowed.
        patches (cyclicA);
    }
    {   
        // Name of new patch
        name cP_cyclicB;

        // Dictionary to construct new patch from
        patchInfo
        {   
            type cyclic;
            neighbourPatch cP_cyclicA;

            // Optional: explicitly set transformation tensor.
            // Used when matching and synchronising points.
            transform rotational;
            rotationAxis (0 0 1);
            rotationCentre (0 0 -50);
        rotationAngle -51.428571428571429;
            // transform translational;
            // separationVector (1 0 0);

            // Optional non-default tolerance to be able to define cyclics
            // on bad meshes
            matchTolerance 1E-4;
        }

        // How to construct: either from 'patches' or 'set'
        constructFrom patches;

        // If constructFrom = patches : names of patches. Wildcards allowed.
        patches (cyclicB);
    }
);

after simulation the solution confuses me



Runner.jpg


Runner3.jpg






it looks like nothing is coming out of the outlet patch and everything is only rotating in the frame....


Ive tryed so many combinations of other boundaryconditions.



but non of them worked. This is no physical right result. there has to be an outflow of the outlet patch.



Pls can anyone help me?
dnl_xr is offline   Reply With Quote

Reply

Tags
boundary condition, cyclic boundary condition, cylindrical mesh, mrf simplefoam, rotating boundary


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
simpleFoam: Influence of MRF region dimensions on simulation results Krao OpenFOAM Running, Solving & CFD 4 March 29, 2022 21:33
Divergence of ducted propeller simulation using MRF simpleFoam Krao OpenFOAM Running, Solving & CFD 1 January 13, 2020 09:35
Periodic boundary conditions for moving reference frame (MRF) simulation) guebelib STAR-CCM+ 1 April 15, 2015 06:55
Weird results in MRF simulation of stirred tank with a steady state k-w SST model aminem OpenFOAM Running, Solving & CFD 2 January 3, 2015 11:21
MRF simulation : continuity residual high as 0.4 guru FLUENT 2 February 7, 2005 09:33


All times are GMT -4. The time now is 00:58.