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)

Maimouna October 9, 2014 07:53

Dear Bruno,

lots of thanks for your help. I really appreciated. I'm still looking for the result. I followed what you posted in the previous post. I would like to make sure about answering some questions please
1. How to plot xy displacement to make sure if some movement, might there is movement but I couldn't figure out?

2. Is anchor the initial distance?

3. What about refAttachementPt, is it the same as anchor? From the definitions they should be different, is that correct?

4. Is the spring in the inlet?

5. What other for more clarification?

Looking forward to get your help.

Thanks in advanced and regards.

Maimouna

wyldckat October 11, 2014 15:03

1 Attachment(s)
Hi Maimouna,

Quote:

Originally Posted by Maimouna (Post 513543)
1. How to plot xy displacement to make sure if some movement, might there is movement but I couldn't figure out?

Have a look at the tutorial "mesh/moveDynamicMesh/simpleHarmonicMotion" in OpenFOAM 2.2. The "Allrun" script uses the script "extractData" to get the location of the centre of the object.

Quote:

Originally Posted by Maimouna (Post 513543)
2. Is anchor the initial distance?

3. What about refAttachementPt, is it the same as anchor? From the definitions they should be different, is that correct?

Attached is an image that I believe is representative of the 3 positions:
http://www.cfd-online.com/Forums/att...1&d=1413053681

It was hand drawn, so it's not accurate. This example has the pendulum at a stationary position, i.e. it will not move unless it is disturbed.

As for the locations of the anchor and the reference point:
  • I believe both are in world coordinates of your simulation case.
  • As for these two points being coincident, it's not physically 100% impossible, if the spring is connected to the points using another structure. Anyway, I only defined them as being in the exact same place out of convenience, otherwise I sort-of would risk seeing the cylinder floating up and down.

Quote:

Originally Posted by Maimouna (Post 513543)
4. Is the spring in the inlet?

:confused: I'm not sure I understood your question, but I believe that the answer is: No, it's not in the inlet. If I remember correctly, I ended up placing the anchor in the same exact location where the centre of the cylinder is at the starting position. As I mentioned above, it was because it was easier/convenient.

Quote:

Originally Posted by Maimouna (Post 513543)
5. What other for more clarification?

:confused: Sorry, I didn't understand this question.

Best regards,
Bruno

Maimouna October 12, 2014 07:23

Dear Bruno,

many thanks for your reply.

In question #5 What other for more clarification? I meant that if you have some other tutorials to follow to help me to get the answer of that case. I'm really strange that there is no body did such this case in OpenFOAM:confused:. I started searching for that since last April and I couldn't get the answer till today. I'm really worry about that because I have limited time to finish that:(. Please help.

Many thanks in advanced.

Maimouna

wyldckat October 12, 2014 12:29

Hi Maimouna,

Quote:

Originally Posted by Maimouna (Post 513948)
I meant that if you have some other tutorials to follow to help me to get the answer of that case. I'm really strange that there is no body did such this case in OpenFOAM:confused:. I started searching for that since last April and I couldn't get the answer till today.

Well, perhaps someone has already done this and may or may not have published it online. And even if he/she has done this, it doesn't mean that person is still working with OpenFOAM or has the time to come by the forum every once in a while and answer to questions :(
The information I told you about in the last few posts isn't something new, it's a collection of information that has been in OpenFOAM for quite sometime now. I merely interpreted some of it and simplified the case you had. You were on the right path, but it seems to me that you were trying to deal with too much complexity in a single step.

I don't know what you know so far and what you've found in all of these months. But in case you don't know, there is an unofficial wiki for OpenFOAM at http://openfoamwiki.net - there you can find this page: http://openfoamwiki.net/index.php/Handy_links - and in that page there are links to "Håkan Nilsson's PhD course", in which there are several small reports by PhD students. I believe that possibly somewhere in those reports there was something that could have helped you at least figure out how you could try to deduce where to find the solution to your problem. And as many of those reports show, the writer of the report had to do a lot of trial and error, building slowly from a simpler problem to the more complex problem.

From personal experience, most of the things I know about OpenFOAM were not from courses, it was from trial-and-error, and messing around with OpenFOAM's tutorials and code. And much of it has been because I've been helping out people on the forum, with little tasks most weekends and vacations. And this has mostly been done in my free time and unfortunately my free time is becoming more and more reduced...

Sorry, but all of this to say: the answers you are looking may very well already be answered in OpenFOAM's own tutorials and source code. Other answers will reveal themselves if you try to evolve your case slowly, one step at a time. And continue to look around OpenFOAM's tutorials and so on.

Good luck! Best regards,
Bruno

Maimouna October 25, 2014 16:25

1 Attachment(s)
Dear Bruno,

the case attached is the last thing that I got. Could you please check it for me if it is make sense. Because I need to move to the next step which it depends on it. If you could get some of your precious time to go through it, that would be really grateful.

Many thanks in advanced and regards.

Maimouna

wyldckat December 8, 2014 05:17

2 Attachment(s)
Hi Maimouna,

I'm looking right now at the file "pointDisplacement" and there is something very critical that is missing in all of this: What is the real physical representation of your cylinder?
In other words, how exactly are the springs meant to be attached to the cylinder and to the walls of the surrounding environment?
Do you have a schematic drawing of the connections between the cylinder, the springs and the surrounding walls?

-------------------------
edit: I had hoped you were online for answering the question at the time of the initial version of this post, but I guess not. So here's what I figured that needs to be explained, namely through a visual medium. Keep in mind that you're trying to simulate something that's real, which means that you'll need to deploy constraints based on a realistic experimental structure. This is what I've not seen in your questions and which I'll have to outline myself, in order to define both the intermediate concept and final implementation.

Attached are 2 images, which for the sake of completeness, also include the representation of a generic pipe (er, a large black rectangle) and a block cylinder near the centre. The description for each image is as follows:
  1. Schematic.png - Shows the first basic concept of how a cylinder could be fixed in a particular location and that would be able to float around in X and Y, while being constrained to a particular zone of operation. Here's the description:
    1. There are 4 springs: "S1", "S2", "S3" and "S4". Each will have its own stiffness and damping coefficients, which for simplicity, can all be the same.
    2. All 4 springs share a single point, which is the centre of the cylinder, identified as "O", but each has the other point defined elsewhere, namely at "A1", "A2", "A3" and "A4".
    3. The image shows the length at rest of each spring, namely when there is no fluid flow and not taking into account gravity. Each length when it's at rest (i.e. stopped) are the distances between the identified points, namely the distances "A1-O", "A2-O", "A3-O" and "A4-O".
    4. In this schematic, this means that there will be roughly 2 forces acting over X and 2 others over Y. Problem is that the vectors for these forces will unlikely remain the same over time, while the fluid is passing around the cylinder, because it will be feeling the forces all around.
  2. Schematic_v2.png - Shows the second basic concept, derived from the first one, where the cylinder is constrained in 2 additional ways:
    1. There are 2 grey lines that outline the tracks along which the cylinder is constrained to move.
    2. In addition, in a brownish colour is a rectangle that is directly connected to the cylinder and doesn't allow the cylinder to rotate; as well as forcing the cylinder to only move along the tracks defined in grey.
    3. In this situation, the springs S1 and S3 might be redundant, since they'll introduce additional forces when the cylinder is more to the bottom or more to the top.
Let me save this post... I'll edit again with the respective definitions for the file "pointDisplacement" in a few minutes.


Best regards,
Bruno

Maimouna December 8, 2014 06:31

Dear Bruno,

lots of thanks for your post. Now, I'm going carefully to understand what you post. Waiting for your next post about definition for pointDisplacement file.

Many thanks and regards.

Maimouna

Maimouna December 8, 2014 09:20

Dear Bruno,

come back to your questions. I didn't have my own schematic drawing of the connections between the cylinder, the spring and the walls. I just tried to follow some schematics found on papers such as the one that mentioned in http://waset.org/publications/11024/vortex-induced-vibration-characteristics-of-an-elastic-circular-cylinder but using my own bounding box.

I'm sure that does not make sense :o that was my fault, but I couldn't find that much to explain me cylinder, spring and surrounding walls. Sorry for that stupid situation:D. I hope I could understand more from you or from other foamers to get the answer.

Best regards

Maimouna

wyldckat December 8, 2014 11:56

1 Attachment(s)
Hi Maimouna,

I ended up having a few setbacks and didn't manage to write everything in a single go.
Quote:

Originally Posted by Maimouna (Post 522940)
I didn't have my own schematic drawing of the connections between the cylinder, the spring and the walls. I just tried to follow some schematics found on papers such as the one that mentioned in http://waset.org/publications/11024/vortex-induced-vibration-characteristics-of-an-elastic-circular-cylinder but using my own bounding box.

Details about the paper, in case it disappears:
  • T. Li, J.Y. Zhang, W.H. Zhang and M.H. Zhu
  • Vortex-Induced Vibration Characteristics of an Elastic Circular Cylinder
  • World Academy of Science, Engineering and Technology, Vol:3 2009-12-27

:rolleyes: So I was looking at this paper and when I saw Figure 1, I bursted into laughs... just in case the paper goes away for some reason, Figure 1 is this one:
http://www.cfd-online.com/Forums/att...1&d=1418055958

If you look at the first figure on my previous post, this will look reaaaaaaaaaaaaally familiar :D at least to me, because of the drawing I made and which might not be fully understandable, but is nearly identical...
The difference is that I was thinking of having all of the springs with the same specifications, namely both stiffness and damping. In the paper's schematic, 2 springs only have stiffness and then the 2 other are dampers.

Now, the first big question: Why use the cross-like structure?
The answer is simple (using my earlier drawing from the previous post): because if only 2 springs are used on each direction, for example, if only S1 and S2 existed, this would mean that the cylinder could potentially escape to the upper left corner, by passing through the middle point between A1 and A2.

OK, the file settings for each scenario, at least conceptually, it should be something like this:
  1. Scenario 1, where I had 4 springs, all of the same size (0.5m for this example):
    Code:

        cylinder
        {
            type            sixDoFRigidBodyDisplacement;

            centreOfMass    (4 0 0.5);
            momentOfInertia (1.4539 1.4539 1.24625);
            mass            9.97;
            orientation
            (
                1 0 0
                0 1 0
                0 0 1
            );
           
            velocity        (0 0 0);
            acceleration    (0 0 0);
            angularMomentum (0 0 0);
            torque          (0 0 0);
            gravity        (0 -9.81 0);
            rhoName        rhoInf;
            rhoInf          1;
            report          on;

            restraints
            {
                S1
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (3.5 0 0.5); //A1
                        refAttachmentPt (4 0 0.5);
                        stiffness      4;
                        damping        2;
                        restLength      0.5;
                    }
                }

                S2
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (4 0.5 0.5); //A2
                        refAttachmentPt (4 0 0.5);
                        stiffness      4;
                        damping        2;
                        restLength      0.5;
                    }
                }

                S3
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (4.5 0 0.5); //A3
                        refAttachmentPt (4 0 0.5);
                        stiffness      4;
                        damping        2;
                        restLength      0.5;
                    }
                }

                S4
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (4 -0.5 0.5); //A4
                        refAttachmentPt (4 0 0.5);
                        stiffness      4;
                        damping        2;
                        restLength      0.5;
                    }
                }

            }

            constraints
            {
                maxIterations      500;

                DontMoveOverZ
                {
                    sixDoFRigidBodyMotionConstraint fixedAxis;
                    tolerance      1e-06;
                    relaxationFactor 0.7;
                    fixedAxisCoeffs
                    {
                        axis            ( 0 0 1 );
                    }
                }
            }
           
            value          uniform (0 0 0);
        }

  2. Scenario 2, even if it doesn't make much sense, it has the 4 springs, is constrained to only move along Y and cannot rotate:
    Code:

        cylinder
        {
            type            sixDoFRigidBodyDisplacement;

            centreOfMass    (4 0 0.5);
            momentOfInertia (1.4539 1.4539 1.24625);
            mass            9.97;
            orientation
            (
                1 0 0
                0 1 0
                0 0 1
            );
           
            velocity        (0 0 0);
            acceleration    (0 0 0);
            angularMomentum (0 0 0);
            torque          (0 0 0);
            gravity        (0 -9.81 0);
            rhoName        rhoInf;
            rhoInf          1;
            report          on;

            restraints
            {
                S1
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (3.5 0 0.5); //A1
                        refAttachmentPt (4 0 0.5);
                        stiffness      4;
                        damping        2;
                        restLength      0.5;
                    }
                }

                S2
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (4 0.5 0.5); //A2
                        refAttachmentPt (4 0 0.5);
                        stiffness      4;
                        damping        2;
                        restLength      0.5;
                    }
                }

                S3
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (4.5 0 0.5); //A3
                        refAttachmentPt (4 0 0.5);
                        stiffness      4;
                        damping        2;
                        restLength      0.5;
                    }
                }

                S4
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (4 -0.5 0.5); //A4
                        refAttachmentPt (4 0 0.5);
                        stiffness      4;
                        damping        2;
                        restLength      0.5;
                    }
                }

            }

            constraints
            {
                maxIterations      500;

                DontMoveOverZ
                {
                    sixDoFRigidBodyMotionConstraint fixedAxis;
                    tolerance      1e-06;
                    relaxationFactor 0.7;
                    fixedAxisCoeffs
                    {
                        axis            ( 0 0 1 );
                    }
                }

                moveOnlyAlongY
                {
                    sixDoFRigidBodyMotionConstraint fixedLine;
                    tolerance        1e-9;
                    relaxationFactor 0.7;
                    fixedLineCoeffs
                    {
                        refPoint      (4 0 0.5);
                        direction    (0 1 0);
                    }
                }

                DontRotate
                {
                    //Warning: Only valid where the predicted deviation from alignment is < 90 degrees.
                    sixDoFRigidBodyMotionConstraint  fixedOrientation;
                    tolerance      1e-06;
                    relaxationFactor 0.7;
                    fixedOrientationCoeffs
                    {
                      //This is necessary, even if kept empty
                    }
                }
            }
           
            value          uniform (0 0 0);
        }

    The warning is indicated in the source code file:
    Code:

    $FOAM_SRC/postProcessing/functionObjects/forces/pointPatchFields/derived/sixDoFRigidBodyMotion/sixDoFRigidBodyMotionConstraint/fixedOrientation/fixedOrientation.H
  3. Scenario 3, namely the one on the mentioned paper, using the same dimensions for the springs:
    Code:

        cylinder
        {
            type            sixDoFRigidBodyDisplacement;

            centreOfMass    (4 0 0.5);
            momentOfInertia (1.4539 1.4539 1.24625);
            mass            9.97;
            orientation
            (
                1 0 0
                0 1 0
                0 0 1
            );
           
            velocity        (0 0 0);
            acceleration    (0 0 0);
            angularMomentum (0 0 0);
            torque          (0 0 0);
            gravity        (0 -9.81 0);
            rhoName        rhoInf;
            rhoInf          1;
            report          on;

            restraints
            {
                S1
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (3.5 0 0.5); //A1
                        refAttachmentPt (4 0 0.5);
                        stiffness      4;
                        damping        0;
                        restLength      0.5;
                    }
                }

                S2
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (4 0.5 0.5); //A2
                        refAttachmentPt (4 0 0.5);
                        stiffness      4;
                        damping        0;
                        restLength      0.5;
                    }
                }

                S3
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (4.5 0 0.5); //A3
                        refAttachmentPt (4 0 0.5);
                        stiffness      0;
                        damping        2;
                        restLength      0.5;
                    }
                }

                S4
                {
                    sixDoFRigidBodyMotionRestraint linearSpring;

                    linearSpringCoeffs
                    {
                        anchor          (4 -0.5 0.5); //A4
                        refAttachmentPt (4 0 0.5);
                        stiffness      0;
                        damping        2;
                        restLength      0.5;
                    }
                }

            }

            constraints
            {
                maxIterations      500;

                DontMoveOverZ
                {
                    sixDoFRigidBodyMotionConstraint fixedAxis;
                    tolerance      1e-06;
                    relaxationFactor 0.7;
                    fixedAxisCoeffs
                    {
                        axis            ( 0 0 1 );
                    }
                }
            }
           
            value          uniform (0 0 0);
        }

There you go, the 3 scenarios are hereby written.

Best regards,
Bruno

Maimouna December 9, 2014 06:20

Dear Bruno,

lots of thanks for your post. I tried them all. They all work fine except scenario2 gives me error in
sixDoFRigidBodyMotionConstraint fixedOrientation;
but when committing it, works fine. Now, I'm working to see changes and comparison with other results.

I have one more question please, is it possible to change to one or two degrees of freedom? What could I do to work in one or two degrees of freedom in the same file?

Many thanks for your help and regards.

Maimouna

wyldckat December 10, 2014 15:12

Quick answers:
Quote:

Originally Posted by Maimouna (Post 523112)
They all work fine except scenario2 gives me error in
sixDoFRigidBodyMotionConstraint fixedOrientation;

I was hoping I didn't need to test this myself... with any luck, I'll be able to look into this during my vacations at the end of this year...

Quote:

Originally Posted by Maimouna (Post 523112)
I have one more question please, is it possible to change to one or two degrees of freedom? What could I do to work in one or two degrees of freedom in the same file?

:confused: Uhm... can you please be more specific? Schematics and/or detailed description would come in handy.
I ask this because Scenarios 1 and 3 have technically 2 degrees of freedom; Scenario 2 is meant to have only 1 degree of freedom.

Maimouna December 11, 2014 06:24

Quote:

:confused: Uhm... can you please be more specific? Schematics and/or detailed description would come in handy.
I ask this because Scenarios 1 and 3 have technically 2 degrees of freedom; Scenario 2 is meant to have only 1 degree of freedom.
Dear Bruno,

If scenario 1 and 3 have 2 DOF and scenario 2 has 1 DOF, why cylinder in pointDisplacement file is type of sixDoFRigidBodyDisplacement?

Sorry, that might be a stupid question:( but I need to understand how it works exactly.

Many thanks for your help.

Best regards

Maimouna

wyldckat December 13, 2014 16:14

Hi Maimouna,

Quote:

Originally Posted by Maimouna (Post 523451)
If scenario 1 and 3 have 2 DOF and scenario 2 has 1 DOF, why cylinder in pointDisplacement file is type of sixDoFRigidBodyDisplacement?

:eek: I feel like giving a creative answer :D Er, maybe better not make it too creative...
OK, imagine this:
  1. A tire floating around in deep space has 6 degrees of freedom... and possibly 1 extra degree over time, depending any strong nearby gravitational sources... but I digress.
  2. The same tire was originally a few hours earlier on a rear tire axle on a car, while driving on a road on Earth. In this case, the tire had 2 or 3 DoF, depending on the point of view. This was because being connected to the axle limited at least 3 DoF.
  3. As to how the tire got into deep space... I'll leave it to your imagination, since how it got there is irrelevant to this example ;)
This to say that the constraints in the "sixDoFRigidBodyDisplacement" are meant to be used to constrain DoFs, i.e. neutralize them completely.
The restraints will restrain DoFs, mostly by applying springs and dampers.


As for "sixDoFRigidBodyDisplacement": this is implemented in a CFD code, namely OpenFOAM, therefore it makes sense to implement the code for the general solution, instead of coding each individual possibility. It would be mind boggling to have over 100 combinations of DoFs implemented...

Best regards,
Bruno

Maimouna December 14, 2014 05:52

Dear Bruno,

lots of thanks for your explanation. Waiting for you to test all three scenarios when you get time for more clarification. I started testing them for different cases with different bounding boundaries and boundary conditions.

Lots of thanks in advanced and kind regards.

Maimouna

wyldckat December 31, 2014 15:55

3 Attachment(s)
Greetings Maimouna,

Quote:

Originally Posted by Maimouna (Post 523852)
Waiting for you to test all three scenarios when you get time for more clarification.

Only at 3h00 from the end of 2014 was I able to finally look into this :rolleyes:.

The only problem that scenario 2 had was the there was a small detail missing... I've rectified post #69:
Code:

            DontRotate
            {
                //Warning: Only valid where the predicted deviation from alignment is < 90 degrees.
                sixDoFRigidBodyMotionConstraint  fixedOrientation;
                tolerance      1e-06;
                relaxationFactor 0.7;
                fixedOrientationCoeffs
                {
                  //This is necessary, even if kept empty
                }
            }

Attached are the 3 scenarios. It looks like the 3rd scenario is more in accordance with the paper. The reason for this (which I'm guessing someone will eventually ask about this here on the forum) is as follows:
  1. Scenario 1: has 4 springs with damping effects. This means that 4 forces are applied in all 4 springs, achieved by the spring effect and the damper will decelerate on all four springs. This results in the cylinder only being forced to move along X, because the forces along Y will balance things out and because the inlet flow is symmetric. Note: There is no rotation, because the fluid has pretty much no grip on the surface of the cylinder.
  2. Scenario 2: by applying more constraints to scenario 1, the result is that the cylinder is constrained by opposing forces over Y which do not allow it to move along Y.
  3. Scenario 3: S1 and S2 are springs and S3 and S4 are dampers. This means that the forces are not even on all directions, which has lead the cylinder to be more easily be pulled up by the S2 spring, leading to an oscillating behaviour over both X and Y. Again, no rotation occurs, because the fluid has pretty much no grip on the surface of the cylinder.
Best regards,
Bruno

--------------
edit: Note to careless readers: these cases that are attached will likely only work on OpenFOAM 2.2.2 and 2.2.x. For more details, read the posts above as well.

Maimouna January 28, 2015 05:39

Dear Bruno,

many thanks for your help and sorry for late reply. I was away and have limited connection to the internet.

After free oscillation for the rigid cylinder, now, I'm trying to do the same for the elastic (flexible) cylinder. I have some questions for that please
1. Have I solved the elastic equation for the solid part? If yes, where exactly have solved that equations using OpenFOAM?

2. It is important that to mesh inside the cylinder. What can add to mesh inside the cylinder in my previous .geo file?

Any idea please with lots of thanks in advanced.

Maimouna

wyldckat January 28, 2015 15:23

Hi Maimouna,

Quote:

Originally Posted by Maimouna (Post 529340)
After free oscillation for the rigid cylinder, now, I'm trying to do the same for the elastic (flexible) cylinder.

:confused: Uh... elastic? You're going to have to be a lot more specific on what you're referring to as "elastic". At least a description of 100 to 500 words of what you're specifically asking about.

Quote:

Originally Posted by Maimouna (Post 529340)
1. Have I solved the elastic equation for the solid part? If yes, where exactly have solved that equations using OpenFOAM?

No. If it's a solid cylinder, the best you can do is get the forces applied to the cylinder.

Quote:

Originally Posted by Maimouna (Post 529340)
2. It is important that to mesh inside the cylinder. What can add to mesh inside the cylinder in my previous .geo file?

You're asking about meshing 2 regions, not just one region. The simplest is to create another mesh just for the internal cylinder. Then one mesh will be assigned to one region and the other mesh is assigned to the other region.

Best regards,
Bruno

Maimouna February 3, 2015 09:16

2 Attachment(s)
Dear Bruno,

I add part of meshing cylinder in geo file as shown in the attached pictures. Checking mesh was fine. But, adding that new geo file shown below
Code:

D = 1;
R = 0.5*D;

CX = 4*D;
CY = 0.0;

S = 1.0/Sqrt(2);

DR1 = R*S;
DR2 = (R + 2.0*D)*S;

Point(1) = {0, -4*D, 0};
Point(2) = {0, CY - DR2, 0};
Point(3) = (0, CY + DR2, 0);
Point(4) = {0, 4*D, 0};
Point(5) = {CX - DR2, -4*D, 0};
Point(6) = {CX - DR2, CY - DR2, 0};
Point(7) = {CX - DR2, CY + DR2, 0};
Point(8) = {CX - DR2, 4*D, 0};
Point(9) = {CX - DR1, CY - DR1, 0};
Point(10) = {CX - DR1, CY + DR1, 0};
Point(11) = {CX, CY, 0};
Point(12) = {CX + DR1, CY - DR1, 0};
Point(13) = {CX + DR1, CY + DR1, 0};
Point(14) = {CX + DR2, -4*D, 0};
Point(15) = {CX + DR2, CY - DR2, 0};
Point(16) = {CX + DR2, CY + DR2, 0};
Point(17) = {CX + DR2, 4*D, 0};
Point(18) = {16*D, -4*D, 0};
Point(19) = {16*D, CY - DR2, 0};
Point(20) = {16*D, CY + DR2, 0};
Point(21) = {16*D, 4*D, 0};
Point(22) = {0, CY, 0};
Point(23) = {CX - 2*D, CY, 0};
Point(24) = {CX + 2*D, CY, 0};
Point(25) = {16*D, CY, 0};
Point(26) = {CX, -4*D, 0};
Point(27) = {CX, CY - 2*D, 0};
Point(28) = {CX, CY + 2*D, 0};
Point(29) = {CX, 4*D, 0};
Point(30) = {CX, CY - R, 0};
Point(31) = {CX - R, CY, 0};
Point(32) = {CX, CY + R, 0};
Point(33) = {CX + R, CY, 0};
Line(1) = {4, 8};
Line(2) = {8, 29};
Line(3) = {29, 17};
Line(4) = {17, 21};
Line(5) = {21, 20};
Line(6) = {20, 25};
Line(7) = {25, 19};
Line(8) = {19, 18};
Line(9) = {18, 14};
Line(10) = {14, 26};
Line(11) = {26, 5};
Line(12) = {5, 1};
Line(13) = {1, 2};
Line(14) = {2, 22};
Line(15) = {22, 3};
Line(16) = {3, 4};
Line(17) = {3, 7};
Line(18) = {7, 8};
Line(19) = {2, 6};
Line(20) = {6, 5};
Line(21) = {15, 14};
Line(22) = {15, 19};
Line(23) = {16, 17};
Line(24) = {16, 20};
Line(25) = {25, 24};
Line(26) = {23, 22};
Line(27) = {28, 29};
Line(28) = {27, 26};
Line(29) = {27, 15};
Line(30) = {15, 24};
Line(31) = {24, 16};
Line(32) = {16, 28};
Line(33) = {28, 7};
Line(34) = {7, 23};
Line(35) = {23, 6};
Line(36) = {6, 27};
Line(37) = {30, 27};
Line(38) = {31, 23};
Line(39) = {33, 24};
Line(40) = {32, 28};
Line(41) = {10, 7};
Line(42) = {9, 6};
Line(43) = {13, 16};
Line(44) = {12, 15};
Circle(45) = {31, 11, 10};
Circle(46) = {10, 11, 32};
Circle(47) = {32, 11, 13};
Circle(48) = {13, 11, 33};
Circle(49) = {33, 11, 12};
Circle(50) = {12, 11, 30};
Circle(51) = {30, 11, 9};
Circle(52) = {9, 11, 31};
Line Loop(53) = {17, 18, -1, -16};
Ruled Surface(54) = {53};
Line Loop(55) = {33, 18, 2, -27};
Ruled Surface(56) = {55};
Line Loop(57) = {32, 27, 3, -23};
Ruled Surface(58) = {57};
Line Loop(59) = {24, -5, -4, -23};
Ruled Surface(60) = {59};
Line Loop(61) = {25, 31, 24, 6};
Ruled Surface(62) = {61};
Line Loop(63) = {30, -25, 7, -22};
Ruled Surface(64) = {63};
Line Loop(65) = {8, 9, -21, 22};
Ruled Surface(66) = {65};
Line Loop(67) = {21, 10, -28, 29};
Ruled Surface(68) = {67};
Line Loop(69) = {11, -20, 36, 28};
Ruled Surface(70) = {69};
Line Loop(71) = {12, 13, 19, 20};
Ruled Surface(72) = {71};
Line Loop(73) = {19, -35, 26, -14};
Ruled Surface(74) = {73};
Line Loop(75) = {34, 26, 15, 17};
Ruled Surface(76) = {75};
Line Loop(77) = {42, -35, -38, -52};
Ruled Surface(78) = {77};
Line Loop(79) = {36, -37, 51, 42};
Ruled Surface(80) = {79};
Line Loop(81) = {29, -44, 50, 37};
Ruled Surface(82) = {81};
Line Loop(83) = {44, 30, -39, 49};
Ruled Surface(84) = {83};
Line Loop(85) = {39, 31, -43, 48};
Ruled Surface(86) = {85};
Line Loop(87) = {43, 32, -40, 47};
Ruled Surface(88) = {87};
Line Loop(89) = {46, 40, 33, -41};
Ruled Surface(90) = {89};
Line Loop(91) = {38, -34, -41, -45};
Ruled Surface(92) = {91};

RHO1 = 20; // Vertical near-wall parts
RHO2 = 15;
RHO3 = 15;
RHO4 = 100; // Outlet channel
RHO5 = 20;
RHO6 = 20; // Inlet channel
RHO7 = 30;

Transfinite Line {13, 20, 28, 21, 8} = RHO1;
Transfinite Line {16, 18, 27, 23, 5} = RHO1;
Transfinite Line {15, 34, 45} = RHO2;

// Dense mesh in the middle
Transfinite Line {48, 6} = RHO7 Using Progression 0.97;
Transfinite Line {31} = RHO7 Using Progression 1.03;

Transfinite Line {14, 35, 52} = RHO2;

// Dense mesh in the middle
Transfinite Line {49, 7} = RHO7 Using Progression 1.03;
Transfinite Line {30} = RHO7 Using Progression 0.97;

Transfinite Line {11, 36, 51, 46, 33, 2} = RHO3;
Transfinite Line {10, 29, 50, 47, 32, 3} = RHO3;
Transfinite Line {9, 22, 25, 24, 4} = RHO4;
Transfinite Line {42, 37, 44, 39, 43, 40, 41, 38} = RHO5 Using Progression 1.02;
Transfinite Line {1, 17, 26, 19, 12} = RHO6;

Transfinite Surface "*";
Recombine Surface "*";

Extrude {0, 0, D} {
  Surface{54, 76, 74, 72, 70, 80, 78, 92, 90, 56, 58, 88, 86, 84, 82, 68, 66, 64, 62, 60};
  Layers{1};
  Recombine;
}

Line Loop(533) = {52, 45, 46, 47, 48, 49, 50, 51};
Plane Surface(534) = {533};
cylindervolume[]={Extrude {0, 0, D} {
  Surface{534};
  Layers{1};
  Recombine;
}
};
//cylindervolume[] is a list
//with this naming policy i do not need to know the volume ID to set a group on it

Physical Surface("inlet") = {113, 131, 157, 171};
Physical Surface("outlet") = {453, 483, 509, 523};
Physical Surface("walls") = {167, 189, 435, 457, 527, 329, 307, 109};
Physical Surface("cylinder") = {417, 399, 377, 219, 245, 267, 277, 355};
Physical Surface("top") = {114, 136, 158, 180, 202, 444, 466, 488, 510, 532, 334, 312, 246, 224, 422, 400, 378, 356, 290, 268};
Physical Surface("bottom") = {54, 76, 74, 72, 70, 68, 66, 64, 62, 60, 58, 56, 92, 78, 80, 82, 84, 86, 88, 90};
Physical Volume("channel") = {5, 4, 3, 7, 6, 15, 16, 14, 17, 18, 19, 20, 11, 12, 13, 9, 8, 10, 1, 2};
Physical Volume("cylinderv") = cylindervolume[];

//Mesh 3;
Save "elastic_cylinder-2D.msh";

in the boundary file doesn't show any about physical volume, it gives the same boundary file as seen before:confused:. Thus, there is no different in the simulation after replacing geo file with the new one attached above:( why? And that leads to no meshing part in the cylinder shown in paraview. I tested that in the case attached freeOscillatingCylinder_scenario1 that attached in the previous some posts.

For more clarification about elastic (flexible) cylinder, the shape of the elastic cylinder will change when any force affects on it. I'm looking to see that in paraview.

Thanks in advanced and regards.

Maimouna

wyldckat February 7, 2015 07:29

Greetings Maimouna,
Quote:

Originally Posted by Maimouna (Post 530167)
I add part of meshing cylinder in geo file as shown in the attached pictures. Checking mesh was fine. But, adding that new geo file shown below

[...]

in the boundary file doesn't show any about physical volume, it gives the same boundary file as seen before:confused:. Thus, there is no different in the simulation after replacing geo file with the new one attached above:( why? And that leads to no meshing part in the cylinder shown in paraview.

What I wrote was:
Quote:

The simplest is to create another mesh just for the internal cylinder.
This means that you need another mesh file, it should not be the exact same mesh file with an added cylinder in the middle :(.

In addition, the geo file you provided did not generate a mesh for me. In case you're not aware, you can compress the geo file to a ZIP file and attach the zip file to the post.


Quote:

Originally Posted by Maimouna (Post 530167)
For more clarification about elastic (flexible) cylinder, the shape of the elastic cylinder will change when any force affects on it. I'm looking to see that in paraview.

Remember what I wrote? I'll remind you:
Quote:

:confused: Uh... elastic? You're going to have to be a lot more specific on what you're referring to as "elastic". At least a description of 100 to 500 words of what you're specifically asking about.
You wrote ... 28 words. Are you even serious about this? :(
Don't understand why I asked you for a 100-500 word description on what you're specifically asking about? :( I'll tell you:
  1. There are at least several different types of forces that could be used for the interior of your cylinder:
    1. compressed gas
    2. compressed liquid
    3. foam (or some other similar material)
  2. Then there is also the material of the surface of the cylinder itself:
    1. the cylinder could be made of some sort of sheet metal or plastic.
    2. could be a magnetically driven surface...
  3. All of the above types of forces are ruled by different physical properties and can be modelled in various different ways.
  4. From your description, it feels like your describing could be an empty 33cl beverage tin... or a balloon. I don't know, it's not descriptive enough.
Please, be more descriptive!! We've already been through this before!!! Remember when I had to do all of the thinking for you regarding how the cylinder was held in place? It was only a few posts above!!!

Please, this is not a doctor's office where you come in to ask for a solution for a headache in your head and expect a pill for the pain to be the solution to the problem. :(

Best regards,
Bruno

Maimouna February 8, 2015 07:40

1 Attachment(s)
Dear Bruno,

Quote:

In addition, the geo file you provided did not generate a mesh for me. In case you're not aware, you can compress the geo file to a ZIP file and attach the zip file to the post.
I uploaded geo file as ZIP file.

I'm so sorry about less descriptive about elastic circular cylinder. I'm still reading to get the full description. The topic that I would like to find out the results is the same topic that discussed before for rigid cylinder, but this time (Vortex-induced vibration of an elastic cylinder). In the elastic cylinder topic, I have to use the dynamic elastic equation which I think discussed in FSI library of OpenFOAM. For the elastic cylinder we should find displacements inside cylinder at all nodes. When I search about solving FSI problem using OpenFOAM, I could end up with using such FSI solvers in foam-extend-3.1. Because there are lots of structural solvers in that foam version. Take for example HronTurekFsi case in icoFsiElasticNonLinULSolidFoam solver in silidMechanics tutorial. I'm not sure if I right or not:confused: but that what I'm studying at the moment to understand icoFsiElasticNonLinULSolidFoam environment and then making some changes regarding my case.

If you could help me and give me some advice to guide me to the right way, I would be really appreciated.

Kind regards


All times are GMT -4. The time now is 20:10.