CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

HronTurekFsi3 foam-extend3.1

Register Blogs Community New Posts Updated Threads Search

Like Tree15Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 5, 2015, 07:45
Default
  #21
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear Bruno,

I'm using your FSI library in foam-extend3.1, fsiFoam solver, in order to get the solution for 2d and 3d case of of the elastic cantilever attached to a square bluff body. I already get the solution for 2d case, now, I'm working for 3d case. I need to use extrude2dMesh utility in order to change from 2d to 3d. Is that possible? If yes, could you please send me steps how to apply that.

Many thanks in advanced and regards.

Maimouna
Maimouna is offline   Reply With Quote

Old   November 8, 2015, 14:46
Default
  #22
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 answer: http://www.cfd-online.com/Forums/ope...-not-work.html
wyldckat is offline   Reply With Quote

Old   November 9, 2015, 06:29
Default
  #23
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear Bruno,

I tried what people posted in http://www.cfd-online.com/Forums/ope...-not-work.html. My extrude2DMeshDict in system directory is
Quote:
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.0 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object extrude2DMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //


extrudeModel linearDirection;

patchType empty;

nLayers 1;

expansionRatio 1.0;

linearDirectionCoeffs
{
direction (0 0 1);
thickness 0.01;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
then, run extrude2DMesh polyMesh2D, the error that got is shown in the terminal results here
Quote:
owner@owner-HP-Pavilion-Sleekbook-15-PC:~/foam/owner-3.1/FluidStructureInteraction/run/fsiFoam/myCylinderCase-FsiLinear3dExtrude/fluid$ extrude2DMesh polyMesh2D
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 3.1 |
| \\ / A nd | Web: http://www.extend-project.de |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 3.1-f61aab88e799
Exec : extrude2DMesh polyMesh2D
Date : Nov 09 2015
Time : 11:21:05
Host : owner-HP-Pavilion-Sleekbook-15-PC
PID : 3396
CtrlDict : /home/owner/foam/foam-extend-3.1/etc/controlDict
Case : /home/owner/foam/owner-3.1/FluidStructureInteraction/run/fsiFoam/myCylinderCase-FsiLinear3dExtrude/fluid
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Create polyMesh for time = 0



--> FOAM FATAL IO ERROR:
wrong token type - expected Scalar found on line 0 the word 'polyMesh2D'

file: IStringStream.sourceFile at line 0.

From function operator>>(Istream&, Scalar&)
in file lnInclude/Scalar.C at line 85.

FOAM exiting

owner@owner-HP-Pavilion-Sleekbook-15-PC:~/foam/owner-3.1/FluidStructureInteraction/run/fsiFoam/myCylinderCase-FsiLinear3dExtrude/fluid$

Note that, I add the same extrude2DMeshDict file for both fluid and solid directories.

Best regards
Maimouna is offline   Reply With Quote

Old   November 15, 2015, 14:53
Default
  #24
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,

Sorry, I didn't have time to test and to take a better look at this the other day. The first problem is that the thread I mentioned is for OpenFOAM 2.2, which has a considerably different extrude2DMesh application from the one in foam-extend 3.1.

Looks like extrude2dMesh is not what you are looking for. extrudeMesh does what you want:
  1. I had to first modify the file "blockMeshDict" and separate the "front" and "back" patches, now named "frontPlane" and "backPlane".
  2. Then I copied the file "extrudeProperties" from the folder "$FOAM_UTILITIES/mesh/generation/extrudeMesh", into the "fluid/constant" folder.
  3. I then modified the content to this:
    Code:
    /*--------------------------------*- C++ -*----------------------------------*\
    | =========                 |                                                 |
    | \\      /  F ield         | foam-extend: Open Source CFD                    |
    |  \\    /   O peration     | Version:     3.1                                |
    |   \\  /    A nd           | Web:         http://www.extend-project.de       |
    |    \\/     M anipulation  |                                                 |
    \*---------------------------------------------------------------------------*/
    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        object      extrudeProperties;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    
    // Where to get surface from: either from surface ('surface') or
    // from (flipped) patch of existing case ('patch')
    constructFrom patch;    //surface;
    
    // If construct from (flipped) patch
    sourceCase "$FOAM_CASE";
    sourcePatch frontPlane;
    
    // Flip surface normals before usage.
    flipNormals false;
    
    // If construct from surface
    //surface "movingWall.sMesh";
    
    
    // Do front and back need to be merged? Usually only makes sense for 360
    // degree wedges.
    mergeFaces false;
    
    
    //- Linear extrusion in point-normal direction
    extrudeModel        linearNormal;
    
    nLayers             20;
    
    linearNormalCoeffs
    {
        thickness       1.0;
    }
    
    
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
  4. Then I ran:
    Code:
    blockMesh
    extrudeMesh
    But it didn't give the exact result I was hoping for.

But then I though a bit better and I have to ask: Why are you trying to complicate this, when you can simply modify the two "blockMeshDict" files and change the Z position values and increase the mesh refinement along that direction?

Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   November 19, 2015, 07:06
Default
  #25
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear Bruno,

many thanks for your last post. I tried your both suggestion

Code:
I had to first modify the file  "blockMeshDict" and separate the "front" and "back" patches, now named  "frontPlane" and "backPlane".
Then I copied the file "extrudeProperties" from the folder "$FOAM_UTILITIES/mesh/generation/extrudeMesh", into the "fluid/constant" folder.
I then modified the content to this:

Code:
 /*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | foam-extend: Open Source CFD                    |
|  \\    /   O peration     | Version:     3.1                                |
|   \\  /    A nd           | Web:         http://www.extend-project.de       |
|    \\/     M anipulation  |                                                 | \*---------------------------------------------------------------------------*/
FoamFile
{
     version     2.0;
     format      ascii;
     class       dictionary;
     object      extrudeProperties;
}

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

// Where to get surface from: either from surface ('surface') or
// from (flipped) patch of existing case ('patch')
constructFrom patch; //surface;

// If construct from (flipped) patch
sourceCase "$FOAM_CASE";
sourcePatch frontPlane;

// Flip surface normals before usage.
flipNormals false;
// If construct from surface
//surface "movingWall.sMesh";

// Do front and back need to be merged? Usually only makes sense for 360
// degree wedges.
mergeFaces false;

//- Linear extrusion in point-normal direction
extrudeModel        linearNormal;
nLayers             20;

linearNormalCoeffs
{
     thickness       1.0;
}

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Then I ran:
Code:
blockMesh extrudeMesh
But it didn't give the exact result I was hoping for.

also, I didn't find what I hope. ExtrudeMesh utility give me this error
Code:
owner@owner-HP-Pavilion-Sleekbook-15-PC:~/foam/owner-3.1/FluidStructureInteraction/run/fsiFoam/myCylinderCase-FsiLinear3dExtrude/fluid$ extrudeMesh 
/*---------------------------------------------------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | foam-extend: Open Source CFD                    |
|  \\    /   O peration     | Version:     3.1                                |
|   \\  /    A nd           | Web:         http://www.extend-project.de       |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
Build    : 3.1-f61aab88e799
Exec     : extrudeMesh
Date     : Nov 19 2015
Time     : 11:45:24
Host     : owner-HP-Pavilion-Sleekbook-15-PC
PID      : 4044
CtrlDict : /home/owner/foam/foam-extend-3.1/etc/controlDict
Case     : /home/owner/foam/owner-3.1/FluidStructureInteraction/run/fsiFoam/myCylinderCase-FsiLinear3dExtrude/fluid
nProcs   : 1
SigFpe   : Enabling floating point exception trapping (FOAM_SIGFPE).

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Selecting extrudeModel linearNormal
Extruding patch frontPlane on mesh "/home/owner/foam/owner-3.1/FluidStructureInteraction/run/fsiFoam/myCylinderCase-FsiLinear3dExtrude/fluid"

Create polyMesh for time = 0



--> FOAM FATAL ERROR: 
Cannot find patch frontPlane in the source mesh.
Valid patch names are 
3
(
sides
originalPatch
otherSide
)


    From function extrudeMesh
    in file extrudeMesh.C at line 105.

FOAM exiting

owner@owner-HP-Pavilion-Sleekbook-15-PC:~/foam/owner-3.1/FluidStructureInteraction/run/fsiFoam/myCylinderCase-FsiLinear3dExtrude/fluid$
That tells frontPlane is a wrong patch name. Any idea to prevent that?

The second suggestion

Code:
But then I though a bit better and I have to ask: Why are you trying to  complicate this, when you can simply modify the two "blockMeshDict"  files and change the Z position values and increase the mesh refinement  along that direction?
I tried that, it is running but the beam is not moving. My case is attached to check please.

Kind regards

Maimouna
Attached Files
File Type: gz myCylinderCase-Fsi3d.tar.gz (11.3 KB, 7 views)

Last edited by wyldckat; November 22, 2015 at 15:08. Reason: repaired broken dictionary content
Maimouna is offline   Reply With Quote

Old   November 22, 2015, 15:31
Default
  #26
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
Then I ran:
Code:
blockMesh
extrudeMesh
But it didn't give the exact result I was hoping for.

also, I didn't find what I hope. ExtrudeMesh utility give me this error
Code:
[...]

--> FOAM FATAL ERROR: 
Cannot find patch frontPlane in the source mesh.
Valid patch names are 
3
(
sides
originalPatch
otherSide
)
[...]
That tells frontPlane is a wrong patch name. Any idea to prevent that?
I've tested this just now with the case you attached and it worked for me!
Code:
Build    : 3.1-1dd681f6e943
Exec     : extrudeMesh
Date     : Nov 22 2015
Time     : 20:14:19
Host     : machine
PID      : 4578
CtrlDict : /home/ofuser/foam/foam-extend-3.1/etc/controlDict
Case     : /home/ofuser/foam/ofuser-3.1/run/myCylinderCase-Fsi3d/fluid
nProcs   : 1
SigFpe   : Enabling floating point exception trapping (FOAM_SIGFPE).

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time

Selecting extrudeModel linearNormal
Extruding patch frontPlane on mesh "/home/ofuser/foam/ofuser-3.1/run/myCylinderCase-Fsi3d/fluid"

Create polyMesh for time = 0

Writing patch as surfaceMesh to "/home/ofuser/foam/ofuser-3.1/run/myCylinderCase-Fsi3d/fluid/frontPlane.sMesh"

Extruding patch with :
    points     : 9114
    faces      : 8850
    normals[0] : (0 0 -1)

Mesh bounding box : (0 0 -0.9) (19.5 12 0.1)
        with span : (19.5 12 1)
Merge distance    : 0.0001

Collapsing edges < 0.0001 ...

End
Therefore something wrong must have happened when you ran blockMesh.

Quote:
The second suggestion

Code:
But then I though a bit better and I have to ask: Why are you trying to  complicate this, when you can simply modify the two "blockMeshDict"  files and change the Z position values and increase the mesh refinement  along that direction?
I tried that, it is running but the beam is not moving. My case is attached to check please.
Sorry, but the case is very slow to run on my machine and I didn't manage to run it during the weekend.

The only reasons I see for it to no longer be able to move is possibly due to at least one of the following:
  1. In "solid/constant/rheologyProperties" you have this line:
    Code:
    planeStress yes; //No for 3D, Yes for 2D
    I don't know what this is for, but the comment on the right is either switched around or the parameter should be set to "no" for the 3D case?
  2. The fluid and solid properties are a lot different from the last simulation I have. Have you done at least the analytical calculations of what is the force needed for bending this kind of metal and geometry?
Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   November 28, 2015, 16:03
Default
  #27
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear Bruno,

do you have any suggestion for fluid and solid properties should change in this case?

I'm thinking about plate thickness of the solid part and omega (angle rad/s) in terms of helping plate to twist (in 2D the rod moves up and down only, in 3D it twist) that what I'm thinking. If you have any idea or source would help me in this case would be really appreciated.

Kind regards

Maimouna
Maimouna is offline   Reply With Quote

Old   November 28, 2015, 18:57
Default
  #28
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
do you have any suggestion for fluid and solid properties should change in this case?
I though the paper that you are trying to reproduce stated what are the material properties for the solid and the liquid?

Quote:
Originally Posted by Maimouna View Post
I'm thinking about plate thickness of the solid part and omega (angle rad/s) in terms of helping plate to twist (in 2D the rod moves up and down only, in 3D it twist) that what I'm thinking.
Wait... what? 3D twist? It twists?
I haven't run the simulation, since it takes a while to run, but that has reminded me of something: in 2D, the front and back patches are of type "empty", which for solid displacement result in slip walls, i.e. it allows these patches to be distorted.
But in 3D, you defined the file "solid/0/pointD" like this:
Code:
boundaryField
{
    plate
    {
        type            calculated;
        value           uniform (0 0 0);
    }
    plateFix
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
   frontPlane
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    backPlane
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
}
This means that the front and back patches are also fixed, i.e. can't move at all, neither can the intersection between the plate and the front and back patches, which means that only the middle section of the plate can bend...

Please try replacing the last two with this:
Code:
   frontPlane
    {
        type            slip;
    }
    backPlane
    {
        type            slip;
    }
I haven't tested it, but hopefully it will work.

In addition, perhaps the same should be done for the other fields, at least for the velocity field "fluid/0/U". Keep in mind that you are simulating the distortion of a solid, not just the flow of a fluid. Therefore, you should keep in mind what exactly you are trying to simulate in 3D.

Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   December 9, 2015, 11:06
Default
  #29
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Hi Bruno,

after waiting for long time to see the result, the case is working with the last post changes. That's a bit good news, but I'm still looking to see rod twist in 3D. The rod is moving up and down. What can I add to see the result that I expected? The only changes in rhyologyProperties file in solid/ constant directories

Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | foam-extend: Open Source CFD                    |
|  \\    /   O peration     | Version:     3.0                                |
|   \\  /    A nd           | Web:         http://www.extend-project.de       |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      rheologyProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

planeStress no; //No for 3D, Yes for 2D

rheology
{
    type linearElastic;

    rho rho [1 -3 0 0 0 0 0] 7.82e3; //1000; //1; //0.1;
    E E [1 -1 -2 0 0 0 0]   2.0e10; //2.5e6; //5.6e6; //Young's modulus--> elasticity value
    nu nu [0 0 0 0 0 0 0]   0.265; //0.35; //0.4; //Poisson's ratio
    omega omega [0 0 0 0 0 0 0] 105; // rad/s
    thickness thickness [0 1 0 0 0 0 0] 0.1;
}

// ************************************************************************* //
And I didn't do any changes in fluid properties. Guide me please if any more changes and corrections.

My regards

Maimouna
Maimouna is offline   Reply With Quote

Old   December 9, 2015, 18:02
Default
  #30
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
Quote:
Originally Posted by Maimouna View Post
That's a bit good news, but I'm still looking to see rod twist in 3D. The rod is moving up and down. What can I add to see the result that I expected?
Quick answer: If the front and back patches now allow the rod to move, then that means that your 2D problem is now properly represented in 3D.

If you want the rod to twist, then think about how you would do that physically. In essence, for the rod to twist, either the flow cannot be symmetric, or you must have at least one more fixed point or edge or surface.

You can use a piece of paper (in real life) to pretend it's the rod and then imagine the fluid flow going around each side of the paper, depending on how you are holding the paper.
Please do keep in mind that you are trying to simulate something from the real world. You are not trying to develop a new high density molecule that is able to something completely new and non-existent in the real world. Therefore, you should be able to make real life experiments to check how stuff works, so that you can reproduce in a simulation!
wyldckat is offline   Reply With Quote

Old   December 12, 2015, 10:09
Default
  #31
New Member
 
Wojciech Gołąbek
Join Date: Dec 2013
Posts: 29
Rep Power: 12
Woj3x is on a distinguished road
Hi
I'm using fsiFOAM to solve similar issue and I would like to use parallel computations to accelerate it.
How to modify the script Allrun and makeSerialLinks to run parallel computing?
Best regards
Woj3x is offline   Reply With Quote

Old   December 12, 2015, 14:48
Default
  #32
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
Quote:
Originally Posted by Woj3x View Post
I'm using fsiFOAM to solve similar issue and I would like to use parallel computations to accelerate it.
How to modify the script Allrun and makeSerialLinks to run parallel computing?
Quick answer: I suspect the code isn't prepared yet to work in parallel, but I'm not certain.
wyldckat is offline   Reply With Quote

Old   December 14, 2015, 06:45
Default
  #33
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear Bruno,

following the presentation given in
HTML Code:
http://docslide.us/engineering/a-first-order-conservation-law-formulation-for-fast-solid-dynamics-in-openfoam.html
as seen in slide no 37 in the case of 3d twisting column, that gives me more support to my case for twisting solid part. And as I give the value of angular velocity in the rheologyProperties file in the solid folder shown below
Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | foam-extend: Open Source CFD                    |
|  \\    /   O peration     | Version:     3.0                                |
|   \\  /    A nd           | Web:         http://www.extend-project.de       |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      rheologyProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

planeStress no; //No for 3D, Yes for 2D

rheology
{
    type linearElastic;

    rho rho [1 -3 0 0 0 0 0] 7.82e3; //1000; //1; //0.1;
    E E [1 -1 -2 0 0 0 0]   2.0e10; //2.5e6; //5.6e6; //Young's modulus--> elasticity value
    nu nu [0 0 0 0 0 0 0]   0.265; //0.35; //0.4; //Poisson's ratio

    omega omega [0 0 -1 0 0 0 0] 105; // angular velocity (rad/s)
    thickness thickness [0 1 0 0 0 0 0] 0.1;
}

// ************************************************************************* //
So, have to think to add some lines in the code for twisting. Before start add that code part, in which file for fsiFoam solver exactly should add the coding lines? I'm thinking about these now, am I on the right way?

Kind regards

Maimouna
Maimouna is offline   Reply With Quote

Old   December 29, 2015, 07:13
Default
  #34
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,

Sorry, took me a while to get back to posting on the forum and to get to your question.

Where should I start... OK, I'll summarize:
  1. "rheologyProperties" is only for defining the properties of the material.
  2. The flow itself will unlikely cause this kind of distortion.
  3. The simulation shown in the presentation seems to be for solid-only simulations, without the fluid.
  4. In order to have torsion, you need to define the appropriate boundary condition(s).
So, the main question is this: Where is the torsion meant to come from?
  1. Is the torsion meant to be defined manually, at least for defining the velocity at which the plate is morphed?
  2. Or is the torsion meant to occur naturally, due to forces from the fluid flow around the plate?
Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   January 1, 2016, 12:09
Default
  #35
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Quote:
Originally Posted by wyldckat View Post
Hi Maimouna,

Sorry, took me a while to get back to posting on the forum and to get to your question.

Where should I start... OK, I'll summarize:
  1. "rheologyProperties" is only for defining the properties of the material.
  2. The flow itself will unlikely cause this kind of distortion.
  3. The simulation shown in the presentation seems to be for solid-only simulations, without the fluid.
  4. In order to have torsion, you need to define the appropriate boundary condition(s).
So, the main question is this: Where is the torsion meant to come from?
  1. Is the torsion meant to be defined manually, at least for defining the velocity at which the plate is morphed?
  2. Or is the torsion meant to occur naturally, due to forces from the fluid flow around the plate?
Best regards,
Bruno
Dear Bruno,

Merry Christmas and happy new year.

The torsion occurs naturally due to forces from the fluid flow around the plate. I hope that could open your mind to help me with some ideas.

Lots of thanks.

Maimouna
Maimouna is offline   Reply With Quote

Old   January 1, 2016, 13:27
Default
  #36
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,

Merry Christmas and a Happy New Year as well!

Quote:
Originally Posted by Maimouna View Post
The torsion occurs naturally due to forces from the fluid flow around the plate. I hope that could open your mind to help me with some ideas.
The ways I imagine that being possible is if:
  1. The fluid is also entering the domain with a rotating circulation;
  2. Or if it's perpendicular to how it's being secured;
  3. Or the fluid has to enter the domain with a random turbulence source.
  4. Or if there is an obstacle in the fluid before or on the plate that causes the fluid to flow asymmetrically.
  5. Of it the beam/plate is held in an asymmetric way.
Because the current problem is very simple: if there is absolutely no asymmetry introduced into the domain that would cause the torsion, then there will never occur torsion! It's a simple as that!

Maybe I'm missing something from your previous descriptions, but so far all I can remember is that:
  1. The fluid enters from the left uniformly, fixed value.
  2. The beam is fixed at the left extremity and is loose on all other sides.
Without anything that would cause an asymmetry in the flow, then there will be no torsion.


Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   January 11, 2016, 10:41
Default
  #37
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear Bruno,

in my previous case (3D case) I tried to increase the width of the thin plate (from 0.06m - 0.8m) in order to see its folded, but it gave me (core damped) error (log file attached). I got that idea from the paper
HTML Code:
http://onlinelibrary.wiley.com/doi/10.1002/nme.3033/pdf
.

However, in order to apply the same case which shown in the same paper (picture attached) what is the best way for generating mesh? Could 2D blockMesh help or shall generated using another generated meshes software?

Any idea would help me is fully appreciated.

My regards

Maimouna
Attached Images
File Type: jpg Screenshot from 2016-01-07 12:24:25.jpg (72.2 KB, 21 views)
Attached Files
File Type: pdf fsiFoam.log.pdf (26.9 KB, 6 views)
Maimouna is offline   Reply With Quote

Old   January 13, 2016, 05:30
Default
  #38
New Member
 
Wojciech Gołąbek
Join Date: Dec 2013
Posts: 29
Rep Power: 12
Woj3x is on a distinguished road
Hi Maimouna
I don't know how your mesh looks right now but based on my own problems with this type of simulation I would say that your time step could be too big or Volume change (one of quality parameter of your mesh) is too big.
Best regards,
Wojciech
Woj3x is offline   Reply With Quote

Old   January 13, 2016, 06:09
Default
  #39
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear Woj3x,

lots of thanks for your post. my blockMeshDict file for the fluid part in my case case is shown below

Code:
/*--------------------------------*- C++ -*----------------------------------*\ 
| =========                 |                                                 | 
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           | 
|  \\    /   O peration     | Version:  2.2.2                                 | 
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      | 
|    \\/     M anipulation  |                                                 | 
\*---------------------------------------------------------------------------*/ 
FoamFile 
{ 
    version     2.0; 
    format      ascii; 
    class       dictionary; 
    object      blockMeshDict; 
} 
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 
 
convertToMeters 1;//dimensions in meters --> conversion 1 
 
vertices 
( 
    (0 0 0.1) //0 
    (4.5 0 0.1) //1 
    (5.5 0 0.1) //2 
    (9.5 0 0.1) //3 
    (13 0 0.1) //4 
    (19.5 0 0.1) //5 
 
    (19.5 2 0.1) //6 
    (19.5 5.5 0.1) //7 
    (19.5 5.6 0.1) //8 
    (19.5 6.4 0.1) //9 
    (19.5 6.5 0.1) //10 
    (19.5 10 0.1) //11 
 
    (19.5 12 0.1) //12 
    (13 12 0.1) //13 
    (9.5 12 0.1) //14 
    (5.5 12 0.1) //15 
    (4.5 12 0.1) //16 
    (0 12 0.1) //17 
 
    (0 10 0.1) //18 
    (0 6.5 0.1) //19 
    (0 5.5 0.1) //20 
    (0 2 0.1) //21 
 
    (4.5 10 0.1) //22 
    (5.5 10 0.1) //23 
    (9.5 10 0.1) //24 
    (13 10 0.1) //25 
 
    (4.5 6.5 0.1) //26 
    (5.5 6.5 0.1) //27 
    (9.5 6.5 0.1) //28 
    (13 6.5 0.1) //29 
 
    (5.5 6.4 0.1) //30 
    (9.5 6.4 0.1) //31 
    (13 6.4 0.1) //32 
 
    (5.5 5.6 0.1) //33 
    (9.5 5.6 0.1) //34 
    (13 5.6 0.1) //35 
 
    (4.5 5.5 0.1) //36 
    (5.5 5.5 0.1) //37 
    (9.5 5.5 0.1) //38 
    (13 5.5 0.1) //39 
 
    (4.5 2 0.1) //40 
    (5.5 2 0.1) //41 
    (9.5 2 0.1) //42 
    (13 2 0.1) //43 
 
    (0 0 0.5) //44 <== 0 
    (4.5 0 0.5) //45 <== 1 
    (5.5 0 0.5) //46 <== 2 
    (9.5 0 0.5) //47 <== 3 
    (13 0 0.5) //48 <== 4 
    (19.5 0 0.5) //49 <== 5 
 
    (19.5 2 0.5) //50 <== 6 
    (19.5 5.5 0.5) //51 <== 7 
    (19.5 5.6 0.5) //52 <== 8 
    (19.5 6.4 0.5) //53 <== 9 
    (19.5 6.5 0.5) //54 <== 10 
    (19.5 10 0.5) //55 <== 11 
 
    (19.5 12 0.5) //56 <== 12 
    (13 12 0.5) //57 <== 13 
    (9.5 12 0.5) //58 <== 14 
    (5.5 12 0.5) //59 <== 15 
    (4.5 12 0.5) //60 <== 16 
    (0 12 0.5) //61 <== 17 
 
    (0 10 0.5) //62 <== 18 
    (0 6.5 0.5) //63 <== 19 
    (0 5.5 0.5) //64 <== 20 
    (0 2 0.5) //65 <== 21 
 
    (4.5 10 0.5) //66 <== 22 
    (5.5 10 0.5) //67 <== 23 
    (9.5 10 0.5) //68 <== 24 
    (13 10 0.5) //69 <== 25 
 
    (4.5 6.5 0.5) //70 <== 26 
    (5.5 6.5 0.5) //71 <== 27 
    (9.5 6.5 0.5) //72 <== 28 
    (13 6.5 0.5) //73 <== 29 
 
    (5.5 6.4 0.5) //74 <== 30 
    (9.5 6.4 0.5) //75 <== 31 
    (13 6.4 0.5) //76 <== 32 
 
    (5.5 5.6 0.5) //77 <== 33 
    (9.5 5.6 0.5) //78 <== 34 
    (13 5.6 0.5) //79 <== 35 
 
    (4.5 5.5 0.5) //80 <== 36 
    (5.5 5.5 0.5) //81 <== 37 
    (9.5 5.5 0.5) //82 <== 38 
    (13 5.5 0.5) //83 <== 39 
 
    (4.5 2 0.5) //84 <== 40 
    (5.5 2 0.5) //85 <== 41 
    (9.5 2 0.5) //86 <== 42 
    (13 2 0.5) //87 <== 43 
     
); 
 
blocks 
( 
    hex (0 1 40 21 44 45 84 65) (30 15 10) simpleGrading (1 1 1) //1 
    hex (1 2 41 40 45 46 85 84) (15 15 10) simpleGrading (1 1 1) //2 
    hex (2 3 42 41 46 47 86 85) (30 15 10) simpleGrading (1 1 1) //3 
    hex (3 4 43 42 47 48 87 86) (35 15 10) simpleGrading (1 1 1) //4 
    hex (4 5 6 43 48 49 50 87) (50 15 10) simpleGrading (10 1 1) //5 
 
    hex (43 6 7 39 87 50 51 83) (50 8 10) simpleGrading (10 1 1) //6 
    hex (42 43 39 38 86 87 83 82) (35 8 10) simpleGrading (1 1 1) //7 
    hex (41 42 38 37 85 86 82 81) (30 8 10) simpleGrading (1 1 1) //8 
    hex (40 41 37 36 84 85 81 80) (15 8 10) simpleGrading (1 1 1) //9 
    hex (21 40 36 20 65 84 80 64) (30 8 10) simpleGrading (1 1 1) //10 
 
    hex (20 36 26 19 64 80 70 63) (30 2 10) simpleGrading (1 1 1) //11 
    hex (37 38 34 33 81 82 78 77) (30 2 10) simpleGrading (1 1 1) //12 
    hex (38 39 35 34 82 83 79 78) (35 2 10) simpleGrading (1 1 1) //13 
    hex (39 7 8 35 83 51 52 79) (50 2 10) simpleGrading (10 1 1) //14 
    hex (35 8 9 32 79 52 53 76) (50 2 10) simpleGrading (10 1 1) //15 
    hex (34 35 32 31 78 79 76 75) (35 2 10) simpleGrading (1 1 1) //16 
    hex (30 31 28 27 74 75 72 71) (30 2 10) simpleGrading (1 1 1) //17 
    hex (31 32 29 28 75 76 73 72) (35 2 10) simpleGrading (1 1 1) //18 
    hex (32 9 10 29 76 53 54 73) (50 2 10) simpleGrading (10 1 1) //19 
 
    hex (29 10 11 25 73 54 55 69) (50 15 10) simpleGrading (10 1 1) //20 
    hex (28 29 25 24 72 73 69 68) (35 15 10) simpleGrading (1 1 1) //21 
    hex (27 28 24 23 71 72 68 67) (30 15 10) simpleGrading (1 1 1) //22 
    hex (26 27 23 22 70 71 67 66) (15 15 10) simpleGrading (1 1 1) //23 
    hex (19 26 22 18 63 70 66 62) (30 15 10) simpleGrading (1 1 1) //24 
 
    hex (18 22 16 17 62 66 60 61) (30 13 10) simpleGrading (1 1 1) //25 
    hex (22 23 15 16 66 67 59 60) (15 13 10) simpleGrading (1 1 1) //26 
    hex (23 24 14 15 67 68 58 59) (30 13 10) simpleGrading (1 1 1) //27 
    hex (24 25 13 14 68 69 57 58) (35 13 10) simpleGrading (1 1 1) //28 
    hex (25 11 12 13 69 55 56 57) (50 13 10) simpleGrading (10 1 1) //29 
     
    
); 
 
edges 
( 
); 
 
patches 
( 
 
    patch inlet //left 
        ( 
           (17 61 62 18)  
           (18 62 63 19)  
           (19 63 64 20)  
           (20 64 65 21) 
           (21 65 44 0) 
        ) 
 
    patch outlet //right    
        ( 
            (12 56 55 11)  
            (11 55 54 10)  
            (10 54 53 9)     
        (9 53 52 8)  
        (8 52 51 7)  
            (7 51 50 6) 
            (6 50 49 5) 
        ) 
    
 
    patch top //up    
        ( 
             
            (17 61 60 16) 
            (16 60 59 15) 
            (15 59 58 14) 
            (14 58 57 13) 
            (13 57 56 12) 
 
        )  
 
    patch bottom //down 
        ( 
 
            (0 44 45 1) 
            (1 45 46 2) 
            (2 46 47 3) 
            (3 47 48 4) 
            (4 48 49 5) 
 
        ) 
 
    patch cylinder //solid 
        ( 
            (26 70 71 27)    
            (27 71 74 30)   
            (33 77 81 37)    
            (37 81 80 36)    
            (36 80 70 26)  
        ) 
    
 
  patch plate //solid 
        ( 
            (30 74 75 31)    
            (31 75 78 34)    
            (34 78 77 33)  
        ) 
  
  patch frontPlane  
        ( 
 
            (0 1 40 21) //Block 1 front 
            (1 2 41 40) //Block 2 front 
            (2 3 42 41) //Block 3 front 
            (3 4 43 42) //Block 4 front 
            (4 5 6 43) //Block 5 front 
            (43 6 7 39) //Block 6 front 
            (42 43 39 38) //Block 7 front 
            (41 42 38 37) //Block 8 front 
            (40 41 37 36) //Block 9 front 
            (21 40 36 20) //Block 10 front 
            (20 36 26 19) //Block 11 front 
            (37 38 34 33) //Block 12 front 
            (38 39 35 34) //Block 13 front 
            (39 7 8 35) //Block 14 front 
            (35 8 9 32) //Block 15 front 
            (34 35 32 31) //Block 16 front 
            (30 31 28 27) //Block 17 front 
            (31 32 29 28) //Block 18 front 
            (32 9 10 29) //Block 19 front 
            (29 10 11 25) //Block 20 front 
            (28 29 25 24) //Block 21 front 
            (27 28 24 23) //Block 22 front 
            (26 27 23 22) //Block 23 front 
            (19 26 22 18) //Block 24 front 
            (18 22 16 17) //Block 25 front 
            (22 23 15 16) //Block 26 front 
            (23 24 14 15) //Block 27 front 
            (24 25 13 14) //Block 28 front 
            (25 11 12 13) //Block 29 front 
      
        ) 
 
   patch backPlane 
       ( 
 
            (44 45 84 65) //Block 1 back 
            (45 46 85 84) //Block 2 back 
            (46 47 86 85) //Block 3 back 
            (47 48 87 86) //Block 4 back 
            (48 49 50 87) //Block 5 back 
            (87 50 51 83) //Block 6 back 
            (86 87 83 82) //Block 7 back 
            (85 86 82 81) //Block 8 back 
            (84 85 81 80) //Block 9 back 
            (65 84 80 64) //Block 10 back 
            (64 80 70 63) //Block 11 back 
            (81 82 78 77) //Block 12 back 
            (82 83 79 78) //Block 13 back 
            (83 51 52 79) //Block 14 back 
            (79 52 53 76) //Block 15 back 
            (78 79 76 75) //Block 16 back 
            (74 75 72 71) //Block 17 back 
            (75 76 73 72) //Block 18 back 
            (76 53 54 73) //Block 19 back 
            (73 54 55 69) //Block 20 back 
            (72 73 69 68) //Block 21 back 
            (71 72 68 67) //Block 22 back 
            (70 71 67 66) //Block 23 back 
            (63 70 66 62) //Block 24 back 
            (62 66 60 61) //Block 25 back 
            (66 67 59 60) //Block 26 back 
            (67 68 58 59) //Block 27 back 
            (68 69 57 58) //Block 28 back 
            (69 55 56 57) //Block 29 back 
 
       ) 
); 
 
mergePatchPairs 
( 
); 
 
// ************************************************************************* //
and for the solid part

Code:
/*--------------------------------*- C++ -*----------------------------------*\ 
| =========                 |                                                 | 
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           | 
|  \\    /   O peration     | Version:  2.2.2                                 | 
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      | 
|    \\/     M anipulation  |                                                 | 
\*---------------------------------------------------------------------------*/ 
FoamFile 
{ 
    version     2.0; 
    format      ascii; 
    class       dictionary; 
    object      blockMeshDict; 
} 
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 
 
convertToMeters 1;//dimensions in meters --> conversion 1 
 
vertices 
( 
    (5.5 5.6 0.1) //0--19 
    (9.5 5.6 0.1) //1--20 
    (9.5 6.4 0.1) //2--22 
    (5.5 6.4 0.1) //3--21 
     
    (5.5 5.6 0.5) //4--45 
    (9.5 5.6 0.5) //5--46 
    (9.5 6.4 0.5) //6--48 
    (5.5 6.4 0.5) //7--47 
); 
 
blocks 
( 
    hex (0 1 2 3 4 5 6 7) (30 2 10) simpleGrading (1 1 1) //0 
); 
 
edges 
( 
); 
 
patches 
( 
     patch plateFix 
     ( 
         (3 7 4 0) 
     ) 
 
     patch plate 
     ( 
      (3 2 6 7) 
      (6 2 1 5) 
      (1 0 4 5) 
     ) 
 
     patch frontPlane 
     ( 
     (0 1 2 3) 
     ) 
    
     patch backPlane 
     ( 
     (7 6 5 4) 
     ) 
); 
 
mergePatchPairs 
( 
); 
 
// ************************************************************************* //
mesh is shown the attached picture and in order to check the time steps, the controlDict file for the fluid part is shown below

Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | foam-extend: Open Source CFD                    |
|  \\    /   O peration     | Version:     3.0                                |
|   \\  /    A nd           | Web:         http://www.extend-project.de       |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

application fsiFoam;

startFrom       startTime;

startTime       0;

stopAt          endTime;

endTime         1; //3;

deltaT          1e-3;

writeControl    timeStep;

writeInterval   20;

purgeWrite      0;

writeFormat     ascii;

writePrecision  6;

writeCompression compressed;

timeFormat      general;

timePrecision   6;

runTimeModifiable yes;

adjustTimeStep  yes; //no;

maxCo           0.2;

functions
(
   pointHistory
   {
       type pointHistory;
       functionObjectLibs
       (
         "libpointHistory.so"
       );

       region solid;

       refHistoryPoint   (7 6 0.25); // (7 6 0.05);  
   }

   hronTurekReport
   {
       type hronTurekReport;
       functionObjectLibs
       (
         "libhronTurekReport.so"
       );
   }
);



// ************************************************************************* //
and for the solid is

Code:
/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | foam-extend: Open Source CFD                    |
|  \\    /   O peration     | Version:     3.0                                |
|   \\  /    A nd           | Web:         http://www.extend-project.de       |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    object      controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

application stressFoam;

startFrom       latestTime;

startTime       0;

stopAt          endTime;

endTime         1; //3;

deltaT          1e-3;

writeControl    timeStep;

writeInterval   10;

purgeWrite      0;

writeFormat     ascii;

writePrecision  6;

writeCompression uncompressed;

timeFormat      general;

timePrecision   6;

runTimeModifiable yes;

adjustTimeStep  yes; //no;

maxCo           0.2;

// ************************************************************************* //
could you please check that for me please and let me know if you could notice any fault.

Thanks alot.

Maimouna
Attached Images
File Type: jpg Screenshot from 2016-01-13 10:55:17.jpg (151.4 KB, 22 views)
Maimouna is offline   Reply With Quote

Old   January 13, 2016, 07:38
Default
  #40
New Member
 
Wojciech Gołąbek
Join Date: Dec 2013
Posts: 29
Rep Power: 12
Woj3x is on a distinguished road
Hi Maimouna
Could you tell me what parameters of liquid (transportPtoperties) and solid (rheologyProperties) did you use in this simulation? Thank you in advance!

From picture which you attached in your last post I see that you have really big volume change between blocks. You need to use simpleGrading (http://cfd.direct/openfoam/user-guid...#x25-1420005.3 5.3.1.3-5.3.1.4) to make smooth transition between them. Like in attached picture.

About time step it's like Bruno told before. You need to control courant number (log.fsiFoam). If it's is too big (>1) you need to reduce your time step.

Best regards,
Wojciech
Woj3x 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
[Other] mesh airfoil NACA0012 anand_30 OpenFOAM Meshing & Mesh Conversion 13 March 7, 2022 17:22
[blockMesh] error message with modeling a cube with a hold at the center hsingtzu OpenFOAM Meshing & Mesh Conversion 2 March 14, 2012 09:56
[blockMesh] BlockMesh FOAM warning gaottino OpenFOAM Meshing & Mesh Conversion 7 July 19, 2010 14:11
[blockMesh] Axisymmetrical mesh Rasmus Gjesing (Gjesing) OpenFOAM Meshing & Mesh Conversion 10 April 2, 2007 14:00
[Gmsh] Import gmsh msh to Foam adorean OpenFOAM Meshing & Mesh Conversion 24 April 27, 2005 08:19


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