CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM CC Toolkits for Fluid-Structure Interaction (https://www.cfd-online.com/Forums/openfoam-cc-toolkits-fluid-structure-interaction/)
-   -   [solidMechanics] Support thread for "Solid Mechanics Solvers added to OpenFOAM Extend" (https://www.cfd-online.com/Forums/openfoam-cc-toolkits-fluid-structure-interaction/126706-support-thread-solid-mechanics-solvers-added-openfoam-extend.html)

Hiroshiman October 1, 2012 19:38

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

bryant_k October 2, 2012 02:04

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

bigphil October 2, 2012 06:01

Quote:

Originally Posted by Hiroshiman (Post 384433)
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 October 2, 2012 06:03

Quote:

Originally Posted by bryant_k (Post 384452)
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

Hiroshiman October 2, 2012 15:28

Quote:

Originally Posted by bigphil (Post 384478)
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

bryant_k October 3, 2012 00:50

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

bigphil October 3, 2012 04:48

Quote:

Originally Posted by bryant_k (Post 384635)
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

S.J.Daniels October 27, 2012 18:45

Brilliant tutorials! However...
 
1 Attachment(s)
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

bigphil October 30, 2012 05:50

Quote:

Originally Posted by S.J.Daniels (Post 388871)
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

S.J.Daniels October 30, 2012 10:06

Thank you
 
Dear Philip,

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

Best Regards,

Steven

Hiroshiman November 3, 2012 14:56

1 Attachment(s)
[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

bigphil November 7, 2012 06:13

Quote:

Originally Posted by Hiroshiman (Post 390075)
[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

Hiroshiman November 7, 2012 10:30

Hi, thank you for the answer.

Quote:

Originally Posted by bigphil (Post 390756)
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

bigphil November 7, 2012 19:12

Quote:

Originally Posted by Hiroshiman (Post 390804)
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

Hiroshiman November 9, 2012 21:02

Quote:

Originally Posted by bigphil (Post 390908)
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

bigphil November 10, 2012 13:09

Quote:

Originally Posted by Hiroshiman (Post 391344)
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

Hiroshiman November 11, 2012 03:50

Quote:

Originally Posted by bigphil (Post 391406)
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

johannes December 16, 2012 16:24

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

bigphil December 16, 2012 16:46

Quote:

Originally Posted by johannes (Post 397814)
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

johannes December 18, 2012 05:13

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


All times are GMT -4. The time now is 11:55.