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   March 9, 2016, 05:00
Default
  #61
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Hi Wojciech,

I'm still working to solve the problem, error that I got now, I think it is time stepping error. I solved that error by changing mesh and some in BCs. Send me your case files, If you wish to have a look.

Kind regards

Maimouna
Maimouna is offline   Reply With Quote

Old   March 11, 2016, 11:41
Default
  #62
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Hello everybody,

since I found some difficulties in that case and even I tried lots of blockMeshDict files, I think meshing is still the problem. So, I generated mesh using Gmsh and I hope it will work; fingers crossed.

So, how Allrun scriptes for both fluid and solid will be changed from blockMesh utility to gmshToFoam?

Allrun for fluid
Code:
#!/bin/sh

# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions

# Get application name
application=`getApplication`

runApplication -l log.blockMesh.solid blockMesh -region solid
runApplication -l log.setSet.solid setSet -case ../solid -batch ../solid/setBatch
runApplication -l log.setToZones.solid setsToZones -case ../solid -noFlipMap

runApplication blockMesh
runApplication setSet -batch setBatch
runApplication setsToZones -noFlipMap

# Build hronTurekReport function object
wmake libso ../hronTurekReport

runApplication $application

# ----------------------------------------------------------------- end-of-file
Allrun for solid

Code:
#!/bin/sh

# Source tutorial run functions
. $WM_PROJECT_DIR/bin/tools/RunFunctions

# Get application name
application=`getApplication`

runApplication blockMesh
runApplication setSet -batch setBatch
runApplication setsToZones -noFlipMap

runApplication $application

# ----------------------------------------------------------------- end-of-file
I think, replaced all
Code:
 blockMesh with gmshToFoam
Is that right?

Kind regards

Maimouna
Maimouna is offline   Reply With Quote

Old   March 12, 2016, 11:59
Default
  #63
New Member
 
Wojciech Gołąbek
Join Date: Dec 2013
Posts: 29
Rep Power: 12
Woj3x is on a distinguished road
Hi Maimouna,
I'm not sure why you want to have two Allrun files. You can write this in one Allrun from fluid file (It would be worth to check the Allrun script from icoFsiElasticNonLinULSolidFoam).
In other hand you can simply use terminal in fluid and solid folder to convert Gmsh -> FOAM before using Allrun script.

Best regards,
Wojciech
Woj3x is offline   Reply With Quote

Old   March 15, 2016, 09:42
Default
  #64
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Thanks Wojciech. How did you grid your mesh in your case blockMeshDict or Gmsh?

I'm trying both, but no one of them works for me till now, I'm afraid.

Best regards

Maimouna
Maimouna is offline   Reply With Quote

Old   March 16, 2016, 09:44
Default 3D Elastic Cantilever Beam Attached to cylinder
  #65
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Hi all,

I tried to attached my case but unfortunately that's failed because of the size, so I'm trying to attached it without mesh files which are shown below
fluid.geo
Code:
cl1 = 0.5;
cl2 = 0.2;

Point(1) = {0, 0, 0, cl1};

Point(2) = {20, 0, 0, cl1};
// 
Point(3) = {0, 11, 0, cl1};

Point(4) = {20, 11, 0, cl1};

Point(11) = {0, 0, 11, cl1};
Point(12) = {20, 0, 11, cl1};
Point(13) = {0, 11, 11, cl1};
Point(14) = {20, 11, 11, cl1};

Line(1) = {1, 11};
Line(2) = {11, 12};
Line(3) = {12, 2};
Line(4) = {2, 1};
Line(5) = {13, 14};
Line(6) = {14, 4};
Line(7) = {4, 3};
Line(8) = {3, 13};
Line(9) = {11, 13};
Line(10) = {12, 14};
Line(11) = {2, 4};
Line(12) = {1, 3};
Line Loop(13) = {1, 2, 3, 4};
Plane Surface(14) = {13};
Line Loop(15) = {8, 5, 6, 7};
Plane Surface(16) = {15};
Line Loop(17) = {1, 9, -8, -12};
Plane Surface(18) = {17};
Line Loop(19) = {3, 11, -6, -10};
Plane Surface(20) = {19};
Line Loop(21) = {2, 10, -5, -9};
Plane Surface(22) = {21};
Line Loop(23) = {4, 12, -7, -11};
Plane Surface(24) = {23};

Point(101) = {5, 5, 4, cl2};
Point(102) = {6, 5, 4, cl2};
//thickness of plate is 0.1
Point(103) = {6, 5+0.45, 4, cl2};
Point(104) = {6, 5+0.55, 4, cl2};
Point(105) = {6, 6, 4, cl2};
Point(106) = {5, 6, 4, cl2};
For i In {1:5}
    Line(100+i) = {100+i, 100+i+1};
EndFor
Line(106) = {106, 101};
Line Loop(111) = {101, 102, 103, 104, 105, 106};
Plane Surface(111) = {111};

Point(113) = {6+4, 5+0.45, 4, cl2};
Point(114) = {6+4, 5+0.55, 4, cl2};
Line(113) = {103, 113};
Line(114) = {104, 114};
Line(115) = {113, 114};
Line Loop(116) = {103, 114, -115, -113};
Plane Surface(117) = {116};
vo1[]={Extrude {0, 0, 3} {Surface{111, 117};} };

Surface Loop(172) = {18, 14, 22, 20, 24, 16};
Surface Loop(173) = {170, 117, 162, 166, 171, 148, 111, 128, 132, 149, 140, 144};
Volume(174) = {172, 173};

Physical Surface("inlet") = {18};
Physical Surface("outlet") = {20};
Physical Surface("top") = {16};
Physical Surface("bottom") = {14};
Physical Surface("front") = {22};
Physical Surface("back") = {24};
Physical Surface("cylinder") = {128, 148, 111, 149, 144, 132};
Physical Surface("interface") = {166, 140, 117, 162, 170, 171}; 
Physical Volume("mesh") = {174};

Coherence;
3DPlate.geo
Code:
cl2=0.2;

Point(103) = {6, 5+0.45, 4, cl2};
Point(104) = {6, 5+0.55, 4, cl2};

Point(113) = {6+4, 5+0.45, 4, cl2};
Point(114) = {6+4, 5+0.55, 4, cl2};

Line(103) = {103, 104};
Line(113) = {103, 113};
Line(114) = {104, 114};
Line(115) = {113, 114};

Line Loop(116) = {113, 115, -114, -103};
Plane Surface(117) = {116};

vo1[]={Extrude {0, 0, 3} {Surface{117};} };

Surface Loop(172) = {138, 134, 117, 126, 139, 130};
Volume(173) = {172};

Physical Surface("interface") = {126, 134, 130};
Physical Surface("interfaceFix") = {138};
Physical Surface("front") = {117};
Physical Surface("back") = {139};
Physical Volume("mesh") = {173};

coherence;
but my case still doesn't work. Could you check that case for me please? Any help will really appreciated.
Attached Files
File Type: gz Test.tar.gz (28.3 KB, 2 views)
Maimouna is offline   Reply With Quote

Old   March 26, 2016, 13:53
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
Greetings to all!

@Maimouna: I don't know how to use GMsh properly. All I could do were the following steps:
  1. Unpack the file you attached, namely "Test.tar.gz".
  2. Created the two geo files and placed them inside the "Test" folder.
  3. Ran the following commands from within the folder "fluid":
    Code:
    gmsh -3 ../fluid.geo 
    gmshToFoam ../fluid.msh
  4. Then ran the following commands from within the "solid" folder:
    Code:
    gmsh -3 -check ../3DPlate.geo
    gmshToFoam ../3DPlate.msh
  5. But I got stuck in the last step, because I got this error message:
    Code:
    Starting to read cells at line 837
    Cells to be read:1638
    
    Mapping region 3 to Foam patch 0
    Mapping region 1 to Foam patch 1
    Mapping region 2 to Foam patch 2
    Mapping region 4 to Foam patch 3
    Cells:
        total:0
        hex  :0
        prism:0
        pyr  :0
        tet  :0
    
    
    
    --> FOAM FATAL ERROR: 
    No cells read from file "../3DPlate.msh"
    Does your file specify any 3D elements (hex=5, prism=6, pyramid=7, tet=4)?
    Perhaps you have not exported the 3D elements?
    
        From function readCells(..)
        in file gmshToFoam.C at line 690.
    
    FOAM exiting
    Which means that the mesh for the solid region is not operational for some reason.
I don't have time to learn how to use GMsh . Nonetheless, check the threads on this forum: http://www.cfd-online.com/Forums/openfoam-meshing-open/

Best regards,
Bruno
__________________
wyldckat is offline   Reply With Quote

Old   March 26, 2016, 18:50
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 kind help. I also got the same error I'm afraid. But what about using blockMesh utility? Is it easy to use blockMeshDict file instead of geo files? I alraeady did that in the case attached, but also got error. Could you please check that for me please? Why the solver is blown up? Is it meshing problem? Sorry, I tried blockMesh utility and Gmsh both what I knew for meshing, but unfortunately non of them are working.

Many thanks in advanced.

Maimouna
Attached Files
File Type: gz 3dBeamInCrossFlowNew.tar.gz (73.4 KB, 2 views)
Maimouna is offline   Reply With Quote

Old   March 27, 2016, 08:08
Default
  #68
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
Dear Maimouna,

The first problem I faced with your case was that there were no instructions on how to run it... here are the commands I used to get it to run:
Code:
sed -i s/tcsh/sh/g *Links
./removeSerialLinks fluid solid
./makeSerialLinks fluid solid
wclean libso setInletVelocity
wmake libso setInletVelocity
cd fluid
./Allclean
./Allrun
And then I checked the contents of the file "log.fsiFoam" which had the following:
Code:
Create time

Create dynamic mesh for time = 0

Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: velocityLaplacian
Selecting motion diffusion: quadratic
Selecting motion diffusion: inverseDistance
 Reading stress mesh
Creating fixed displacement boundary condition
Creating traction displacement boundary conditions
Creating fixed displacement boundary condition
Creating fixed displacement boundary condition
Selecting rheology model linearElastic
Creating constitutive model
Selecting coupling scheme Aitken

Starting time loop

Creating beamReport function object.
History point ID: 315
History point coordinates: (10 6 0)
Reference point coordinates: (10 7 0)
Segmentation fault (core dumped)
And I can't find any post of your reporting on this specific type of crash.

So I went to inspect the case in ParaView, using:
Code:
paraFoam -nativeReader
and I got what's shown in the attached image "solid_mesh_is_broken.png". The solid mesh is broken. The blocks were incorrectly constructed

So I then went to inspect the fluid mesh (shown in image "fluid_mesh_has_too_much_stuff.png") and found that the part where the mesh should be have the space for the solid mesh... is occupied with already existing fluid mesh. This will not work.

Then while trying to figure out which blocks should be removed from the fluid region, I meshed again with the following command in the fluid region:
Code:
blockMesh -blockTopology
And attached is the image "fluid_mesh_block_topology.png" that demonstrates that things are not OK, because the big block on the right will not be part of the same mesh region as the other blocks. checkMesh confirms this when it states:
Code:
Checking topology...
    Boundary definition OK.
    Point usage OK.
    Upper triangular ordering OK.
    Face vertices OK.
   *Number of regions: 2
    The mesh has multiple regions which are not connected by any face.
  <<Writing region information to "0/cellToRegion"
Therefore, the next step is to properly design the mesh in the two "blockMeshDict" files.

Best regards,
Bruno
Attached Images
File Type: jpg solid_mesh_is_broken.jpg (52.4 KB, 35 views)
File Type: jpg fluid_mesh_has_too_much_stuff.jpg (189.7 KB, 24 views)
File Type: jpg fluid_mesh_block_topology.jpg (35.7 KB, 26 views)
__________________
wyldckat is offline   Reply With Quote

Old   March 27, 2016, 18:06
Default
  #69
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear Bruno,

I went through both blockMeshDict files but I couldn't notice the problem. blocks,png shows the points and blocks in paraview. Is the way that I did for blockMesh is right? I'm worry about that because I have doubt that is wrong especially in the region of cylinder-interface-plate. If you could notice any error let me know please.

Many thanks in advanced.

Maimouna
Attached Images
File Type: jpg blocks.jpg (100.8 KB, 47 views)
Maimouna is offline   Reply With Quote

Old   March 28, 2016, 08:15
Default
  #70
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,

The problem is that the block "33 37 38 39" is invalid. The reason why it is invalid is because it is not able to match up with the other 4 blocks next to it.

As you can see in the attached image "original_blockMesh.jpg", the blocks are all well defined. This is the block structure for the "fluid" region on the original tutorial case "HronTurekFsi3".

Best regards,
Bruno
Attached Images
File Type: jpg original_blockMesh.jpg (34.9 KB, 28 views)
wyldckat is offline   Reply With Quote

Old   March 28, 2016, 15:26
Default
  #71
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Hi Bruno,

the attached picture shows the way that I did for blockMeshDict for the fluid part. It seems to me is not in the way that you attached in the last post for HronTurekFsi3 case. Could you please just give me some tips how to change my one to the way that you posted.

Lots of thanks in advanced with regards.

Maimouna
Attached Images
File Type: jpg beamInCrossFlowAttachedCylinder.jpg (70.1 KB, 18 views)
Maimouna is offline   Reply With Quote

Old   March 28, 2016, 15:46
Default
  #72
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,

Attached is the edited image that shows in red the 3 missing divisions. The 3 red dots show the 6 addition vertices that you need, in order to be able to have the correct blocks.

edit: Once you have this "blockMeshDict" properly defined for the fluid region, I know of a way to reuse this mesh for the solid region. It will be easier to demonstrate as soon as you can provide the updated "blockMeshDict" file for the fluid region.

Best regards,
Bruno
Attached Images
File Type: jpg beamInCrossFlowAttachedCylinder_mod.jpg (95.7 KB, 22 views)

Last edited by wyldckat; March 28, 2016 at 15:48. Reason: see "edit:"
wyldckat is offline   Reply With Quote

Old   March 28, 2016, 20:03
Default
  #73
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear Bruno,

I made some changes in the last attached picture, the new one is attached. According the attached picture the blockMeshDict for the fluid part is
Code:
/*--------------------------------*- C++ -*----------------------------------*\ 
| =========                 |                                                 | 
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           | 
|  \\    /   O peration     | Version:  2.2.1                                 | 
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      | 
|    \\/     M anipulation  |                                                 | 
\*---------------------------------------------------------------------------*/ 
FoamFile 
{ 
    version     2.0; 
    format      ascii; 
    class       dictionary; 
    object      blockMeshDict; 
} 
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 
 
convertToMeters 1; 
 
vertices 
( 

//front vertecies
 
(0 0 0) //vertex 0 
(5 0 0) //vertex 1 
(6 0 0) //vertex 2 
(10 0 0)//vertex 3 
(20 0 0) //vertex 4 
(0 4 0) //vertex 5 
(5 4 0) //vertex 6 
(6 4 0) //vertex 7 
(10 4 0) //vertex 8 
(20 4 0) //vertex 9 
(6 5.5 0) //vertex 10 
(10 5.5 0) //vertex 11 
(20 5.5 0) //vertex 12 
(0 7 0) //vertex 13 
(5 7 0) //vertex 14 
(6 7 0) //vertex 15 
(10 7 0) //vertex 16 
(20 7 0) //vertex 17 
(0 11 0) //vertex 18 
(5 11 0)//vertex 19 
(6 11 7) //vertex 20 
(10 11 7) //vertex 21 
(20 11 7) //vertex 22

//back vertices
 
(0 0 11) //vertex 23 
(5 0 11) //vertex 24 
(6 0 11) //vertex 25 
(10 0 11)//vertex 26 
(20 0 11) //vertex 27 
(0 4 11) //vertex 28 
(5 4 11) //vertex 29 
(6 4 11) //vertex 30 
(10 4 11) //vertex 31 
(20 4 11) //vertex 32 
(6 5.5 11) //vertex 33 
(10 5.5 11) //vertex 34 
(20 5.5 11) //vertex 35 
(0 7 11) //vertex 36 
(5 7 11) //vertex 37 
(6 7 11) //vertex 38 
(10 7 11) //vertex 39 
(20 7 11) //vertex 40 
(0 11 11) //vertex 41 
(5 11 11)//vertex 42 
(6 11 11) //vertex 43 
(10 11 11) //vertex 44 
(20 11 11) //vertex 45
 
); 
 
blocks 
( 
hex (0 1 6 5 23 24 29 28) (50 50 10) simpleGrading (1 1 1) //block 0 
hex (1 2 7 6 24 25 30 29) (50 50 10) simpleGrading (1 1 1) //block 1 
hex (2 3 8 7 25 26 31 30) (50 50 10) simpleGrading (1 1 1) //block 2 
hex (3 4 9 8 26 27 32 31) (50 50 10) simpleGrading (1 1 1) //block 3 
hex (5 6 14 13 28 29 37 36) (50 50 10) simpleGrading (1 1 1) //block 4 
hex (10 11 16 15 33 34 39 38) (50 50 10) simpleGrading (1 1 1) //block 5 
hex (7 8 11 10 30 31 34 33) (50 50 10) simpleGrading (1 1 1) //block 6 
hex (11 12 17 16 34 35 40 39) (50 50 10) simpleGrading (1 1 1) //block 7 
hex (8 9 12 11 31 32 35 34) (50 50 10) simpleGrading (1 1 1) //block 8 
hex (13 14 19 18 36 37 42 41) (50 50 10) simpleGrading (1 1 1) //block 9
hex (14 15 20 19 37 38 43 42) (50 50 10) simpleGrading (1 1 1) //block 10
hex (15 16 21 20 38 39 44 43) (50 50 10) simpleGrading (1 1 1) //block 11
hex (16 17 22 21 39 40 45 44) (50 50 10) simpleGrading (1 1 1) //block 12 
); 
 
edges 
( 
); 
 
boundary 
( 
 
top 
  { 
       type wall; 
       faces 
( 
(18 41 42 19) 
(19 42 43 20) 
(20 43 44 21) 
(21 44 45 22) 
); 
} 
 
bottom 
{ 
type wall; 
       faces 
( 
(0 23 24 1) 
(1 24 25 2) 
(2 25 26 3) 
(3 26 27 4) 
); 
} 
 
outlet 
{ 
type patch; 
       faces 
( 
(4 27 32 9) 
(9 32 35 12) 
(12 35 40 17) 
(17 40 45 22) 
); 
} 
 
inlet 
{ 
type patch; 
       faces 
( 
(0 23 28 5) 
(5 28 36 13) 
(13 36 41 18) 
); 
} 
  
cylinder 
{ 
    type wall; 
       faces 
( 
(6 29 37 14) 
(14 37 38 15) 
(15 38 33 10) 
(10 33 30 7) 
(7 30 29 6) 
); 
} 
 
front 
{ 
type symmetryPlane; 
       faces 
( 
(0 1 6 5) 
(1 2 7 6) 
(2 3 8 7) 
(3 4 9 8)
(5 6 14 13)
(10 11 16 15)
(7 8 11 10)
(11 12 17 16)
(8 9 12 11)
(13 14 19 18)
(14 15 20 19)
(15 16 21 20)
(16 17 22 21) 
); 
} 
 
back 
{ 
    type symmetryPlane; 
       faces 
( 
(23 24 29 28)
(24 25 30 29) 
(25 26 31 30) 
(26 27 32 31)
(28 29 37 36)
(33 34 39 38)
(30 31 34 33)
(34 35 40 39)
(31 32 35 34)
(36 37 42 41)
(37 38 43 42)
(38 39 44 43)
(39 40 45 44) 
); 
} 
); 
 
 
// ************************************************************************* //
and blockMeshDict for the solid is
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 
( 
 
    (6 4 0) //vertex 7 
    (10 4 0) //vertex 8 
    (6 5.5 0) //vertex 10 
    (10 5.5 0) //vertex 11 
    (6 7 0) //vertex 15 
    (10 7 0) //vertex 16 
 
    (6 4 11) //vertex 30 
    (10 4 11) //vertex 31 
    (6 5.5 11) //vertex 33 
    (10 5.5 11) //vertex 34 
    (6 7 11) //vertex 38 
    (10 7 11) //vertex 39 
); 
 
blocks 
( 
    hex (0 1 3 2 6 7 9 8) (50 50 10) simpleGrading (1 1 1) 
    hex (2 3 5 4 8 9 11 10) (50 50 10) simpleGrading (1 1 1) 
); 
 
edges 
( 
); 
 
patches 
( 
    patch plateFix  
    ( 
        (0 2 8 6) 
        (2 4 10 8) 
    ) 
    wall plate 
    ( 
        (0 1 7 6)  
        (1 3 9 7)
        (3 5 11 9)
        (4 5 11 10)  
     ) 
 
    patch front  
    ( 
        (0 1 3 2) 
        (2 3 5 4) 
    ) 
 
    patch back  
    ( 
        (6 7 9 8) 
        (8 9 11 10) 
    ) 
); 
 
mergePatchPairs 
( 
); 
 
// ************************************************************************* //
Is that ok now? I'm still worry about plate part in the fluid mesh, I didn't define it. Is that ok? Could you please test the case again.

Kind regards

Maimouna
Attached Images
File Type: jpg New Doc .jpg (51.9 KB, 16 views)
Maimouna is offline   Reply With Quote

Old   April 1, 2016, 03:02
Default
  #74
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear Bruno,

have you checked my last blockMeshDict files for both fluid and solid? What's the problem? Sorry for that but really getting confused.

Many thanks in advanced.

Maimouna
Maimouna is offline   Reply With Quote

Old   April 3, 2016, 18:39
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
Hi Maimouna,

Sorry, I had a terribly busy week and I didn't manage to look into this sooner.

Attached is the file "blockMeshDict.fluid.gz", which is the blockMeshDict for the fluid region, that fixes a problem you had in vertices 20 to 22, where they were located at "Z = 7 m" instead of "Z = 0 m".

Now, there is an important detail missing, which I noticed in post #42, where you provided two images: one for a beam and another for a foil.
But from the drawings for "blockMeshDict" that you provided, I can't figure out which image from post #42 you're trying to reproduce.

I ask this because you have 2 blocks repeated in both the fluid and the solid region, as shown in the attached image "fluid_vs_solid.png":
  1. In grey with blue lines is shown the mesh for the fluid region.
  2. In white are the lines for the blocks in the solid region.

From what I can figure out, you're heading in the right direction with this, but this is an important detail that we need to be certain about: which case are you trying to reproduce?

Because if the solid region is this big, then you will have problems in making such a large solid to wave around like a flag

Best regards,
Bruno
Attached Images
File Type: png fluid_vs_solid.png (6.1 KB, 26 views)
Attached Files
File Type: gz blockMeshDict.fluid.gz (1.1 KB, 7 views)
Maimouna and Woj3x like this.
__________________
wyldckat is offline   Reply With Quote

Old   April 6, 2016, 10:57
Default
  #76
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Hi Bruno,

sorry for being late to update you, I was unwell. In the post #42, I'm trying to show both cases 2D and 3D what I'm studying. In 3D case, I'm trying the attached picture.

Firstly, I started with the 2d case and extrude the mesh to 3d with some changes in the plate width because I need to see its twists, but that didn't work for me. In that didn't find the validate paper to see how could move from 2d to 3d, so I'm changing to the one which is attached because it is prepared for 3d.

Last modified case is attached. But, it is still doesnt work. the log file gives this error
Code:
/*---------------------------------------------------------------------------*\
| =========                 |                                                 |
| \\      /  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     : fsiFoam
Date     : Apr 06 2016
Time     : 15:13:36
Host     : owner-HP-Pavilion-Sleekbook-15-PC
PID      : 4445
CtrlDict : /home/owner/foam/foam-extend-3.1/etc/controlDict
Case     : /home/owner/foam/owner-3.1/FluidStructureInteraction/run/fsiFoam/3dBeamInCrossFlowNew/fluid
nProcs   : 1
SigFpe   : Enabling floating point exception trapping (FOAM_SIGFPE).

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

Create dynamic mesh for time = 0

Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: velocityLaplacian
Selecting motion diffusion: quadratic
Selecting motion diffusion: inverseDistance
 Reading stress mesh
Creating fixed displacement boundary condition
Creating traction displacement boundary conditions
Creating fixed displacement boundary condition
Creating fixed displacement boundary condition
Selecting rheology model linearElastic
Creating constitutive model
Selecting coupling scheme Aitken

Starting time loop

Creating beamReport function object.
History point ID: 31160
History point coordinates: (10 7 0)
Reference point coordinates: (10 7 0)
Seting inlet velocity
Umax = 0.00489435
Time = 0.1

Create extended GGI zone-to-zone interpolator
Checking fluid-to-solid face interpolator
Fluid-to-solid face interpolation error: 16.0622
Checking solid-to-fluid point interpolator (GGI)
Extended GGI, master point distance, max: 1e+15, avg: 1e+15, min: 1e+15
Extended GGI, master point orientation (<0), max: 1.32245e-315, min: -1.32245e-315, nIncorrectPoints: 2750/2750


--> FOAM FATAL ERROR: 
Master point addressing is not correct

    From function ExtendedGGIInterpolation::masterToSlavePointInterpolate(const Field<Type> pf)
    in file ./numerics/ggi/ExtendedGGIInterpolation/ExtendedGGIInterpolation.C at line 703.

FOAM aborting

Aborted (core dumped)
Could you try to run the case for me please. Also, I'm still have doubt about foil (solid part), is it should be defined in the fluid folder?

Have a look please Bruno and let me know your comments.

Best regards

Maimouna
Attached Images
File Type: jpg 3D case.jpg (73.4 KB, 19 views)
Attached Files
File Type: gz 3dBeamInCrossFlowNew.tar.gz (74.2 KB, 3 views)
Maimouna is offline   Reply With Quote

Old   April 7, 2016, 08:07
Default
  #77
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear Bruno,

looking to the attached two pictures (3D case.png and paraview.shows.png), I think, we could notice the problem is because the wide of the foil (plate). As in the paper, the thickness of the plate is only 0.01 m. Now, how could change blockMeshDict for the soild to make it as in the original case in the attached picture?

Any help please, I did lots of tryings but no one was working, I'm afraid. Any idea and/or help, I really appreciated.

lots of thanks in advanced.

Maimouna
Maimouna is offline   Reply With Quote

Old   April 7, 2016, 08:11
Default
  #78
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Sorry, the attached pictures are here.

Regards

Maimouna
Attached Images
File Type: jpg 3D case.jpg (73.4 KB, 16 views)
File Type: jpg paraview.shows.jpg (83.7 KB, 17 views)
Maimouna is offline   Reply With Quote

Old   April 7, 2016, 19:40
Default
  #79
New Member
 
Wojciech Gołąbek
Join Date: Dec 2013
Posts: 29
Rep Power: 12
Woj3x is on a distinguished road
Hi Maimouna,
I'm not sure if I good understand your question but the you only need to change correct vertices position.
ex.:beamInCrossFlow
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      blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices
(
//Level 0    
    (0 0 0)    //0
    (0.45 0 0) //1
    (0.55 0 0) //2+
    (1.5 0 0)  //3
    (1.5 0 -0.2)//4
    (0.55 0 -0.2)//5+
    (0.45 0 -0.2)//6
    (0 0 -0.2)   //7
    (0 0 -0.4)   //8
    (0.45 0 -0.4)//9
    (0.55 0 -0.4)//10+
    (1.5 0 -0.4) //11
//Level 1    
    (0 0.2 0)    //12
    (0.45 0.2 0) //13
    (0.55 0.2 0) //14+
    (1.5 0.2 0)  //15
    (1.5 0.2 -0.2)//16
    (0.55 0.2 -0.2)//17+
    (0.45 0.2 -0.2)//18
    (0 0.2 -0.2)   //19
    (0 0.2 -0.4)   //20
    (0.45 0.2 -0.4) //21
    (0.55 0.2 -0.4) //22+
    (1.5 0.2 -0.4)  //23
//Level 2    
    (0 0.4 0)       //24
    (0.45 0.4 0)   //25
    (0.55 0.4 0)   //26+
    (1.5 0.4 0)    //27
    (1.5 0.4 -0.2) //28
    (0.55 0.4 -0.2)//29+
    (0.45 0.4 -0.2)//30
    (0 0.4 -0.2)   //31
    (0 0.4 -0.4)   //32
    (0.45 0.4 -0.4)//33
    (0.55 0.4 -0.4)//34+
    (1.5 0.4 -0.4)//35
);
For example you need thinner beam in X direction (base is 0.1 m and you need 0.05 m). So you need to change x component for Vertices number: 2, 5, 10, 14, 17, 22, 26, 29, 34 from 0.55 to 0.50. And same in solid blockMeshDict. IMO best way will be to sketch all vertices and mark ones which you need to correct and then try to pick them from blockMeshDict.

Best regards
Wojciech
wyldckat and Maimouna like this.

Last edited by wyldckat; April 10, 2016 at 15:26. Reason: Changed [QUOTE][/QUOTE] to [CODE][/CODE]
Woj3x is offline   Reply With Quote

Old   April 16, 2016, 06:03
Default
  #80
Senior Member
 
ok
Join Date: Oct 2013
Posts: 346
Rep Power: 13
Maimouna is on a distinguished road
Dear both Bruno and Wojciech,

Wojciech: many thanks for your explanation, I'm really appreciated, but my case is slightly different from your posted blockMeshDict. In my case, blockMeshDict for the fluid is
Code:
/*--------------------------------*- C++ -*----------------------------------*\  
| =========                 |                                                 |  
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |  
|  \\    /   O peration     | Version:  2.2.1                                 |  
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |  
|    \\/     M anipulation  |                                                 |  
\*---------------------------------------------------------------------------*/  
FoamFile  
{  
    version     2.0;  
    format      ascii;  
    class       dictionary;  
    object      blockMeshDict;  
}  
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //  
  
convertToMeters 1;  
  
vertices  
(  
 
//front vertecies 
  
(0 0 0) //vertex 0  
(5 0 0) //vertex 1  
(6 0 0) //vertex 2  
(10 0 0)//vertex 3  
(20 0 0) //vertex 4  
(0 4 0) //vertex 5  
(5 4 0) //vertex 6  
(6 4 0) //vertex 7  
(10 4 0) //vertex 8  
(20 4 0) //vertex 9  
(6 5.5 0) //vertex 10  
(10 5.5 0) //vertex 11  
(20 5.5 0) //vertex 12  
(0 7 0) //vertex 13  
(5 7 0) //vertex 14  
(6 7 0) //vertex 15  
(10 7 0) //vertex 16  
(20 7 0) //vertex 17  
(0 11 0) //vertex 18  
(5 11 0)//vertex 19  
(6 11 0) //vertex 20  
(10 11 0) //vertex 21  
(20 11 0) //vertex 22 
 
//back vertices 
  
(0 0 11) //vertex 23  
(5 0 11) //vertex 24  
(6 0 11) //vertex 25  
(10 0 11)//vertex 26  
(20 0 11) //vertex 27  
(0 4 11) //vertex 28  
(5 4 11) //vertex 29  
(6 4 11) //vertex 30  
(10 4 11) //vertex 31  
(20 4 11) //vertex 32  
(6 5.5 11) //vertex 33  
(10 5.5 11) //vertex 34  
(20 5.5 11) //vertex 35  
(0 7 11) //vertex 36  
(5 7 11) //vertex 37  
(6 7 11) //vertex 38  
(10 7 11) //vertex 39  
(20 7 11) //vertex 40  
(0 11 11) //vertex 41  
(5 11 11)//vertex 42  
(6 11 11) //vertex 43  
(10 11 11) //vertex 44  
(20 11 11) //vertex 45 
  
);  
  
blocks  
(  
hex (0 1 6 5 23 24 29 28) (50 50 10) simpleGrading (1 1 1) //block 0  
hex (1 2 7 6 24 25 30 29) (50 50 10) simpleGrading (1 1 1) //block 1  
hex (2 3 8 7 25 26 31 30) (50 50 10) simpleGrading (1 1 1) //block 2  
hex (3 4 9 8 26 27 32 31) (50 50 10) simpleGrading (1 1 1) //block 3  
hex (5 6 14 13 28 29 37 36) (50 50 10) simpleGrading (1 1 1) //block 4  
hex (10 11 16 15 33 34 39 38) (50 50 10) simpleGrading (1 1 1) //block 5  
hex (7 8 11 10 30 31 34 33) (50 50 10) simpleGrading (1 1 1) //block 6  
hex (11 12 17 16 34 35 40 39) (50 50 10) simpleGrading (1 1 1) //block 7  
hex (8 9 12 11 31 32 35 34) (50 50 10) simpleGrading (1 1 1) //block 8  
hex (13 14 19 18 36 37 42 41) (50 50 10) simpleGrading (1 1 1) //block 9 
hex (14 15 20 19 37 38 43 42) (50 50 10) simpleGrading (1 1 1) //block 10 
hex (15 16 21 20 38 39 44 43) (50 50 10) simpleGrading (1 1 1) //block 11 
hex (16 17 22 21 39 40 45 44) (50 50 10) simpleGrading (1 1 1) //block 12  
);  
  
edges  
(  
);  
  
boundary  
(  
  
top  
  {  
       type wall;  
       faces  
(  
(18 41 42 19)  
(19 42 43 20)  
(20 43 44 21)  
(21 44 45 22)  
);  
}  
  
bottom  
{  
type wall;  
       faces  
(  
(0 23 24 1)  
(1 24 25 2)  
(2 25 26 3)  
(3 26 27 4)  
);  
}  
  
outlet  
{  
type patch;  
       faces  
(  
(4 27 32 9)  
(9 32 35 12)  
(12 35 40 17)  
(17 40 45 22)  
);  
}  
  
inlet  
{  
type patch;  
       faces  
(  
(0 23 28 5)  
(5 28 36 13)  
(13 36 41 18)  
);  
}  
   
cylinder  
{  
    type wall;  
       faces  
(  
(6 29 37 14)  
(14 37 38 15)  
(15 38 33 10)  
(10 33 30 7)  
(7 30 29 6)  
);  
}  
  
front  
{  
type symmetryPlane;  
       faces  
(  
(0 1 6 5)  
(1 2 7 6)  
(2 3 8 7)  
(3 4 9 8) 
(5 6 14 13) 
(10 11 16 15) 
(7 8 11 10) 
(11 12 17 16) 
(8 9 12 11) 
(13 14 19 18) 
(14 15 20 19) 
(15 16 21 20) 
(16 17 22 21)  
);  
}  
  
back  
{  
    type symmetryPlane;  
       faces  
(  
(23 24 29 28) 
(24 25 30 29)  
(25 26 31 30)  
(26 27 32 31) 
(28 29 37 36) 
(33 34 39 38) 
(30 31 34 33) 
(34 35 40 39) 
(31 32 35 34) 
(36 37 42 41) 
(37 38 43 42) 
(38 39 44 43) 
(39 40 45 44)  
);  
}  
);  
  
  
// ************************************************************************* //
and for the solid
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 
( 
 
    (6 4 0) //vertex 0 
    (10 4 0) //vertex 1 
    (6 5.5 0) //vertex 2 
    (10 5.5 0) //vertex 3 
    (6 7 0) //vertex 4 
    (10 7 0) //vertex 5 
 
    (6 4 0.01) //vertex 6 
    (10 4 0.01) //vertex 7 
    (6 5.5 0.01) //vertex 8 
    (10 5.5 0.01) //vertex 9 
    (6 7 0.01) //vertex 10 
    (10 7 0.01) //vertex 11 
 
); 
 
blocks 
( 
    hex (0 1 3 2 6 7 9 8) (50 50 10) simpleGrading (1 1 1) 
    hex (2 3 5 4 8 9 11 10) (50 50 10) simpleGrading (1 1 1) 
); 
 
edges 
( 
); 
 
patches 
( 
    patch plateFix  
    ( 
        (0 2 8 6) 
        (2 4 10 8) 
    ) 
    wall plate 
    ( 
        (0 1 7 6)  
        (1 3 9 7) 
        (3 5 11 9) 
        (4 5 11 10)  
     ) 
 
    patch front  
    ( 
        (0 1 3 2) 
        (2 3 5 4) 
    ) 
 
    patch back  
    ( 
        (6 7 9 8) 
        (8 9 11 10) 
    ) 
); 
 
mergePatchPairs 
( 
); 
 
// ************************************************************************* //
I'm not sure how could apply your last post changes to one which are shown above. Sorry for being silly for asking, but really tried my best to change but gives error all the time. Any help either from you or Bruno, I'm really appreciated.

Another question please, is the plate part need to be in fluid meshing file or not?

Many thanks in advanced.

Maimouna
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
[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 00:53.