CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (https://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   activeBaffleVelocity boundary condition ? (https://www.cfd-online.com/Forums/openfoam-programming-development/74844-activebafflevelocity-boundary-condition.html)

om3ro April 9, 2010 16:13

activeBaffleVelocity boundary condition ?
 
does anybody know how to implement the activeBaffleVelocity b.c. which "dynamically combines cyclic and wall patches so that the flow through the patch can be controlled e.g. by pressure drop".

Does exist any example?

thanks
marco

gregdB January 23, 2012 15:39

Hi Marco,

Did you ever find out how this works?

Cheers,
Greg

om3ro January 23, 2012 18:55

Greg,

at the end I gave up with that b.c. ...

Marco

Josefina July 15, 2014 11:14

Hi Marco,

I want to use activeBaffleVelocity condition for one of my simulations. For the moment, I can not resolve the bugs.

As you have also some problems with this kind of condition. Have you found any alternative solution that could replace it?

Thank you very much!!

nicolorado November 18, 2014 09:36

1 Attachment(s)
Hi everybody,

Maybe this document could help somebody.

Cheers,

Nicolas

Bascud June 21, 2017 11:10

Hello everyone,

i am an amateur and I don't get the boundary condition 'activeBaffleVelocity' to work. I hope you can help me. I am trying to simulate a pump with two pistons and three check valves. One in front of of the first pumping chamber, second in the middle of the two chambers, and the third after the second chamber.

I created Baffles at the position, where the checkvalves should be and defined them as 'type cyclic'. When I use the bc activeBaffleVelocity in the U file, I get an error message:
'inconsistent patch and patchField types for
patch type cyclic and patchField type activeBaffleVelocity'

Here my code:
blockMeshDict
Code:

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

convertToMeters 1;

vertices
(    //x    //y    //z
    (0    0    0)    // #0
    (9.9    0    0)    // #1
    (10    0    0)    // #2
    (12    0    0)    // #3
    (12.1    0    0)    // #4
    (13.1    0    0)    // #5
    (14.1    0    0)    // #6
    (14.2    0    0)    // #7
    (17.6    0    0)    // #8
    (17.7    0    0)    // #9
    (27.6    0    0)    // #10

    (27.6    1    0)    // #11
    (17.7    1    0)    // #12
    (17.6    1    0)    // #13
    (17.6    1.1    0)    // #14
    (17.6    3    0)    // #15
    (14.2    3    0)    // #16
    (14.2    1.1    0)    // #17
    (14.2    1    0)    // #18
    (14.1    1    0)    // #19
    (13.1    1    0)    // #20
    (12.1    1    0)    // #21
    (12    1    0)    // #22
    (12    1.1    0)    // #23
    (12    3    0)    // #24
    (10    3    0)    // #25
    (10    1.1    0)    // #26
    (10    1    0)    // #27
    (9.9    1    0)    // #28
    (0    1    0)    // #29

    (0    0    0.1)    // #30
    (9.9    0    0.1)    // #31
    (10    0    0.1)    // #32
    (12    0    0.1)    // #33
    (12.1    0    0.1)    // #34
    (13.1    0    0.1)    // #35
    (14.1    0    0.1)    // #36
    (14.2    0    0.1)    // #37
    (17.6    0    0.1)    // #38
    (17.7    0    0.1)    // #39
    (27.6    0    0.1)    // #40

    (27.6    1    0.1)    // #41
    (17.7    1    0.1)    // #42
    (17.6    1    0.1)    // #43
    (17.6    1.1    0.1)    // #44
    (17.6    3    0.1)    // #45
    (14.2    3    0.1)    // #46
    (14.2    1.1    0.1)    // #47
    (14.2    1    0.1)    // #48
    (14.1    1    0.1)    // #49
    (13.1    1    0.1)    // #50
    (12.1    1    0.1)    // #51
    (12    1    0.1)    // #52
    (12    1.1    0.1)    // #53
    (12    3    0.1)    // #54
    (10    3    0.1)    // #55
    (10    1.1    0.1)    // #56
    (10    1    0.1)    // #57
    (9.9    1    0.1)    // #58
    (0    1    0.1)    // #59

);

blocks
(
      hex (0 1 28 29 30 31 58 59) valve1 (99 10 1) simpleGrading (1 1 1)        // #1
    hex (1 2 27 28 31 32 57 58) valve2 (1 10 1) simpleGrading (1 1 1)        // #2
    hex (2 3 22 27 32 33 52 57) (20 10 1) simpleGrading (1 1 1)        // #3
    hex (3 4 21 22 33 34 51 52) (1 10 1) simpleGrading (1 1 1)        // #4
    hex (4 5 20 21 34 35 50 51) valve5 (10 10 1) simpleGrading (1 1 1)        // #5
    hex (5 6 19 20 35 36 49 50) valve6 (10 10 1) simpleGrading (1 1 1)        // #6
    hex (6 7 18 19 36 37 48 49) (1 10 1) simpleGrading (1 1 1)        // #7
    hex (7 8 13 18 37 38 43 48) (34 10 1) simpleGrading (1 1 1)        // #8
    hex (8 9 12 13 38 39 42 43) valve9 (1 10 1) simpleGrading (1 1 1)        // #9
    hex (9 10 11 12 39 40 41 42) valve10 (99 10 1) simpleGrading (1 1 1)        // #10
    hex (18 13 14 17 48 43 44 47) (34 1 1) simpleGrading (1 1 1)        // #11
    hex (17 14 15 16 47 44 45 46) (34 20 1) simpleGrading (1 1 1)        // #12
    hex (27 22 23 26 57 52 53 56) (20 1 1) simpleGrading (1 1 1)        // #13
    hex (26 23 24 25 56 53 54 55) (20 20 1) simpleGrading (1 1 1)        // #14
   
);

edges
(
);

boundary
(
    entry
        {
        type patch;
        faces
        (
            (0 29 30 59)
        );
    }

    outlet
        {
        type patch;
        faces
        (
            (10 11 40 41)
        );
    }

    walls
    {
    type wall;
    faces
        (
            (0 1 31 30)
            (1 2 32 31)
            (2 3 33 32)
            (3 4 34 33)
            (4 5 35 34)
            (5 6 36 35)
            (6 7 37 36)
            (7 8 38 37)
            (8 9 39 38)
            (9 10 40 39)
            (12 11 41 42)
            (13 12 42 43)
            (13 14 44 43)
            (18 17 47 48)
            (19 18 49 48)
            (20 19 49 50)
            (21 20 50 51)
            (22 21 51 52)
            (22 23 53 52)
            (27 26 56 57)
            (28 27 57 58)
            (29 28 58 59)
        );
    }

    front
        {
        type empty;
        faces
        (
            (0 1 28 29)
            (1 2 27 28)
            (2 3 22 27)
            (3 4 21 22)
            (4 5 20 21)
            (5 6 19 20)
            (6 7 18 19)
            (7 8 13 18)
            (8 9 12 13)
            (9 10 11 12)
            (18 13 14 17)
            (17 14 15 16)
            (27 22 23 26)
            (26 23 24 25)
        );
    }

    back
        {
        type empty;
        faces
        (
            (30 31 58 59)
            (31 32 57 58)
            (32 33 52 57)
            (33 34 51 52)
            (34 35 50 51)
            (35 36 49 50)
            (36 37 48 49)
            (37 38 43 48)
            (38 39 42 43)
            (39 40 41 42)
            (48 43 44 47)
            (47 44 45 46)
            (57 52 53 56)
            (56 53 54 55)
        );
    }

    chamber
    {
    type patch;
    faces
        (
            (26 25 55 56)
            (17 16 46 47)
            (23 24 54 53)
            (14 15 45 44)
        );
    }

    firstMovingWall
        {
        type patch;
        faces
        (
            (25 24 54 55)
        );
    }

    secondMovingWall
        {
        type patch;
        faces
        (
            (16 15 45 46)
        );
    }

);

/*internal
(
    valve
        {
        type patch;
        faces
        (
            (5 20 50 35)
        );
    }
);*/

mergePatchPairs
(
);

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

topoSetDict
Code:

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

actions
(

    // ~~~~~~~~~~~~~~~~~~~~~
// valve56
    {
    name csValve5;
    type cellSet;
    action new;
    source zoneToCell;
    sourceInfo
        {
        name valve5;
        }
    }
    {
    name csValve6;
    type cellSet;
    action new;
    source zoneToCell;
    sourceInfo
        {
        name valve6;// Matching faces with block27 are to become a baffle.
        }
    }

    {
        name    fsValve56;
        type    faceSet;
        action  new;
        source  cellToFace;
        sourceInfo
            {
        set    csValve5;
        option all;
            }
    }

    { 
    name    fsValve56;
    type    faceSet;
    action    subset;
    source    cellToFace;
    sourceInfo
            {
        set    csValve6;
        option all;
            }
    }

    {
    name fzsValve56;
    type faceZoneSet;
    action new;
    source setToFaceZone;
    sourceInfo
        {
            faceSet fsValve56;
        }
    }
//valve12

    {
    name csValve1;
    type cellSet;
    action new;
    source zoneToCell;
    sourceInfo
        {
        name valve1;
        }
    }
    {
    name csValve2;
    type cellSet;
    action new;
    source zoneToCell;
    sourceInfo
        {
        name valve2;// Matching faces with block27 are to become a baffle.
        }
    }

    {
        name    fsValve12;
        type    faceSet;
        action  new;
        source  cellToFace;
        sourceInfo
            {
        set    csValve1;
        option all;
            }
    }

    { 
    name    fsValve12;
    type    faceSet;
    action    subset;
    source    cellToFace;
    sourceInfo
            {
        set    csValve2;
        option all;
            }
    }

    {
    name fzsValve12;
    type faceZoneSet;
    action new;
    source setToFaceZone;
    sourceInfo
        {
            faceSet fsValve12;
        }
    }

// valve910
    {
    name csValve9;
    type cellSet;
    action new;
    source zoneToCell;
    sourceInfo
        {
        name valve9;
        }
    }
    {
    name csValve10;
    type cellSet;
    action new;
    source zoneToCell;
    sourceInfo
        {
        name valve10;// Matching faces with block27 are to become a baffle.
        }
    }

    {
        name    fsValve910;
        type    faceSet;
        action  new;
        source  cellToFace;
        sourceInfo
            {
        set    csValve9;
        option all;
            }
    }

    { 
    name    fsValve910;
    type    faceSet;
    action    subset;
    source    cellToFace;
    sourceInfo
            {
        set    csValve10;
        option all;
            }
    }

    {
    name fzsValve910;
    type faceZoneSet;
    action new;
    source setToFaceZone;
    sourceInfo
        {
            faceSet fsValve910;
        }
    }


    // Create cellZone for moving cells in inlet channel
    /*{
        name    inletChannelCellSet;
        type    cellSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box    (-100 -100 -100) (1.0001 100 100);
        }
    }
    {
        name    inletChannel;
        type    cellZoneSet;
        action  new;
        source  setToCellZone;
        sourceInfo
        {
            set    inletChannelCellSet;
        }
    }*/
);

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

createBaffleDict
Code:

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

// Whether to convert internal faces only (so leave boundary faces intact).
// This is only relevant if your face selection type can pick up boundary
// faces.
internalFacesOnly true;


// Baffles to create.
baffles
{

    valve56Baffle
    {
    //- Use predefined faceZone to select faces and orientation.
        type faceZone;
        zoneName fzsValve56;

        patches
        {
            master
            {
            //- Master side patch

                name        baf5;
                type        cyclic;
                neighbourPatch    baf6;
            }
            slave
            {
            //- Slave side patch

                name        baf6;
                type        cyclic;
                neighbourPatch    baf5;
            }
        }

    }

    valve12Baffle
    {
    //- Use predefined faceZone to select faces and orientation.
        type faceZone;
        zoneName fzsValve12;

        patches
        {
            master
            {
            //- Master side patch

                name        baf1;
                type        cyclic;
                neighbourPatch  baf2;
            }
            slave
            {
            //- Slave side patch

                name        baf2;
                type        cyclic;
                neighbourPatch    baf1;
            }
        }

    }

    valve910Baffle
    {
    //- Use predefined faceZone to select faces and orientation.
        type faceZone;
        zoneName fzsValve910;

        patches
        {
            master
            {
            //- Master side patch

                name        baf9;
                type        cyclic;
                neighbourPatch    baf10;
            }
            slave
            {
            //- Slave side patch

                name        baf10;
                type        cyclic;
                neighbourPatch    baf9;
            }
        }

    }           
}



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

U
Code:

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

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

internalField  uniform (0 0 0);

boundaryField
{
    entry
    {
        type            pressureInletOutletVelocity;
        value          uniform (0 0 0);
    }
    outlet
    {
        type            pressureInletOutletVelocity;
        value          uniform (0 0 0);
    }
    walls
    {
        type            noSlip;
    }
    front
    {
        type            empty;
    }
    back
    {
        type            empty;
    }
    chamber
    {
        type            noSlip;
    }
    firstMovingWall
    {
        type            movingWallVelocity;
        value          uniform (0 0 0);
    }
    secondMovingWall
    {
        type            movingWallVelocity;
        value          uniform (0 0 0);
    }
    baf5
    {
        type            cyclic;
    }
    baf6
    {
        type            cyclic;
    }
    baf1
    {
        type            activeBaffleVelocity;
        p              p;
        cyclicPatch    baf1;
        orientation    1;
        openFraction    1;
        openingTime    0.001;
        maxOpenFractionDelta 1;

   
    }
    baf2
    {
        type            cyclic;
    }
    baf9
    {
        type            cyclic;
    }
    baf10
    {
        type            cyclic;
    }
}


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

p
Code:

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

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

internalField  uniform 0;

boundaryField
{
    entry
    {
        type            totalPressure;
        rho            rho;
        psi            none;
        gamma          1;
        p0              uniform 0;
        value          uniform 0;
    }
    outlet
    {
        type            totalPressure;
        rho            rho;
        psi            none;
        gamma          1;
        p0              uniform 0;
        value          uniform 0;
    }
    walls
    {
        type            zeroGradient;
    }
    front
    {
        type            empty;
    }
    back
    {
        type            empty;
    }
    chamber
    {
        type            zeroGradient;
    }
    firstMovingWall
    {
        type            zeroGradient;
    }
    secondMovingWall
    {
        type            zeroGradient;
    }
    baf5
    {
        type            cyclic;
    }
    baf6
    {
        type            cyclic;
    }
    baf1
    {
        type            cyclic;
    }
    baf2
    {
        type            cyclic;
    }
    baf9
    {
        type            cyclic;
    }
    baf10
    {
        type            cyclic;
    }
}


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

In this code i am just trying to get valve12 to work.

I hope someone can give some advice

Thanks and best regards.


All times are GMT -4. The time now is 15:41.