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

solids4Foam + sixDoFRigidBodyDisplacement

Register Blogs Community New Posts Updated Threads Search

Like Tree8Likes

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   November 20, 2019, 15:18
Default solids4Foam + sixDoFRigidBodyDisplacement
  #1
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
Hi dear foamers,

When I try to use sixDoFRigidBodyDisplacement boundary in pointDisplacement for a flexible dropping wedge, the solids4Foam solver gives me the error:

"Unknown patchField type sixDoFRigidBodyDisplacement for patch type wall"

So I wonder if sixDoFRigidBodyDisplacement is available in solids4Foam + foam-extend 4.1.

If I use "solver velocityLaplacian" in dynamicMeshDict, I cannot set the mass, momentum ineria and others in pointMotionU.

So I have to use "solver displacementLaplacian" with pointDisplacment boundary file.

Anyone has any experiences?

Thanks,
Michael
Michael@UW is offline   Reply With Quote

Old   November 21, 2019, 06:40
Default
  #2
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
In foam-extend, the sixDoFRigidBodyDisplacement pointPatchField is available in the "forces" library i.e. libforces.so.

So you should load this library in the case by adding the following line to the controlDict:
Code:
libs      ("libforces.so");
Philip
bigphil is offline   Reply With Quote

Old   November 21, 2019, 11:26
Default
  #3
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
Quote:
Originally Posted by bigphil View Post
In foam-extend, the sixDoFRigidBodyDisplacement pointPatchField is available in the "forces" library i.e. libforces.so.

So you should load this library in the case by adding the following line to the controlDict:
Code:
libs      ("libforces.so");
Philip
It still gives the same error:

Selecting physicsModel fluidSolidInteraction

Selecting fluidSolidInterface method Aitken

Selecting fluidModel interFluid
Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: displacementLaplacian


--> FOAM FATAL IO ERROR:
Unknown patchField type sixDoFRigidBodyDisplacement for patch type wall

Valid patchField types are :

24
(
angularOscillatingDisplacement
angularOscillatingVelocity
calculated
componentMixed
cyclic
empty
fixedValue
generic
global
mixed
oscillatingDisplacement
oscillatingFixedValue
oscillatingVelocity
processor
slip
surfaceDisplacement
surfaceSlipDisplacement
symmetryPlane
timeVaryingUniformFixedValue
timeVaryingVelocity
uniformFixedValue
value
wedge
zeroGradient
)
Michael@UW is offline   Reply With Quote

Old   November 21, 2019, 11:34
Default
  #4
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
It works if I just solve fluid problem with sixDoF motion (like floatingObject case), but when using fsi, this problem happens.

So I wonder if the interFluid solver supports this boundary condition.
Michael@UW is offline   Reply With Quote

Old   November 21, 2019, 13:16
Default
  #5
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
Can you attach the entire log from the solver?
I am wondering if libforces.so was loaded.
bigphil is offline   Reply With Quote

Old   November 21, 2019, 14:08
Default
  #6
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
Quote:
Originally Posted by bigphil View Post
Can you attach the entire log from the solver?
I am wondering if libforces.so was loaded.
log.solid4Foam:
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/
Build : 4.1-7bc0c8b3d8fd
Exec : solids4Foam
Date : Nov 21 2019
Time : 11:06:27
Host : "cfd-me"
PID : 16124
CtrlDict : "/home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid/system/controlDict"
Case : /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
allowSystemOperations : Disallowing user-supplied system call operations

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

/*---------------------------------------------------------------------------*\
| For further information on the solids4Foam toolbox implementations, |
| please see the following publications: |
| |
| P. Cardiff, A Karac, P. De Jaeger, H. Jasak, J. Nagy, A. Ivankovic, |
| Z. Tukovic: An open-source finite volume toolbox for solid mechanics and |
| fluid-solid interaction simulations. arXiv:1808.10736v2, 2018, available |
| at https://arxiv.org/abs/1808.10736. |
| |
| Z. Tukovic, A. Karac, P. Cardiff, H. Jasak, A. Ivankovic: OpenFOAM |
| finite volume solver for fluid-solid interaction. Transactions of |
| Famena, 42 (3), pp. 1-31, 2018, 10.21278/TOF.42301. |
\*---------------------------------------------------------------------------*/

Selecting physicsModel fluidSolidInteraction

Selecting fluidSolidInterface method Aitken

Selecting fluidModel interFluid
Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: displacementLaplacian

////////////////////////////
The following is output on screen:

michael@cfd-me:~/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid$ ./Allrun
Running setSet on /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
Running setsToZones on /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
Running setSet on /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
Running setsToZones on /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/
Build : 4.1-7bc0c8b3d8fd
Exec : setFields
Date : Nov 21 2019
Time : 11:06:26
Host : "cfd-me"
PID : 16119
CtrlDict : "/home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid/system/controlDict"
Case : /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
allowSystemOperations : Disallowing user-supplied system call operations

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

Time = 0
Create mesh for time = 0

Reading setFieldsDict

Setting field default values
Setting volScalarField alpha1

Setting field region values
Adding cells with center within box (-999 -999 -999) (999 999 0)
Setting volScalarField alpha1

End
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/
Build : 4.1-7bc0c8b3d8fd
Exec : solids4Foam
Date : Nov 21 2019
Time : 11:06:27
Host : "cfd-me"
PID : 16124
CtrlDict : "/home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid/system/controlDict"
Case : /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
allowSystemOperations : Disallowing user-supplied system call operations

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

/*---------------------------------------------------------------------------*\
| For further information on the solids4Foam toolbox implementations, |
| please see the following publications: |
| |
| P. Cardiff, A Karac, P. De Jaeger, H. Jasak, J. Nagy, A. Ivankovic, |
| Z. Tukovic: An open-source finite volume toolbox for solid mechanics and |
| fluid-solid interaction simulations. arXiv:1808.10736v2, 2018, available |
| at https://arxiv.org/abs/1808.10736. |
| |
| Z. Tukovic, A. Karac, P. Cardiff, H. Jasak, A. Ivankovic: OpenFOAM |
| finite volume solver for fluid-solid interaction. Transactions of |
| Famena, 42 (3), pp. 1-31, 2018, 10.21278/TOF.42301. |
\*---------------------------------------------------------------------------*/

Selecting physicsModel fluidSolidInteraction

Selecting fluidSolidInterface method Aitken

Selecting fluidModel interFluid
Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: displacementLaplacian


--> FOAM FATAL IO ERROR:
Unknown patchField type sixDoFRigidBodyDisplacement for patch type wall

Valid patchField types are :

24
(
angularOscillatingDisplacement
angularOscillatingVelocity
calculated
componentMixed
cyclic
empty
fixedValue
generic
global
mixed
oscillatingDisplacement
oscillatingFixedValue
oscillatingVelocity
processor
slip
surfaceDisplacement
surfaceSlipDisplacement
symmetryPlane
timeVaryingUniformFixedValue
timeVaryingVelocity
uniformFixedValue
value
wedge
zeroGradient
)


file: /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid/0/fluid/pointDisplacement::boundaryField::interface from line 36 to line 133.

From function PointPatchField<PatchField, Mesh, PointPatch, MatrixType, Type>::New(const PointPatch&, const DimensionedField<Type, Mesh>&, const dictionary&)
in file /home/michael/foam/foam-extend-4.1/src/foam/lnInclude/newPointPatchField.C at line 220.

FOAM exiting
Michael@UW is offline   Reply With Quote

Old   November 21, 2019, 14:09
Default
  #7
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
constant/fluid/dynamicMeshDict

/*--------------------------------*- 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 dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dynamicFvMesh dynamicMotionSolverFvMesh;
motionSolverLibs ("libfvMotionSolver.so");
//motionSolverLibs ("libsixDoFRigidBodyMotion.so");
//motionSolverLibs
//(
//"libfvMotionSolvers.so"
//"libsixDoFRigidBodyMotion.so"
//);
//solver velocityLaplacian;
solver displacementLaplacian;
//diffusivity quadratic inverseDistance (interface);
diffusivity inverseDistance (interface);
// ************************************************** *********************** //
Michael@UW is offline   Reply With Quote

Old   November 21, 2019, 14:17
Default
  #8
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
Quote:
Originally Posted by bigphil View Post
In foam-extend, the sixDoFRigidBodyDisplacement pointPatchField is available in the "forces" library i.e. libforces.so.

So you should load this library in the case by adding the following line to the controlDict:
Code:
libs      ("libforces.so");
Philip
Hi Phillip,
I made it by adding the 'libforces.so'! Previously, I thought this lib is already included in the functionObjectLibs, actually, they are different. This lib has to be added explicitly outside the functions.
They are different libs!

Many thanks for your great help!

Michael


libs (
"libforces.so"
);



functions
{

forces
{
type forces;
region fluid;
functionObjectLibs ( "libforces.so" );
outputControl timeStep;
outputInterval 1;
patches (interface);

pName p;
UName U;
rhoName rhoInf;
log true;
rhoInf 1;
CofR (0 0 0);
}
}
Michael@UW is offline   Reply With Quote

Old   November 21, 2019, 14:24
Default New errors about motion solver
  #9
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
The sixDoFRigidDisplacement is recognized, but some new errors occur regarding that:

log.solids4Foam

/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/
Build : 4.1-7bc0c8b3d8fd
Exec : solids4Foam
Date : Nov 21 2019
Time : 11:19:06
Host : "cfd-me"
PID : 16478
CtrlDict : "/home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid/system/controlDict"
Case : /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
allowSystemOperations : Disallowing user-supplied system call operations

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

/*---------------------------------------------------------------------------*\
| For further information on the solids4Foam toolbox implementations, |
| please see the following publications: |
| |
| P. Cardiff, A Karac, P. De Jaeger, H. Jasak, J. Nagy, A. Ivankovic, |
| Z. Tukovic: An open-source finite volume toolbox for solid mechanics and |
| fluid-solid interaction simulations. arXiv:1808.10736v2, 2018, available |
| at https://arxiv.org/abs/1808.10736. |
| |
| Z. Tukovic, A. Karac, P. Cardiff, H. Jasak, A. Ivankovic: OpenFOAM |
| finite volume solver for fluid-solid interaction. Transactions of |
| Famena, 42 (3), pp. 1-31, 2018, 10.21278/TOF.42301. |
\*---------------------------------------------------------------------------*/

Selecting physicsModel fluidSolidInteraction

Selecting fluidSolidInterface method Aitken

Selecting fluidModel interFluid
Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: displacementLaplacian
Selecting motion diffusion: inverseDistance
Reading g from constant directory
Selecting incompressible transport model Newtonian
Selecting incompressible transport model Newtonian
Selecting turbulence model type RASModel
Selecting RAS turbulence model kOmegaSST
kOmegaSSTCoeffs
{
alphaK1 0.85;
alphaK2 1;
alphaOmega1 0.5;
alphaOmega2 0.856;
gamma1 0.555556;
gamma2 0.44;
beta1 0.075;
beta2 0.0828;
betaStar 0.09;
a1 0.31;
b1 1;
c1 10;
F3 false;
}

Resetting the dimensions of p
Selecting solidModel linearGeometryTotalDisplacement
Selecting dynamicFvMesh staticFvMesh
Creating solidTraction boundary condition
limiter coefficient: 1
Creating solidTraction boundary condition
limiter coefficient: 1
Symmetry boundary condition with non-orthogonal correction
Symmetry boundary condition with non-orthogonal correction
Creating solidTraction boundary condition
limiter coefficient: 1
Creating solidTraction boundary condition
limiter coefficient: 1
Symmetry boundary condition with non-orthogonal correction
Symmetry boundary condition with non-orthogonal correction
under-relaxation method: fixed
Creating the mechanicalModel
Selecting mechanical law linearElastic
--> FOAM Warning :
From function findElements::findElements(const fvMesh&)
in file probes/probes.C at line 111
Did not find location (0 0 0.001) in any cell. Skipping location.
Creating pointDisp function object
pointDisp: distance from specified point is 4.9e-05
Creating p0 function object
p0: distance from specified point is 0.00885164
Creating p1 function object
p1: distance from specified point is 0.000112171
Creating p2 function object
p2: distance from specified point is 6.49216e-05
Creating p3 function object
p3: distance from specified point is 5.18184e-05
Courant Number mean: 0 max: 0.249474 velocity magnitude: 1.245
deltaT = 0.0001
Time = 0.0001

Create GGI zone-to-zone interpolator
Checking fluid-to-solid face interpolator
Fluid-to-solid face interpolation error: 0.000224795
Checking solid-to-fluid point interpolator
calcMasterPointAddressing() const
Extended GGI, master point distance, max: 8.89597e-07, avg: -3.21957e-07, min: -2.08912e-06
Solid-to-fluid point interpolation error: 2.08912e-06
Number of uncovered master faces: 0
Number of uncovered slave faces: 0
calcSlavePointAddressing() const
Extended GGI, slave point distance, max: 8.76686e-07, avg: -3.48228e-07, min: -1.99333e-06
Extended GGI, slave point orientation (<0), max: -0.999958, min: -1, nIncorrectPoints: 0/2102
Setting traction on solid patch
Interpolating from fluid to solid using GGI/AMI interpolation
Total force (fluid) = (2.17623e-24 -0.000532424 0.00146285)
Total force (solid) = (-2.17643e-24 0.000532421 -0.00146284)
Evolving solid solver
Solving the momentum equation for D
setCellDisplacements: reading cellDisplacements
Corr, res, relRes, matRes, iters
100, 0.00700349, 0.000902449, 0, 0
200, 0.0118739, 0.000649986, 0, 0
300, 0.00238669, 0.00153087, 0, 0
400, 0.0120425, 4.51168e-05, 0, 0
500, 0.00107473, 0.000182391, 0, 0
600, 0.000741463, 0.000129435, 0, 0
The relative residual has converged
633, 9.98104e-05, 0, 0, 0

Interpolating from solid to fluid using GGI/AMI interpolation
Interpolating from solid to fluid using GGI/AMI interpolation
Current fsi relative residual norm: 1
Alternative fsi residual: 1

Time = 0.0001, iteration: 1
Current fsi under-relaxation factor (fixed): 0.24
Creating accumulated fluid interface displacement
Maximal accumulated displacement of interface points: 6.67381e-06

screen output:

Running setSet on /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
Running setsToZones on /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
Running setSet on /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
Running setsToZones on /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/
Build : 4.1-7bc0c8b3d8fd
Exec : setFields
Date : Nov 21 2019
Time : 11:19:06
Host : "cfd-me"
PID : 16472
CtrlDict : "/home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid/system/controlDict"
Case : /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
allowSystemOperations : Disallowing user-supplied system call operations

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

Time = 0
Create mesh for time = 0

Reading setFieldsDict

Setting field default values
Setting volScalarField alpha1

Setting field region values
Adding cells with center within box (-999 -999 -999) (999 999 0)
Setting volScalarField alpha1

End
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | foam-extend: Open Source CFD |
| \\ / O peration | Version: 4.1 |
| \\ / A nd | Web: http://www.foam-extend.org |
| \\/ M anipulation | For copyright notice see file Copyright |
\*---------------------------------------------------------------------------*/
Build : 4.1-7bc0c8b3d8fd
Exec : solids4Foam
Date : Nov 21 2019
Time : 11:19:06
Host : "cfd-me"
PID : 16478
CtrlDict : "/home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid/system/controlDict"
Case : /home/michael/foam/michael-4.1/run/Flexible/fsiWedge20_elastic1_sys_fineGrid
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
allowSystemOperations : Disallowing user-supplied system call operations

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

/*---------------------------------------------------------------------------*\
| For further information on the solids4Foam toolbox implementations, |
| please see the following publications: |
| |
| P. Cardiff, A Karac, P. De Jaeger, H. Jasak, J. Nagy, A. Ivankovic, |
| Z. Tukovic: An open-source finite volume toolbox for solid mechanics and |
| fluid-solid interaction simulations. arXiv:1808.10736v2, 2018, available |
| at https://arxiv.org/abs/1808.10736. |
| |
| Z. Tukovic, A. Karac, P. Cardiff, H. Jasak, A. Ivankovic: OpenFOAM |
| finite volume solver for fluid-solid interaction. Transactions of |
| Famena, 42 (3), pp. 1-31, 2018, 10.21278/TOF.42301. |
\*---------------------------------------------------------------------------*/

Selecting physicsModel fluidSolidInteraction

Selecting fluidSolidInterface method Aitken

Selecting fluidModel interFluid
Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: displacementLaplacian
Selecting motion diffusion: inverseDistance
Reading g from constant directory
Selecting incompressible transport model Newtonian
Selecting incompressible transport model Newtonian
Selecting turbulence model type RASModel
Selecting RAS turbulence model kOmegaSST
kOmegaSSTCoeffs
{
alphaK1 0.85;
alphaK2 1;
alphaOmega1 0.5;
alphaOmega2 0.856;
gamma1 0.555556;
gamma2 0.44;
beta1 0.075;
beta2 0.0828;
betaStar 0.09;
a1 0.31;
b1 1;
c1 10;
F3 false;
}

Resetting the dimensions of p
Selecting solidModel linearGeometryTotalDisplacement
Selecting dynamicFvMesh staticFvMesh
Creating solidTraction boundary condition
limiter coefficient: 1
Creating solidTraction boundary condition
limiter coefficient: 1
Symmetry boundary condition with non-orthogonal correction
Symmetry boundary condition with non-orthogonal correction
Creating solidTraction boundary condition
limiter coefficient: 1
Creating solidTraction boundary condition
limiter coefficient: 1
Symmetry boundary condition with non-orthogonal correction
Symmetry boundary condition with non-orthogonal correction
under-relaxation method: fixed
Creating the mechanicalModel
Selecting mechanical law linearElastic
--> FOAM Warning :
From function findElements::findElements(const fvMesh&)
in file probes/probes.C at line 111
Did not find location (0 0 0.001) in any cell. Skipping location.
Creating pointDisp function object
pointDisp: distance from specified point is 4.9e-05
Creating p0 function object
p0: distance from specified point is 0.00885164
Creating p1 function object
p1: distance from specified point is 0.000112171
Creating p2 function object
p2: distance from specified point is 6.49216e-05
Creating p3 function object
p3: distance from specified point is 5.18184e-05
Courant Number mean: 0 max: 0.249474 velocity magnitude: 1.245
deltaT = 0.0001
Time = 0.0001

Create GGI zone-to-zone interpolator
Checking fluid-to-solid face interpolator
Fluid-to-solid face interpolation error: 0.000224795
Checking solid-to-fluid point interpolator
calcMasterPointAddressing() const
Extended GGI, master point distance, max: 8.89597e-07, avg: -3.21957e-07, min: -2.08912e-06
Solid-to-fluid point interpolation error: 2.08912e-06
Number of uncovered master faces: 0
Number of uncovered slave faces: 0
calcSlavePointAddressing() const
Extended GGI, slave point distance, max: 8.76686e-07, avg: -3.48228e-07, min: -1.99333e-06
Extended GGI, slave point orientation (<0), max: -0.999958, min: -1, nIncorrectPoints: 0/2102
Setting traction on solid patch
Interpolating from fluid to solid using GGI/AMI interpolation
Total force (fluid) = (2.17623e-24 -0.000532424 0.00146285)
Total force (solid) = (-2.17643e-24 0.000532421 -0.00146284)
Evolving solid solver
Solving the momentum equation for D
setCellDisplacements: reading cellDisplacements
Corr, res, relRes, matRes, iters
100, 0.00700349, 0.000902449, 0, 0
200, 0.0118739, 0.000649986, 0, 0
300, 0.00238669, 0.00153087, 0, 0
400, 0.0120425, 4.51168e-05, 0, 0
500, 0.00107473, 0.000182391, 0, 0
600, 0.000741463, 0.000129435, 0, 0
The relative residual has converged
633, 9.98104e-05, 0, 0, 0

Interpolating from solid to fluid using GGI/AMI interpolation
Interpolating from solid to fluid using GGI/AMI interpolation
Current fsi relative residual norm: 1
Alternative fsi residual: 1

Time = 0.0001, iteration: 1
Current fsi under-relaxation factor (fixed): 0.24
Creating accumulated fluid interface displacement
Maximal accumulated displacement of interface points: 6.67381e-06


--> FOAM FATAL ERROR:
Problem with fluid mesh motion solver selection

From function fluidSolidInterface::moveFluidMesh()
in file fluidSolidInterfaces/fluidSolidInterface/fluidSolidInterface.C at line 1593.

FOAM aborting
Michael@UW is offline   Reply With Quote

Old   November 22, 2019, 05:05
Default
  #10
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
Currently, for solids4Foam the fluid mesh motion solver needs to use the pointMotionU or motionU fields (pointDisplacement is not allowed).

I suggest you use the velocityLaplacian motion solver.

It shouldn't be so difficult to extend solids4foam to use any fluid motion solver but it is on a long to-do list
bigphil is offline   Reply With Quote

Old   November 22, 2019, 09:33
Default
  #11
Member
 
Join Date: Apr 2011
Posts: 57
Rep Power: 15
amanbearpig is on a distinguished road
Correct me if I'm wrong, but I don't think you need the sixDoF boundary. If you are doing FSI, apply velocity to the solid using the displacement boundary conditions (see the impactBar tutorial in the tutorials folder).
amanbearpig is offline   Reply With Quote

Old   November 22, 2019, 10:00
Default
  #12
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 amanbearpig View Post
Correct me if I'm wrong, but I don't think you need the sixDoF boundary. If you are doing FSI, apply velocity to the solid using the displacement boundary conditions (see the impactBar tutorial in the tutorials folder).
Good question.

I had presumed it was for some other boundary e.g. 6DoF for one solid and FSI for the other, however, this may not be the case.
bigphil is offline   Reply With Quote

Old   November 29, 2019, 13:46
Default
  #13
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
Quote:
Originally Posted by amanbearpig View Post
Correct me if I'm wrong, but I don't think you need the sixDoF boundary. If you are doing FSI, apply velocity to the solid using the displacement boundary conditions (see the impactBar tutorial in the tutorials folder).
Thank you for your suggestion. I don't know how to set the velocity to the solid. The solid is free-falling and the velocity is not constant. And the velocity will be determined by the force when it hits the water. And I don't quite understand the impactbar case, and the boundary condtions look complicated. Is there a detailed explanation of this case?

What I want to simulate is just similar to the floatingObject tutorial but the Object is flexible.
So I try to extend this fluid only problem to a 2-way FSI problem.
Michael@UW is offline   Reply With Quote

Old   November 29, 2019, 14:11
Default
  #14
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
Quote:
Originally Posted by bigphil View Post
Good question.

I had presumed it was for some other boundary e.g. 6DoF for one solid and FSI for the other, however, this may not be the case.
The key problem is the solid is in a compound motion: rigid body motion due to gravity and deformation due to impacting force. That makes me not know how to set the boundary conditions on the interface for both fluid and solids.
Michael@UW is offline   Reply With Quote

Old   November 30, 2019, 10:18
Default
  #15
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
Hi Michael@UW,

The impactBar case shows how to set an initial non-zero velocity for a solid. In your case, it sounds like it is fine to set the solid initial velocity as zero and let gravity force the solid to drop.

Remember that you cannot set extra boundary conditions at the FSI interface; the FSI interface is a boundary condition (forces are balanced, and velocities/displacement are balanced).

Philip
Michael@UW likes this.
bigphil is offline   Reply With Quote

Old   January 17, 2020, 12:58
Default
  #16
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
Quote:
Originally Posted by amanbearpig View Post
Correct me if I'm wrong, but I don't think you need the sixDoF boundary. If you are doing FSI, apply velocity to the solid using the displacement boundary conditions (see the impactBar tutorial in the tutorials folder).
Thank you for your suggestion. After studying the impactBar case, I think applying an initial velocity is an good idea. I have tested the case, it runs as almost expected. But there is a problem unsolved. Is there a way to set the mass manually which can be done in sixDOF boundary, since my solid part is simplified and the total mass including the ballast is larger than the density*volume? Can I just increase the density in the dictionary accordingly?
Michael@UW is offline   Reply With Quote

Old   January 17, 2020, 13:19
Default
  #17
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
Quote:
Originally Posted by bigphil View Post
Hi Michael@UW,

The impactBar case shows how to set an initial non-zero velocity for a solid. In your case, it sounds like it is fine to set the solid initial velocity as zero and let gravity force the solid to drop.

Remember that you cannot set extra boundary conditions at the FSI interface; the FSI interface is a boundary condition (forces are balanced, and velocities/displacement are balanced).

Philip
Hi Philip,
I tried to impose some motion on the interface manually through pointMotionU, but it failed. After reading the codes, I understand what you were talking about the FSI interface. It is an very important caution that FSI interface is moved according the solution!

As I replied to "amanbearpig" in the last post, I would also ask you if it is a good way to set a fake density value of solid to account for the ballast.

By the way, to view the deforming process (show the deformed shape), which vector should I use among "U", "pointD", and "pointDD" to warp? It seems "U" and "pointDD" give the same deformation, but they are different from "pointD".

Thank you!
Michael
Michael@UW is offline   Reply With Quote

Old   March 8, 2020, 18:10
Default
  #18
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 Michael@UW View Post
Thank you for your suggestion. After studying the impactBar case, I think applying an initial velocity is an good idea. I have tested the case, it runs as almost expected. But there is a problem unsolved. Is there a way to set the mass manually which can be done in sixDOF boundary, since my solid part is simplified and the total mass including the ballast is larger than the density*volume? Can I just increase the density in the dictionary accordingly?
You could increase the density although this may result in strange unphysical local deformations, though probably not since your impact rate is not that high (just free falling?). Try it out and see.

Alternatively, if one patch of the solid was not part of the FSI patch, you could apply a force/traction here equal to the extra mass by gravity.

Another option would be to add point/cell masses/forces into some cells in the solid. This is not yet implemented but would not be too difficult: just add a field to the momentum equation (just like rho*g) except this field will be zero everywhere except for cells in which you add the extra force. fvOptions would be ideal for this but I have yet to integrate it into the solid solvers.

Philip
Daniel_Khazaei likes this.
bigphil is offline   Reply With Quote

Old   March 8, 2020, 18:15
Default
  #19
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 Michael@UW View Post
By the way, to view the deforming process (show the deformed shape), which vector should I use among "U", "pointD", and "pointDD" to warp? It seems "U" and "pointDD" give the same deformation, but they are different from "pointD".
  • D is the total displacement
  • DD is the increment of displacement i.e. DD = D - D_0
  • D_0 is the old-time total displacement
  • U is the velocity
  • pointD is D interpolated (in the solver) to the mesh points: this interpolation is a but more accurate than the interpolation by ParaView
  • similarly pointDD is the point version of DD

    So when using "warp by vector", use D or pointD fields (D will be interpolated to the points by ParaView so it should be almost the same as pointD, but pointD is more correct).

    Philip
bigphil is offline   Reply With Quote

Old   March 18, 2020, 19:30
Default moveFluidMesh() in solids4Foam does nothing?
  #20
Senior Member
 
Join Date: Jan 2019
Posts: 125
Blog Entries: 1
Rep Power: 0
Michael@UW is on a distinguished road
Hi Philip,
Can you help explain how the fsi solver actually moves the meshes of solid and fluid?

1. Can the solid mesh be moved by the solver? It seems staticFvMesh is used in all the tutorials for the solid part.

2. In all the fsi solvers inherited from fluidSolidInterface, I find the function moveFluidMesh seems to do nothing. Did I miss some codes?

My finding is that moveFluidMesh is a virtual function in fluidSolidInterface, and is not overridden in the derived classes.

For example, here is the code for
Code:
bool AitkenCouplingInterface::evolve()
{
  ... 
   do
    {
        outerCorr()++;

        // Transfer the displacement from the solid to the fluid
        updateDisplacement();

        // Move the fluid mesh
        moveFluidMesh(); // does nothing?

        // Solve fluid
        fluid().evolve(); 

        // Transfer the force from the fluid to the solid
    //    updateForce();

        // Solve solid
        solid().evolve();

        // Calculate the FSI residual
        residualNorm = updateResidual();
    }
    while (residualNorm > outerCorrTolerance() && outerCorr() < nOuterCorr());

    solid().updateTotalFields();

....
}
Thank you!
Michael
Michael@UW 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
pimpleFoam is right, how about solids4Foam pimpleFluid? amuzeshi OpenFOAM Running, Solving & CFD 6 December 9, 2019 11:55
[solids4Foam] How to calculate drag coeff when using solids4Foam amuzeshi OpenFOAM CC Toolkits for Fluid-Structure Interaction 15 November 7, 2019 13:50
Fatal error in solids4Foam brunomramoa OpenFOAM CC Toolkits for Fluid-Structure Interaction 1 October 16, 2019 13:26
Overset FSI - pimpleOversetFluid is unknown to solids4Foam amuzeshi OpenFOAM CC Toolkits for Fluid-Structure Interaction 2 September 29, 2019 15:31
[FSI] solids4Foam vs icoFsiElasticNonLinULSolidFoam on HPC server amuzeshi OpenFOAM CC Toolkits for Fluid-Structure Interaction 7 August 31, 2019 06:26


All times are GMT -4. The time now is 20:06.