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

oscillating cylinder dynamic mesh

Register Blogs Community New Posts Updated Threads Search

Like Tree29Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   October 9, 2014, 07:53
Default
  #61
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
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
WUYing likes this.
Maimouna is offline   Reply With Quote

Old   October 11, 2014, 15:03
Default
  #62
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Hi Maimouna,

Quote:
Originally Posted by Maimouna View Post
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 View Post
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:


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 View Post
4. Is the spring in the inlet?
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 View Post
5. What other for more clarification?
Sorry, I didn't understand this question.

Best regards,
Bruno
Attached Images
File Type: png Example of settings for linearSpring.png (8.8 KB, 869 views)
Mojtaba.a and nosajab like this.
wyldckat is offline   Reply With Quote

Old   October 12, 2014, 07:23
Default
  #63
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
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. 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
Maimouna is offline   Reply With Quote

Old   October 12, 2014, 12:29
Default
  #64
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Hi Maimouna,

Quote:
Originally Posted by Maimouna View Post
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. 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
wyldckat is offline   Reply With Quote

Old   October 25, 2014, 16:25
Default
  #65
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
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
Attached Files
File Type: gz freeOscillatingCylinder_v0.2.tar.gz (5.5 KB, 133 views)
Maimouna is offline   Reply With Quote

Old   December 8, 2014, 05:17
Default
  #66
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
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
Attached Images
File Type: png Schematic.png (6.4 KB, 248 views)
File Type: png Schematic_v2.png (5.9 KB, 203 views)

Last edited by wyldckat; December 8, 2014 at 06:00. Reason: see "edit:"
wyldckat is offline   Reply With Quote

Old   December 8, 2014, 06:31
Default
  #67
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
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 is offline   Reply With Quote

Old   December 8, 2014, 09:20
Default
  #68
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
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 that was my fault, but I couldn't find that much to explain me cylinder, spring and surrounding walls. Sorry for that stupid situation. I hope I could understand more from you or from other foamers to get the answer.

Best regards

Maimouna
Maimouna is offline   Reply With Quote

Old   December 8, 2014, 11:56
Default
  #69
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
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 View Post
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

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:


If you look at the first figure on my previous post, this will look reaaaaaaaaaaaaally familiar 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
Attached Images
File Type: png Screenshot from 2014-12-08 16:25:27.png (10.2 KB, 877 views)

Last edited by wyldckat; December 31, 2014 at 14:51. Reason: added "fixedOrientationCoeffs" to "fixedOrientation"
wyldckat is offline   Reply With Quote

Old   December 9, 2014, 06:20
Default
  #70
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
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
Maimouna is offline   Reply With Quote

Old   December 10, 2014, 15:12
Default
  #71
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Quick answers:
Quote:
Originally Posted by Maimouna View Post
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 View Post
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?
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.
wyldckat is offline   Reply With Quote

Old   December 11, 2014, 06:24
Default
  #72
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Quote:
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
Maimouna is offline   Reply With Quote

Old   December 13, 2014, 16:14
Default
  #73
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Hi Maimouna,

Quote:
Originally Posted by Maimouna View Post
If scenario 1 and 3 have 2 DOF and scenario 2 has 1 DOF, why cylinder in pointDisplacement file is type of sixDoFRigidBodyDisplacement?
I feel like giving a creative answer 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
rixa633 likes this.
wyldckat is offline   Reply With Quote

Old   December 14, 2014, 05:52
Default
  #74
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
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
Maimouna is offline   Reply With Quote

Old   December 31, 2014, 15:55
Default
  #75
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Greetings Maimouna,

Quote:
Originally Posted by Maimouna View Post
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 .

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.

Last edited by wyldckat; February 10, 2015 at 14:35. Reason: see "edit:"
wyldckat is offline   Reply With Quote

Old   January 28, 2015, 05:39
Default
  #76
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
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
Maimouna is offline   Reply With Quote

Old   January 28, 2015, 15:23
Default
  #77
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Hi Maimouna,

Quote:
Originally Posted by Maimouna View Post
After free oscillation for the rigid cylinder, now, I'm trying to do the same for the elastic (flexible) cylinder.
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 View Post
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 View Post
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
wyldckat is offline   Reply With Quote

Old   February 3, 2015, 09:16
Default
  #78
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
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. 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
Attached Images
File Type: jpg without_cylinder.jpg (91.9 KB, 134 views)
File Type: jpg cylinder.jpg (40.5 KB, 97 views)

Last edited by wyldckat; February 3, 2015 at 14:55. Reason: Changed [QUOTE][/QUOTE] to [CODE][/CODE]
Maimouna is offline   Reply With Quote

Old   February 7, 2015, 07:29
Default
  #79
Retired Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 10,975
Blog Entries: 45
Rep Power: 128
wyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to allwyldckat is a name known to all
Greetings Maimouna,
Quote:
Originally Posted by Maimouna View Post
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. 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 View Post
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:
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
wyldckat is offline   Reply With Quote

Old   February 8, 2015, 07:40
Default
  #80
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
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 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
Attached Files
File Type: gz maimouna1.geo.tar.gz (1.8 KB, 41 views)
Maimouna is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Dynamic Mesh "Shadow Wall" thezack FLUENT 0 June 4, 2013 22:09
dynamic mesh for drop interface IndrajitW FLUENT 0 March 30, 2013 08:03
dynamic mesh refinement and rhoCentralFoam ChrisA OpenFOAM Running, Solving & CFD 1 March 21, 2013 08:00
[snappyHexMesh] snappyHexMesh won't work - zeros everywhere! sc298 OpenFOAM Meshing & Mesh Conversion 2 March 27, 2011 21:11
Icemcfd 11: Loss of mesh from surface mesh option? Joe CFX 2 March 26, 2007 18:10


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