CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Pre-Processing (https://www.cfd-online.com/Forums/openfoam-pre-processing/)
-   -   oscillating cylinder dynamic mesh (https://www.cfd-online.com/Forums/openfoam-pre-processing/131044-oscillating-cylinder-dynamic-mesh.html)

arionfard September 9, 2016 02:01

Quote:

Originally Posted by CataV (Post 617194)
Hello Behzad
Thank you very much for your help. I saw your changes, comments and log file. Everything seems to be good. So I proved the model that you send me and the log file doesn't show any information about 6-DoF or mass center. Maybe there is a problem with the OF instalation or some libraries are missing, I don't know :(

For installing OF I used this link https://openfoamwiki.net/index.php/I...M-2.4.0/Ubuntu for Ubuntu 14.04 and install from source

For running I generat the mesh with "blockMesh" and then I enter the command line "pimpleFoam"

I'll be waiting for a comment

Thanks again

You shoud write pimpleDyMFoam. attach your log file.

llib11ik September 9, 2016 03:13

Quote:

Originally Posted by CataV (Post 617194)
Hello Behzad
Thank you very much for your help. I saw your changes, comments and log file. Everything seems to be good. So I proved the model that you send me and the log file doesn't show any information about 6-DoF or mass center. Maybe there is a problem with the OF instalation or some libraries are missing, I don't know :(

For installing OF I used this link https://openfoamwiki.net/index.php/I...M-2.4.0/Ubuntu for Ubuntu 14.04 and install from source

For running I generat the mesh with "blockMesh" and then I enter the command line "pimpleFoam"

I'll be waiting for a comment

Thanks again

If you specify 6DOF, should you use "pimpleDyMFoam" rather than "pimpleFoam"?

CataV September 9, 2016 23:23

Quote:

Originally Posted by arionfard (Post 617209)
You shoud write pimpleDyMFoam. attach your log file.

Dear Behzad
You were right, I had to use pimpleDyMFoam. I'm sorry for that mistake. I'm very grateful for the support you gave me.

Best regards
Cata

kkpal October 27, 2016 23:45

1 Attachment(s)
Hi!
I want to prescribe the cylinder with this kind of forced motion. Does anyone know how to do this?

arionfard October 28, 2016 02:00

Quote:

Originally Posted by kkpal (Post 623261)
Hi!
I want to prescribe the cylinder with this kind of forced motion. Does anyone know how to do this?

What's h?!

kkpal October 28, 2016 02:38

Quote:

Originally Posted by arionfard (Post 623266)
What's h?!

h is the vertical displacement.
What I want to do is to prescribe the cylinder with such a vertical motion. The motion is varying in both amplitude and frequency.
I'm trying to use this signal to train a reduced order model based on ARX model.

arionfard October 28, 2016 02:41

Quote:

Originally Posted by kkpal (Post 623268)
h is the vertical displacement.

You want this as a result of fluid flow or you want to move the cylinder like this and check the feedback?! explain the problem clearly.

kkpal October 28, 2016 03:07

Quote:

Originally Posted by arionfard (Post 623269)
You want this as a result of fluid flow or you want to move the cylinder like this and check the feedback?! explain the problem clearly.

I want to move the cylinder like this and check the resulted lift force coefficient.

Maimouna October 28, 2016 04:55

Quote:

Originally Posted by kkpal (Post 623275)
I want to move the cylinder like this and check the resulted lift force coefficient.

Hi,

could you give more details pleases to be able to help. I was working in the forced oscillating cylinder.

Best,
Maimouna

kkpal October 28, 2016 06:45

Quote:

Originally Posted by Maimouna (Post 623287)
Hi,

could you give more details pleases to be able to help. I was working in the forced oscillating cylinder.

Best,
Maimouna

Here is my case file for the forced vibration simulation.
https://drive.google.com/file/d/0ByG...ew?usp=sharing
The circular cylinder is given a vertical displacement specified in "chirp".
The first column is time, and next three columns are displacement vector.

I'm trying with timeVaryingUniformFixedValue boundary condition for the cylinder wall in "0/pointDisplacement". But it does not work well. I guess it might be due to the displacement time history specified in "chirp" is not continuous from one time step to the next, it behaves like a sudden change in vertical position.

For this kind of arbitrary cylinder motion, what is the good way to simulate?

kkpal October 29, 2016 23:06

1 Attachment(s)
Quote:

Originally Posted by kkpal (Post 623313)
Here is my case file for the forced vibration simulation.
https://drive.google.com/file/d/0ByG...ew?usp=sharing
The circular cylinder is given a vertical displacement specified in "chirp".
The first column is time, and next three columns are displacement vector.

I'm trying with timeVaryingUniformFixedValue boundary condition for the cylinder wall in "0/pointDisplacement". But it does not work well. I guess it might be due to the displacement time history specified in "chirp" is not continuous from one time step to the next, it behaves like a sudden change in vertical position.

For this kind of arbitrary cylinder motion, what is the good way to simulate?

The problem associated with the current setting is that as the cylinder starts to move, the lift force coefficients becomes nonsense, as is shown in the picture (the cylinder starts to move at around t=7.9).

Maimouna October 31, 2016 06:23

Quote:

Originally Posted by kkpal (Post 623313)
Here is my case file for the forced vibration simulation.
https://drive.google.com/file/d/0ByG...ew?usp=sharing
The circular cylinder is given a vertical displacement specified in "chirp".
The first column is time, and next three columns are displacement vector.

I'm trying with timeVaryingUniformFixedValue boundary condition for the cylinder wall in "0/pointDisplacement". But it does not work well. I guess it might be due to the displacement time history specified in "chirp" is not continuous from one time step to the next, it behaves like a sudden change in vertical position.

For this kind of arbitrary cylinder motion, what is the good way to simulate?

Dear Kkpal,

could you try this in pointDisplacement file. It is actually my one in the ''forced oscillation case'' in OF-2.2.2

Code:

FoamFile
{
version  2.0;
format    ascii;
class    pointVectorField;
object    pointDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 1 0 0 0 0 0];

internalField uniform (0 0 0);

boundaryField
{
      inlet
{
    type fixedValue;
    value uniform (0 0 0);
}
    outlet
{
    type fixedValue;
    value uniform (0 0 0);
}
    top
{
    type empty;//fixedValue;
    //value uniform (0 0 0);
}
    bottom
{
    type empty;//fixedValue;
    //value uniform (0 0 0);
}
    walls
{
    type fixedValue; //slip; //zeroGradient;
        value (0 0 0);
}

    cylinder
{
    type oscillatingDisplacement;
    amplitude  (0 0.25 0);
    omega 1.14040;
    value uniform (0 0 0);
}
}



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

I hope that might help.

All the best.
Maimouna

kkpal November 1, 2016 08:39

Quote:

Originally Posted by Maimouna (Post 623577)
Dear Kkpal,

could you try this in pointDisplacement file. It is actually my one in the ''forced oscillation case'' in OF-2.2.2

Code:

FoamFile
{
version  2.0;
format    ascii;
class    pointVectorField;
object    pointDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 1 0 0 0 0 0];

internalField uniform (0 0 0);

boundaryField
{
      inlet
{
    type fixedValue;
    value uniform (0 0 0);
}
    outlet
{
    type fixedValue;
    value uniform (0 0 0);
}
    top
{
    type empty;//fixedValue;
    //value uniform (0 0 0);
}
    bottom
{
    type empty;//fixedValue;
    //value uniform (0 0 0);
}
    walls
{
    type fixedValue; //slip; //zeroGradient;
        value (0 0 0);
}

    cylinder
{
    type oscillatingDisplacement;
    amplitude  (0 0.25 0);
    omega 1.14040;
    value uniform (0 0 0);
}
}



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

I hope that might help.

All the best.
Maimouna

Thank you for the reply. Your method works well.

maasyraf3 April 10, 2017 19:43

Quote:

Originally Posted by llib11ik (Post 577603)
Thanks, Maimouna! That's a great help!

Regards
Jason

Hi Jason - how we want to generate center of mass data before can plot in gnuplot?

Tq

Amy

Sent from my M631Y using CFD Online Forum mobile app

maasyraf3 April 22, 2017 06:31

4 Attachment(s)
GREETINGS to all Foamers,

My name is Amy which currently are doing my master research project by dealing with oscillating cylinders. I have went through each replies in this thread and its related link provided, but still I think I dont have the answer.

I really need your series of advices, in regards with my oscillating circular cylinder in dynamic meshing. I use pimpleDyMFoam, OF 4.0 to solve my case

I have provide all the necessary parameters that similar with my experimental works ( actual setup) but after almost 2 weeks, still the simulation in openFoam not favourable to my experiment result. (I attached the video for actual experiment in my university lab)

The GIF file : https://www.cfd-online.com/Forums/at...1&d=1492856466

Has uploaded in youtube link: https://youtu.be/V627hD_ktVA


I did modify and tried various Reynold Number value in order to see the effect to the flow, but still the same result. It seems that the flow "not so smooth" as per actual.

My setup which is mass-spring-damping system are as follows:

1) Diameter of the cylinder is 50 mm ( which equal to 0.05 meter) iwith the total length is 0.65meter. My case only for 1-DOF.

2) The circular cylinder should oscillate (moving) in y-direction only. As the flow passing the cylinder, the lift force from the flow should naturally force the cylinder up and down (viv phenomena) at certain amplitude.

3) System stiffness is 140 N/m. And so I set two spring (70 for each spring) in the openFoam dynamicMeshDict. The sketch by hand as below:


https://www.cfd-online.com/Forums/at...1&d=1492856111



Basically I use
Code:

    - dynamicFvMesh :dynamicMotionSolverFvMesh
    - motionSolverLibs :("libsixDoFRigidBodyMotion.so")
    - solver:            sixDoFRigidBodyMotion

4) The damping of system is 0.08. The mass of the cylinder is 1.32 kg. Density of the water I use 1000 kg/m3.
Kinematic viscosity (v) - 1e-06. And so these values I set in transportProperties file

Code:

transportModel  Newtonian;

nu              nu [ 0 2 -1 0 0 0 0 ] 1e-06;
rho            rho [1 -3 0 0 0 0 0] 1000;

5) Speed of the water is 0.3 m/s.
So, here in 0 file, I set the U 0.3 m/s at inlet and internalField as well. (I dont know it is the right way or not).

By using 0.3 m/s, the Reynold number is 15 000.
I dont know, this value of Re still valid for my case file since I off the turbulenceProperties. Need helps here.

6) In dynamicMeshDict, we should specify the below:

- inner distance and outer distance. I'd like to ask the effect to the oscillation of the cylinder

Code:

    patches        (cylinder);
    innerDistance  0.3;
    outerDistance  2;

- the rho of the rhoInf ? What the exact value I should put? the rho of the cylinder or the fluid?

Code:

    rho            rhoInf;
    rhoInf          1;

7) The issue is - why after simulate is seems so "frozen" and did not work well as per actual experiment? How do I fix this.?

Here I attach all the '0' , ' Constant' and 'System' of my setup. And really appreciate helps and assistance from this forum thread. I dont know, it can be my flow setup is wrong, or my dynamicMeshDict or my transportProperties. or else?

I hope I can resolve this...really. Thanks in advance all !!:)

Best Regards -
Amy
amirulasyraf.utm@gmail.com

*********************************


My all case Files as below link and quote

Attachment 55507


0 files

U :

Code:

FoamFile
{
    version    2.0;
    format      ascii;
    class      volVectorField;
    object      U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

internalField  uniform (0.01 0 0);

boundaryField
{
    topAndBottom
    {
    type            noSlip;
    }

    inlet
    {
    type            fixedValue;
    value        uniform (0.01 0 0);
    }

    outlet
    {
    type            zeroGradient;
    }
   
    frontAndBack
    {
        type            empty;
    }


    cylinder
    {
        type            movingWallVelocity;
        value          uniform (0 0 0);
    }

}

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

Pressure ,p
Code:

{
    version    2.0;
    format      ascii;
    class      volScalarField;
    object      p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

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

internalField  uniform 0;

boundaryField
{
   
    topAndBottom
    {
        type            zeroGradient;
    }

    outlet
    {
        type            zeroGradient;
    }

    inlet
    {
        type            zeroGradient;
    }

    frontAndBack
    {
        type            empty;
    }

    cylinder
    {
        type            zeroGradient;
    }

}

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

pointDisplacement

Code:

FoamFile
{
    version    2.0;
    format      ascii;
    class      pointVectorField;
    location    "0.01";
    object      pointDisplacement;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions      [0 1 0 0 0 0 0];

internalField  uniform (0 0 0);

boundaryField
{
    topAndBottom
    {
        type            uniformFixedValue;
        uniformValue    (0 0 0);
    }

    inlet
    {
        type            uniformFixedValue;
        uniformValue    (0 0 0);
    }

    outlet
    {
        type            uniformFixedValue;
        uniformValue    (0 0 0);
    }

    cylinder
    {
        type            calculated;
        value          uniform (0 0 0);
    }

    frontAndBack
    {
        type            empty;
    }
}

Next, is the dynamicMeshDict file

Code:

FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    object      dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dynamicFvMesh      dynamicMotionSolverFvMesh;

motionSolverLibs ("libsixDoFRigidBodyMotion.so");

solver            sixDoFRigidBodyMotion;

diffusivity      linear inverseDistance 1 (cylinder);

sixDoFRigidBodyMotionCoeffs
{
    patches        (cylinder);
    innerDistance  0.3;
    outerDistance  2;

    mass            1.32;
    centreOfMass    (0 0 0);
    momentOfInertia (0.1 0.1 0.1);
    orientation
    (
        1 0 0
        0 1 0
        0 0 1
    );
    angularMomentum (0 0 0);
    g              (0 -9.81 0);
    rho            rhoInf;
    rhoInf          1;
    report          on;

    solver
    {
        type symplectic;
    }

    constraints
    {
        yLine
        {
            sixDoFRigidBodyMotionConstraint line;
            centreOfRotation    (0 0 0);
            direction          (0 1 0);
        }

        zAxis
        {
            sixDoFRigidBodyMotionConstraint axis;
            axis                (0 0 1);
        }
    }

    restraints
    {
        verticalSpring1
        {
            sixDoFRigidBodyMotionRestraint linearSpring;

            anchor          (0 0.20 0.0025);
            refAttachmentPt (0 0.05 0.0025);
            stiffness      70;
            damping        0.08;
            restLength      0.05;
        }

        verticalSpring2
        {
            sixDoFRigidBodyMotionRestraint linearSpring;

            anchor          (0 -0.20 0.0025);
            refAttachmentPt (0 -0.05 0.0025);
            stiffness      70;
            damping        0.08;
            restLength      0.05;
        }


    }
}


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

next - transportProperties

Code:

FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    location    "constant";
    object      transportProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

transportModel  Newtonian;

nu              nu [ 0 2 -1 0 0 0 0 ] 1e-06;
rho            rho [1 -3 0 0 0 0 0] 1000;         


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

turbulenceProperties


Code:

FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    location    "constant";
    object      turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

simulationType  laminar;


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

RAS properties

Code:

FoamFile
{
    version    2.0;
    format      ascii;
    class      dictionary;
    location    "constant";
    object      RASProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

RASModel        laminar;


turbulence      off;

printCoeffs    on;


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

and now - the system files

the controlDict:

Code:

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

application    pimpleDyMFoam;

startFrom      latestTime;

startTime      0;

stopAt          endTime;

endTime        60;

deltaT          5e-06;

writeControl    adjustableRunTime;

writeInterval  0.1;

purgeWrite      0;

writeFormat    binary;

writePrecision  6;

writeCompression off;

timeFormat      general;

timePrecision  6;

runTimeModifiable true;

adjustTimeStep  yes;

maxCo          0.5;

functions
{
    #include "cuttingPlane"
}

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

the decomposeParDict:

Code:

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

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

numberOfSubdomains 6;

method          scotch;
// method          ptscotch;

simpleCoeffs
{
    n              (4 1 1);
    delta          0.001;
}

hierarchicalCoeffs
{
    n              (3 2 1);
    delta          0.001;
    order          xyz;
}

manualCoeffs
{
    dataFile        "cellDecomposition";
}


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

the fvschemes:

Code:

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

ddtSchemes
{
    default        Euler;
}

gradSchemes
{
    default        Gauss linear;
}

divSchemes
{
    default        none;
    div(phi,U)      Gauss linear;
    div((nuEff*dev(T(grad(U))))) Gauss linear;
    div((nuEff*dev2(T(grad(U))))) Gauss linear;
}

laplacianSchemes
{
    default        Gauss linear corrected;
    laplacian(diffusivity,cellMotionU) Gauss linear uncorrected;
}

interpolationSchemes
{
    default        linear;
}

snGradSchemes
{
    default        corrected;
}

fluxRequired
{
    default        no;
    pcorr          ;
    p              ;
}


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

the fvsolution:

Code:

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

solvers
{
    pcorr
    {
        solver          GAMG;
        tolerance      0.02;
        relTol          0;
        smoother        GaussSeidel;
        nPreSweeps      0;
        nPostSweeps    2;
        cacheAgglomeration no;
        nCellsInCoarsestLevel 10;
        agglomerator    faceAreaPair;
        mergeLevels    1;
    }

    p
    {
        solver          GAMG;
        tolerance      0;
        relTol          0.01;
        smoother        GaussSeidel;
        nPreSweeps      0;
        nPostSweeps    2;
        cacheAgglomeration no;
        nCellsInCoarsestLevel 10;
        agglomerator    faceAreaPair;
        mergeLevels    1;
    }

    pFinal
    {
        $p;
        tolerance      1e-06;
        relTol          0;
    }

    U
    {
        solver          smoothSolver;
        smoother        symGaussSeidel;
        tolerance      1e-05;
        relTol          0.1;
    }

    UFinal
    {
        $U;
        tolerance      1e-05;
        relTol          0;
    }

    cellMotionUx
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance      1e-08;
        relTol          0;
    }
    cellMotionUxFinal
    {
        solver          PCG;
        preconditioner  DIC;
        tolerance      1e-08;
        relTol          0;
    }

    "cellDisplacement.*"
    {
        solver          GAMG;
        tolerance      1e-5;
        relTol          0;
        smoother        GaussSeidel;
        cacheAgglomeration true;
        nCellsInCoarsestLevel 10;
        agglomerator    faceAreaPair;
        mergeLevels    1;
    }

}

PIMPLE
{
    correctPhi          yes;
    nOuterCorrectors    2;
    nCorrectors        1;
    nNonOrthogonalCorrectors 0;
pRefCell 1001;
pRefValue 0;
}

relaxationFactors
{
    fields
    {
    }
    equations
    {
        "U.*"          1;
    }
}

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


The GIF file of the "not so smooth" oscillation
Attachment 55510

https://www.cfd-online.com/Forums/at...1&d=1492857765

the youtube link for the not so smooth simulation of mine:
https://youtu.be/HPNi8obU4aM

maasyraf3 April 22, 2017 21:20

And this is my blockMeshDict file

Code:

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

convertToMeters 0.05;

vertices
(
//z=0
//inner circle
  (5 0 0) //0
  (3.535533906 3.535533906 0) //1
  (0 5 0) //2
  (-3.535533906 3.535533906 0) //3
  (-5 0 0) //4
  (-3.535533906 -3.535533906 0) //5
  (0 -5 0) //6
  (3.535533906 -3.535533906 0) //7

//outer circle
  (15 0 0) //8
  (10.60660172 10.60660172 0) //9
  (0 15 0) //10
  (-10.60660172 10.60660172 0) //11
  (-15 0 0) //12
  (-10.60660172 -10.60660172 0) //13
  (0 -15 0) //14
  (10.60660172 -10.60660172 0) //15

//rectangle
  (200 0 0) //16
  (200 10.60660172 0) //17
  (200 50 0) //18
  (10.60660172 50 0) //19
  (0 50 0) //20
  (-10.60660172 50 0) //21
  (-25 50 0) //22
  (-25 10.60660172 0) //23
  (-25 0 0) //24
  (-25 -10.60660172 0) //25
  (-25 -50 0) //26
  (-10.60660172 -50 0) //27
  (0 -50 0) //28
  (10.60660172 -50 0) //29
  (200 -50 0) //30
  (200 -10.60660172 0) //31


//z=1
//inner circle
  (5 0 1) //32
  (3.535533906 3.535533906 1) //33
  (0 5 1) //34
  (-3.535533906 3.535533906 1) //35
  (-5 0 1) //36
  (-3.535533906 -3.535533906 1) //37
  (0 -5 1) //38
  (3.535533906 -3.535533906 1) //39

//outer circle
  (15 0 1) //40
  (10.60660172 10.60660172 1) //41
  (0 15 1) //42
  (-10.60660172 10.60660172 1) //43
  (-15 0 1) //44
  (-10.60660172 -10.60660172 1) //45
  (0 -15 1) //46
  (10.60660172 -10.60660172 1) //47

//rectangle
  (200 0 1) //48
  (200 10.60660172 1) //49
  (200 50 1) //50
  (10.60660172 50 1) //51
  (0 50 1) //52
  (-10.60660172 50 1) //53
  (-25 50 1) //54
  (-25 10.60660172 1) //55
  (-25 0 1) //56
  (-25 -10.60660172 1) //57
  (-25 -50 1) //58
  (-10.60660172 -50 1) //59
  (0 -50 1) //60
  (10.60660172 -50 1) //61
  (200 -50 1) //62
  (200 -10.60660172 1) //63
);

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

edges
(
    //inner cylinder surface
    arc 0  1  (4 3 0)
    arc 32 33 (4 3 1)

    arc 1  2  (3 4 0)
    arc 33 34 (3 4 1)

    arc 2  3  (-3 4 0)
    arc 34 35 (-3 4 1)

    arc 3  4  (-4 3 0)
    arc 35 36 (-4 3 1)

    arc 4 5 (-4 -3 0)
    arc 36 37 (-4 -3 1)

    arc 5 6 (-3 -4 0)
    arc 37 38 (-3 -4 1)

    arc 6 7  (3 -4 0)
    arc 38 39 (3 -4 1)

    arc 7 0  (4 -3 0)
    arc 39 32 (4 -3 1)

    //outer cylinder surface
    arc 8  9  (12 9 0)
    arc 40 41 (12 9 1)

    arc 9 10  (9 12 0)
    arc 41 42 (9 12 1)

    arc 10 11  (-9 12 0)
    arc 42 43 (-9 12 1)

    arc 11 12  (-12 9 0)
    arc 43 44 (-12 9 1)

    arc 12 13 (-12 -9 0)
    arc 44 45 (-12 -9 1)

    arc 13 14 (-9 -12 0)
    arc 45 46 (-9 -12 1)

    arc 14 15  (9 -12 0)
    arc 46 47 (9 -12 1)

    arc 15 8  (12 -9 0)
    arc 47 40 (12 -9 1)

);

boundary
(
    inlet
    {
        type patch;
        faces
        (
          (22 23 55 54)
          (23 24 56 55)
          (24 25 57 56)
          (25 26 58 57)
        );
    }

    outlet
    {
        type patch;
        faces
        (
          (30 31 63 62)
          (31 16 48 63)
          (16 17 49 48)
          (17 18 50 49)
        );
    }
 
    topAndBottom
    {
        type patch;
        faces
        (
          (18 19 51 50)
          (19 20 52 51)
          (20 21 53 52)
          (21 22 54 53)

          (26 27 59 58)
          (27 28 60 59)
          (28 29 61 60)
          (29 30 62 61)
        );
    }
   

    cylinder
    {
        type wall;
        faces
        (
          (1 0 32 33)
          (2 1 33 34)
          (3 2 34 35)
          (4 3 35 36)
          (5 4 36 37)
          (6 5 37 38)
          (7 6 38 39)
          (0 7 39 32)
        );
    }

    frontAndBack
    {
        type empty;
        faces
        (
//circular faces
          (0 1 9 8)
          (32 40 41 33)

          (1 2 10 9)
          (33 41 42 34)

          (2 3 11 10)
          (34 42 43 35)

          (3 4 12 11)
          (35 43 44 36)

          (4 5 13 12)
          (36 44 45 37)

          (5 6 14 13)
          (37 45 46 38)

          (6 7 15 14)
          (38 46 47 39)

          (7 0 8 15)
          (39 47 40 32)

//rectangular faces
          (8 9 17 16)
          (40 48 49 41)

          (9 19 18 17)
          (41 49 50 51)

          (9 10 20 19)
          (41 51 52 42)

          (10 11 21 20)
          (42 52 53 43)

          (11 23 22 21)
          (43 53 54 55)

          (11 12 24 23)
          (43 55 56 44)

          (12 13 25 24)
          (44 56 57 45)

          (13 27 26 25)
          (45 57 58 59)

          (13 14 28 27)
          (45 59 60 46)

          (14 15 29 28)
          (46 60 61 47)

          (15 31 30 29)
          (47 61 62 63)

          (15 8 16 31)
          (47 63 48 40)
        );
    }
);

mergePatchPairs
(
);

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

Is it because of my meshing is not suffice?

Or because of my turbulence is "off" mode?

Aref.shri July 15, 2017 09:15

Hi all!
I'm working with an example in OLAFOAM OF300_400 named wavemakerFlume. I've added a body (caisson) to the domain which has no motion yet. Now I want to add a 6-DOF motion to the body that moves with the wave in additional to an oscillating flap (wave maker that existed in the example before) and have two different kinds of movement. Does anybody have any idea how to set dynamicMeshDict file?

Jim_Hao October 28, 2017 19:22

How to apply the [B]moveDynamicMesh[/B] solver to sixDoFRigidBody dynamic mesh solver
 
Quote:

Originally Posted by wyldckat (Post 484025)

In addition, you can use the moveDynamicMesh solver, which only moves the mesh and does not do any flow simulation. This is useful for figuring out how the mesh is moving along time.
Oh, and there was a thread that had a neat example case... where instead of a cylinder, it was a moving wall... actually, here's two:

Beyond this, I'll have to test things myself and that will take quite some time.

Best regards,
Bruno

Hi, I'm new to FOAM, I also want to realize a simulation for a free oscillating flat plate. I want to use this moveDynamicMesh solver to check my dynamic mesh settings. But it shows a fatal error "Could not find U:U or p:p in database." I tried with the tutorial case for the moveDynamicMesh utility, it works, but when I tried this solver for the wingMotion case in the tutorial, it shows this Fatal error like above. I'm just wondering, if you guys also met this error before, and how to correct using this solver?
Thanks

Sachin m October 7, 2020 02:02

Quote:

Originally Posted by agnip (Post 578354)
Hi everybody!
I'm simulating free decay tests of a vertical floating cylinder in OF 2.3.0, with interDyMFoam. The cylinder is moored to the bottom with four linear springs.
it works, but it seems to be not realistic, because the motion is almost not dampened.
Did anybody work on this topic? can you suggest me the reason or the way to solve the problem?

Thank you very very much in advance.




Hi.

Could you share the case setup?

Agnese


Could you share the case setup?

ansab_sindhu February 6, 2022 15:47

Quote:

Originally Posted by wyldckat (Post 513012)
Hi Maimouna,

I'll write this post as a diary of my progress while examining your files and the case at hand. I'm using the case from post #48 as a base, then replaced the files you indicated in the post above. I used OpenFOAM 2.2.x, but should also with 2.2.2... at least I hope so.
  1. Unpacked your case and replaced the files.
  2. Did some cleaning up, removing backup files "*~" and fixed indentation inside some files.
  3. Then opened the files for the tutorial case "mesh/moveDynamicMesh/simpleHarmonicMotion" from OpenFOAM 2.2.x.
  4. Then searched for the source code of the linear spring:
    Code:

    find $FOAM_SRC -name "*linearSpring*"
    With that I found the file "linearSpring.H" and this in particular:
    Code:

            //- Anchor point, where the spring is attached to an immovable
            //  object
            point anchor_;

            //- Reference point of attachment to the solid body
            point refAttachmentPt_;

            //- Spring stiffness coefficient (N/m)
            scalar stiffness_;

            //- Damping coefficient (Ns/m)
            scalar damping_;

            //- Rest length - length of spring when no forces are applied to it
            scalar restLength_;

    Seems pretty clear what each coefficient stands for.
  5. Then I started comparing the "pointDisplacement" field set-up between cases and removed all what seemed excessive to me, since I was still trying to figure things out. Then boosted the U inlet to 100.0 m/s and simplified the BCs to the usual fixed value + zeroGradient inlet and outlet. Oh, and I relaxed a lot the damping and stiffness, so that I could clearly see where the cylinder were floating to. The case I ended up is attached as "freeOscillatingCylinder_v0.1.tar.gz". You'll notice I reduced the time settings to simulate 0.1 s only, saving each 0.01. Quick and dirty results gets us faster through the trial-and-error phase.
I think that now you can start working towards your desired test case. Study the files inside the attached case.
Run the attached case to get a feeling of how my thinking in trying to isolate-and-conquer each setting, one at a time.


Then start from this case to do small changes. First gradually change and test the "horizontalSpring" parameters to suit your case. Then try adding back the "verticalSpring". Then reduce the inlet speed from 100 to 10 and later to 1.

Always run in between changes, to see the results. This way you'll slowly but steadily find how to properly configure your case.

Only when things seem to be working properly, should you start turning on the additional features, such as the functions objects and the long run times.

Best regards,
Bruno


Hi,
Can anyone answer the following queries:


Should the value of inner distance be equal to diameter or radius?
What’s the recommended value of outerDistance? The boundary of whole domain or somewhat in between the cylinder and main boundary ?
Should the constraint of line be applied for 2-DoF? When I removed the line constraint condition, the simulation diverges… do I need to refine the mesh ?
Should the value of refAttachmentPt be equal to cylinder diameter or zero?

Will really appreciate your guidance...


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