CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Community Contributions > OpenFOAM CC Toolkits for Fluid-Structure Interaction

[solidMechanics] Support thread for "Solid Mechanics Solvers added to OpenFOAM Extend"

Register Blogs Community New Posts Updated Threads Search

Like Tree134Likes

Closed Thread
 
LinkBack Thread Tools Search this Thread Display Modes
Old   October 1, 2012, 19:38
Default
  #21
Member
 
Join Date: Sep 2012
Posts: 51
Rep Power: 14
Hiroshiman is on a distinguished road
Hi,
thank you for the development of a large deformation solid solver. I'm planning to use it for fsi in arteries and I was wondering : do you have any idea of the amount of work required to use it on OF 2.1.1 ? (and which functionalities would be lost).
Thanks
Florian
Hiroshiman is offline  

Old   October 2, 2012, 02:04
Default
  #22
New Member
 
kob
Join Date: Nov 2011
Posts: 28
Rep Power: 15
bryant_k is on a distinguished road
Hi Philip
I always get error when I use the following command in the floder OpenFOAM-1.6-ext:
Code:
git checkout -b feature/solidMechanics remotes/origin/feature/solidMechanics
So where can I download the code package firstly(don't use git but manual download),then compile them?

Thank you!

bryant
bryant_k is offline  

Old   October 2, 2012, 06:01
Default
  #23
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by Hiroshiman View Post
Hi,
thank you for the development of a large deformation solid solver. I'm planning to use it for fsi in arteries and I was wondering : do you have any idea of the amount of work required to use it on OF 2.1.1 ? (and which functionalities would be lost).
Thanks
Florian
Hi Florian,

I don't think it should be too difficult to get it to work in standard OpenFOAM, but I haven't tried.

As regards losing functionality, I don't think anything should be lost with the large strain solver. I recommend you take the solver of interest and take the required bits out of the solidModels library (rheologyModel and boundary conditions - fvPatchFields) and try compile it. It should be possible to get it working, with a little help for the smart forum people.

Best regards,
Philip
bigphil is offline  

Old   October 2, 2012, 06:03
Default
  #24
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by bryant_k View Post
Hi Philip
I always get error when I use the following command in the floder OpenFOAM-1.6-ext:
Code:
git checkout -b feature/solidMechanics remotes/origin/feature/solidMechanics
So where can I download the code package firstly(don't use git but manual download),then compile them?

Thank you!

bryant
Hi bryant,

You can browse and download the code manually from the source-forge here.

What error do you get when you run the git command?

Philip
bigphil is offline  

Old   October 2, 2012, 15:28
Default
  #25
Member
 
Join Date: Sep 2012
Posts: 51
Rep Power: 14
Hiroshiman is on a distinguished road
Quote:
Originally Posted by bigphil View Post
Hi Florian,

I don't think it should be too difficult to get it to work in standard OpenFOAM, but I haven't tried.

As regards losing functionality, I don't think anything should be lost with the large strain solver. I recommend you take the solver of interest and take the required bits out of the solidModels library (rheologyModel and boundary conditions - fvPatchFields) and try compile it. It should be possible to get it working, with a little help for the smart forum people.

Best regards,
Philip
Thank you for your answer, I will look at it and give you some news if I manage to make it work.

Regards,
Florian
Hiroshiman is offline  

Old   October 3, 2012, 00:50
Default
  #26
New Member
 
kob
Join Date: Nov 2011
Posts: 28
Rep Power: 15
bryant_k is on a distinguished road
Hi Philip
The error I met just like someone have mentioned before.When I run the following command:
Code:
git checkout -b feature/solidMechanics remotes/origin/feature/solidMechanics
I get this:
Code:
fatal: Not a git repository (or any of the parent directories): .git
I am sorry I still can't download the code the website you give me.Because there is no download button there.I can just see tree|history or other button there.


regards!

bryant
bryant_k is offline  

Old   October 3, 2012, 04:48
Default
  #27
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by bryant_k View Post
Hi Philip
The error I met just like someone have mentioned before.When I run the following command:
Code:
git checkout -b feature/solidMechanics remotes/origin/feature/solidMechanics
I get this:
Code:
fatal: Not a git repository (or any of the parent directories): .git
I am sorry I still can't download the code the website you give me.Because there is no download button there.I can just see tree|history or other button there.


regards!

bryant
Hi bryant,

OK I believe the git command does not work for you because you did not download OpenFOAM-1.6-ext via git, is this the case?

You can download OpenFOAM-1.6-ext via git using the command:
Code:
git clone git://openfoam-extend.git.sourceforge.net/gitroot/openfoam-extend/openfoam-extend
then moving to this OpenFOAM-1.6-ext directory and executing the command:
Code:
git checkout -b feature/solidMechanics remotes/origin/feature/solidMechanics
will checkout the solidMechanics branch.

Philip
bigphil is offline  

Old   October 27, 2012, 18:45
Default Brilliant tutorials! However...
  #28
New Member
 
Join Date: Jun 2012
Posts: 7
Rep Power: 14
S.J.Daniels is on a distinguished road
Hi there,

Thanks for the upload, a very good contribution, but I'm having trouble compiling the icoFsiElasticNonLinULSolidFoam code. Please find attached my log file for the compiling process. Any ideas how to fix this? Has anyone got the icoFsiElasticNonLinULSolidFoam code working??

Best Regards,

Steven

solid_mechanics.txt
S.J.Daniels is offline  

Old   October 30, 2012, 05:50
Default
  #29
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by S.J.Daniels View Post
Hi there,

Thanks for the upload, a very good contribution, but I'm having trouble compiling the icoFsiElasticNonLinULSolidFoam code. Please find attached my log file for the compiling process. Any ideas how to fix this? Has anyone got the icoFsiElasticNonLinULSolidFoam code working??

Best Regards,

Steven

Attachment 16424
Hi Steven,

The reason for this error is due to a missing lnInclude links directory in $FOAM_SRC/tetDecompositionFiniteElement, so to solve the problem:
Code:
cd $FOAM_SRC/tetDecompositionFiniteElement
wmakeLnInclude .
This will make the missing lnInclude directory.

The solver should then compile.

Best regards,
Philip
bigphil is offline  

Old   October 30, 2012, 10:06
Default Thank you
  #30
New Member
 
Join Date: Jun 2012
Posts: 7
Rep Power: 14
S.J.Daniels is on a distinguished road
Dear Philip,

Many thanks for your help! The code is working now.

Best Regards,

Steven
S.J.Daniels is offline  

Old   November 3, 2012, 14:56
Default
  #31
Member
 
Join Date: Sep 2012
Posts: 51
Rep Power: 14
Hiroshiman is on a distinguished road
[FIXED] it finally seems to bee working after changing the BC
Hi,
after trying some of the tutorials I wanted to test your solver on my cases, especially the large deformation FSI solver. For testing purposes I set up a very simple pipe with a fluid inside (the fluid mesh being generated with snappyHexMesh and the solid via extrudeToRegionMesh).
The BC are :
fluid :
inlet : fixed velocity, zero gradient pressure
outlet : zero gradient velocity, fixed value pressure
wall : movingWallVelocity, zero pressure
and fixedValue (0 0 0) for motionU

solid :
outlet/inlet : fixedDisplacement (0 0 0)
inter/outer wall :
type solidTraction;
nonLinear updatedLagrangian;
traction uniform ( 0 0 0 );
pressure uniform 0;
value uniform (0 0 0);


I also changed the gradient scheme for DU as the code politely asked me from Gauss linear to extendedLeastSquares 0.
The problem is, it can't pass the first iteration and crash in tears with a floating point exception :

Code:
~$ icoFsiElasticNonLinULSolidFoam 
/*---------------------------------------------------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM Extend Project: Open source CFD        |
|  \\    /   O peration     | Version:  1.6-ext                               |
|   \\  /    A nd           | Web:      www.extend-project.de                 |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
Build  : 1.6-ext-959ec266ba5c
Exec   : icoFsiElasticNonLinULSolidFoam
Date   : Nov 03 2012
Time   : 14:42:05
Host   : barbaportable
PID    : 21978
Case   : /home/florian/OpenFOAM/florian-1.6-ext/run/testnoumerooneFSI/HronTurekFsi/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: laplaceFaceDecomposition
Selecting motion diffusivity: quadratic

Reading transportProperties

Reading field p

Reading field U

Reading/calculating face flux field phi

Reading incremental displacement field DU

Patch region0_to_wall4_wall3    Traction boundary field: DU
    nonLinear set to updated Lagrangian
max(detdd) = 17.9352
min(detdd) = 5.69387
average(detdd) = 9.90012
max(detdd) = 17.9352
min(detdd) = 5.69387
average(detdd) = 9.90012
nAddCells/nCells = 0
Reading incremental displacement field DV

Reading accumulated velocity field V

Reading accumulated stress field sigma

Reading incremental stress field DSigma

Selecting rheology model linearElastic

Reading coupling properties
Create fluid-to-solid and solid-to-fluid interpolators
Check fluid-to-solid and solid-to-fluid interpolators
Fluid-to-solid face interpolation error: 0.00131215
Solid-to-fluid face interpolation error: 0.00131215

Starting time loop

Time = 1e-05

Selecting coupling scheme Aitken

Time = 1e-05, iteration: 1
Current fsi under-relaxation factor: 0.01
Maximal accumulated displacement of interface points: 0
Courant Number mean: 1.8894e-06 max: 1.64473e-05 velocity magnitude: 0.2
DILUPBiCG:  Solving for Ux, Initial residual = 1, Final residual = 7.13165e-12, No Iterations 1
DILUPBiCG:  Solving for Uy, Initial residual = 1, Final residual = 6.85799e-12, No Iterations 1
DILUPBiCG:  Solving for Uz, Initial residual = 1, Final residual = 1.94807e-13, No Iterations 1
GAMG:  Solving for p, Initial residual = 1, Final residual = 5.14394e-07, No Iterations 20
GAMG:  Solving for p, Initial residual = 0.0179676, Final residual = 7.3011e-07, No Iterations 8
time step continuity errors : sum local = 5.29294e-12, global = -2.04832e-12, cumulative = -2.04832e-12
GAMG:  Solving for p, Initial residual = 0.00179327, Final residual = 6.69856e-07, No Iterations 6
GAMG:  Solving for p, Initial residual = 0.000394718, Final residual = 7.74832e-07, No Iterations 3
time step continuity errors : sum local = 5.71226e-12, global = -1.40003e-12, cumulative = -3.44834e-12
Setting traction on solid patch
Total traction force = (-0.071344 0.125002 1.21712)
Exception en point flottant
I hope I missed something simple.
Both solid and fluid domains can be seen in the attached screenshot.
By the way, what is the acceptable interpolation error ?

Thank you in advanced for you help,

regards,
Florian
Attached Images
File Type: jpg Capture.jpg (43.5 KB, 136 views)

Last edited by Hiroshiman; November 5, 2012 at 13:57.
Hiroshiman is offline  

Old   November 7, 2012, 06:13
Default
  #32
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by Hiroshiman View Post
[FIXED] it finally seems to bee working after changing the BC
Hi,
after trying some of the tutorials I wanted to test your solver on my cases, especially the large deformation FSI solver. For testing purposes I set up a very simple pipe with a fluid inside (the fluid mesh being generated with snappyHexMesh and the solid via extrudeToRegionMesh).
The BC are :
fluid :
inlet : fixed velocity, zero gradient pressure
outlet : zero gradient velocity, fixed value pressure
wall : movingWallVelocity, zero pressure
and fixedValue (0 0 0) for motionU

solid :
outlet/inlet : fixedDisplacement (0 0 0)
inter/outer wall :
type solidTraction;
nonLinear updatedLagrangian;
traction uniform ( 0 0 0 );
pressure uniform 0;
value uniform (0 0 0);


I also changed the gradient scheme for DU as the code politely asked me from Gauss linear to extendedLeastSquares 0.
The problem is, it can't pass the first iteration and crash in tears with a floating point exception :

Code:
~$ icoFsiElasticNonLinULSolidFoam 
/*---------------------------------------------------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM Extend Project: Open source CFD        |
|  \\    /   O peration     | Version:  1.6-ext                               |
|   \\  /    A nd           | Web:      www.extend-project.de                 |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
Build  : 1.6-ext-959ec266ba5c
Exec   : icoFsiElasticNonLinULSolidFoam
Date   : Nov 03 2012
Time   : 14:42:05
Host   : barbaportable
PID    : 21978
Case   : /home/florian/OpenFOAM/florian-1.6-ext/run/testnoumerooneFSI/HronTurekFsi/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: laplaceFaceDecomposition
Selecting motion diffusivity: quadratic

Reading transportProperties

Reading field p

Reading field U

Reading/calculating face flux field phi

Reading incremental displacement field DU

Patch region0_to_wall4_wall3    Traction boundary field: DU
    nonLinear set to updated Lagrangian
max(detdd) = 17.9352
min(detdd) = 5.69387
average(detdd) = 9.90012
max(detdd) = 17.9352
min(detdd) = 5.69387
average(detdd) = 9.90012
nAddCells/nCells = 0
Reading incremental displacement field DV

Reading accumulated velocity field V

Reading accumulated stress field sigma

Reading incremental stress field DSigma

Selecting rheology model linearElastic

Reading coupling properties
Create fluid-to-solid and solid-to-fluid interpolators
Check fluid-to-solid and solid-to-fluid interpolators
Fluid-to-solid face interpolation error: 0.00131215
Solid-to-fluid face interpolation error: 0.00131215

Starting time loop

Time = 1e-05

Selecting coupling scheme Aitken

Time = 1e-05, iteration: 1
Current fsi under-relaxation factor: 0.01
Maximal accumulated displacement of interface points: 0
Courant Number mean: 1.8894e-06 max: 1.64473e-05 velocity magnitude: 0.2
DILUPBiCG:  Solving for Ux, Initial residual = 1, Final residual = 7.13165e-12, No Iterations 1
DILUPBiCG:  Solving for Uy, Initial residual = 1, Final residual = 6.85799e-12, No Iterations 1
DILUPBiCG:  Solving for Uz, Initial residual = 1, Final residual = 1.94807e-13, No Iterations 1
GAMG:  Solving for p, Initial residual = 1, Final residual = 5.14394e-07, No Iterations 20
GAMG:  Solving for p, Initial residual = 0.0179676, Final residual = 7.3011e-07, No Iterations 8
time step continuity errors : sum local = 5.29294e-12, global = -2.04832e-12, cumulative = -2.04832e-12
GAMG:  Solving for p, Initial residual = 0.00179327, Final residual = 6.69856e-07, No Iterations 6
GAMG:  Solving for p, Initial residual = 0.000394718, Final residual = 7.74832e-07, No Iterations 3
time step continuity errors : sum local = 5.71226e-12, global = -1.40003e-12, cumulative = -3.44834e-12
Setting traction on solid patch
Total traction force = (-0.071344 0.125002 1.21712)
Exception en point flottant
I hope I missed something simple.
Both solid and fluid domains can be seen in the attached screenshot.
By the way, what is the acceptable interpolation error ?

Thank you in advanced for you help,

regards,
Florian
Hi Florian,

For future reference, what BC did you have to change to solver your problem?

I am not sure what interpolation error is acceptable, it depends on your application and what you are interested in.
More information can be found on this solver in the conference paper by Tukovic and Jasak here.

Philip
bigphil is offline  

Old   November 7, 2012, 10:30
Default
  #33
Member
 
Join Date: Sep 2012
Posts: 51
Rep Power: 14
Hiroshiman is on a distinguished road
Hi, thank you for the answer.

Quote:
Originally Posted by bigphil View Post
Hi Florian,
For future reference, what BC did you have to change to solver your problem?
Philip
My fluid BC are :
motionU
Code:
boundaryField
{
    region0_to_wall4_wall3
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    minZ
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }
    maxZ
    {
        type            fixedValue;
        value           uniform (0 0 0);
    }

}
p
Code:
boundaryField
{
    region0_to_wall4_wall3
    {
        type            fixedValue;
        value           uniform 0;
    }
    minZ
    {
        type            fixedValue;
        value           uniform 0;
    }
    maxZ
    {
        type            zeroGradient;
    }
}
U
Code:
boundaryField
{
    region0_to_wall4_wall3
    {
        type            movingWallVelocity;
        value           uniform (0 0 0);
    }
    minZ 
    {
        type            zeroGradient;
   
    }
    maxZ 
    {
       type            fixedValue;
       value           uniform (0 0 0.2);
    }

}

Do have any any if anyone has already implemented 0D BC on the solid part ?

Regards,

Florian

Last edited by Hiroshiman; November 7, 2012 at 13:24.
Hiroshiman is offline  

Old   November 7, 2012, 19:12
Default
  #34
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by Hiroshiman View Post
Do have any any if anyone has already implemented 0D BC on the solid part ?
Hi Florian,

I am not sure I understand, what is a 0D BC?

Philip
bigphil is offline  

Old   November 9, 2012, 21:02
Default
  #35
Member
 
Join Date: Sep 2012
Posts: 51
Rep Power: 14
Hiroshiman is on a distinguished road
Quote:
Originally Posted by bigphil View Post
Hi Florian,

I am not sure I understand, what is a 0D BC?

Philip
HI Philip,
I meant using lumped parameters to set-up the outer wall BC e.g. to represent the surrounding environment around an elastic pipe with springs and dampers.

Florian
Hiroshiman is offline  

Old   November 10, 2012, 13:09
Default
  #36
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by Hiroshiman View Post
HI Philip,
I meant using lumped parameters to set-up the outer wall BC e.g. to represent the surrounding environment around an elastic pipe with springs and dampers.

Florian
Hi Florian,

I am not aware of such boundary conditions, but I think they should be straight-forward to implement. The BC would be based on solidTraction and then the traction_ could be calculated each increment based on the displacement using what ever spring model you like.

Philip
bigphil is offline  

Old   November 11, 2012, 03:50
Default
  #37
Member
 
Join Date: Sep 2012
Posts: 51
Rep Power: 14
Hiroshiman is on a distinguished road
Quote:
Originally Posted by bigphil View Post
Hi Florian,

I am not aware of such boundary conditions, but I think they should be straight-forward to implement. The BC would be based on solidTraction and then the traction_ could be calculated each increment based on the displacement using what ever spring model you like.

Philip
Hi !
Thank you for your answer, I'll look at it more closely.

Florian
Hiroshiman is offline  

Old   December 16, 2012, 16:24
Default
  #38
Member
 
Johannes Baumann
Join Date: Mar 2009
Location: Baden-Wuerttemberg, Germany
Posts: 43
Rep Power: 17
johannes is on a distinguished road
Hi Philip,

first of all, many thanks to you and your group for sharing the Solid Mechanics Solvers. Must have been quite a bit of work...

I'd love to have a look at the new solvers, but unfortunately, I get build errors when using gcc-4.7.1. Do you have a gcc-47 update available (maybe in form of a seperate branch) or do I have to switch back to gcc-46, at least for now?

Thanks & best regards,
Johannes
johannes is offline  

Old   December 16, 2012, 16:46
Default
  #39
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by johannes View Post
Hi Philip,

first of all, many thanks to you and your group for sharing the Solid Mechanics Solvers. Must have been quite a bit of work...

I'd love to have a look at the new solvers, but unfortunately, I get build errors when using gcc-4.7.1. Do you have a gcc-47 update available (maybe in form of a seperate branch) or do I have to switch back to gcc-46, at least for now?

Thanks & best regards,
Johannes
Hi Johannes,

Hopefully you will find the solvers useful.

I have not tried gcc-47 yet so I have no experience with it.
Changing back to gcc-46 is probably the quickest way to get things working.

If you post the errors here then we can try to fix them.

Best regards,
Philip

Last edited by bigphil; December 16, 2012 at 16:46. Reason: typo
bigphil is offline  

Old   December 18, 2012, 05:13
Default
  #40
Member
 
Johannes Baumann
Join Date: Mar 2009
Location: Baden-Wuerttemberg, Germany
Posts: 43
Rep Power: 17
johannes is on a distinguished road
Hi Philip,

thanks for your fast response.
Luckily, my problem has been a false alarm. I don't know exactly how this happened but somehow during git checking out/compiling/cleaning I managed to kill my OF-extend binaries, so all the errors were just dependency issues. Yesterday I recompiled everything including the solidMechanics branch without a single error so everything is working now.

Best regards,
Johannes
johannes is offline  

Closed Thread


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
GPU Linear Solvers for OpenFOAM gocarts OpenFOAM Announcements from Other Sources 37 August 17, 2022 15:22
[Virtualization] OpenFOAM oriented tutorial on using VMware Player - support thread wyldckat OpenFOAM Installation 2 July 11, 2012 17:01
New OpenFOAM Forum Structure jola OpenFOAM 2 October 19, 2011 07:55
Cross-compiling OpenFOAM 1.7.0 on Linux for Windows 32 and 64bits with Mingw-w64 wyldckat OpenFOAM Announcements from Other Sources 3 September 8, 2010 07:25
OpenFOAM Debian packaging current status problems and TODOs oseen OpenFOAM Installation 9 August 26, 2007 14:50


All times are GMT -4. The time now is 02:47.