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] MultiMaterial in FSI problems

Register Blogs Community New Posts Updated Threads Search

Like Tree3Likes
  • 1 Post By Hgholami
  • 2 Post By cyss38

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   December 19, 2019, 02:34
Default MultiMaterial in FSI problems
  #1
Senior Member
 
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7
Hgholami is on a distinguished road
Dear all
In solids4Foam solver for solid physics we have a biMatPlateHoleTotalLag tutorial that uses two material. So this solver can work with multiMaterial.
The Question is: How can combine twoElasticBeam tutorial with biMatPlateHoleTotalLag. I change materialProperties of solid regions in fluidSolidInteraction physics to two SOLID1 and SOLID2 and use two properties. Solver start to calculate and check system folder and fvScheme, fvSolution to code them to SOLID1SubSet and SOLID2SubSet, Then check materialProperties in constant folder and PolyMesh of constant folder.

It need to solver goes to -region solid folder and check All folder of it. Do you think copy other file to root folder of tutorial is OK? or modifying the code?
Thanks
Hgholami is offline   Reply With Quote

Old   December 26, 2019, 01:44
Default
  #2
Senior Member
 
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7
Hgholami is on a distinguished road
As it seen, in the mechanicalProperties with more than one material, the solver use mechanicalModel.C and check line 132
Quote:
if (laws.size() > 1)
to make subMeshes. The solver in this condition only check root folders (0 constant system) and not consider sub regions, so it seen this multiMaterial only use for fluid or solid physics. For FSI it need to develope. Any tips?
Hgholami is offline   Reply With Quote

Old   January 10, 2020, 03:18
Default
  #3
Senior Member
 
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7
Hgholami is on a distinguished road
May it due to definition of IOobject in mechanicalModels?
for exmaple:
Quote:
new volScalarField
(
IOobject
(
"rhoLaw",
mesh().time().timeName(),
mesh(),
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh(),
dimensionedScalar("zero", dimDensity, 0),
calculatedFvPatchScalarField::typeName
)
Hgholami is offline   Reply With Quote

Old   January 15, 2020, 05:55
Default
  #4
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Hi,

To use two or more sets of mechanical properties in the solid region, you just need to specify them in the mechanicalProperties dictionary, e.g.
Code:
planeStress     no;

mechanical
(
    steel
    {
        type            linearElastic;
        rho             rho [1 -3 0 0 0 0 0] 7854;
        E               E [1 -1 -2 0 0 0 0] 200e+9;
        nu              nu [0 0 0 0 0 0 0] 0.3;
    }
    titanium
    {
        type            linearElastic;
        rho             rho [1 -3 0 0 0 0 0] 7854;
        E               E [1 -1 -2 0 0 0 0] 100e+9;
        nu              nu [0 0 0 0 0 0 0] 0.3;
    }
);
where the solid mesh should contain cellZones named "steel" and "titanium" corresponding to the materials above.

Note: linearElastic is for small strain (linearGeometry) solid models only; for finite/large strain (nonlinearGeometry) solid models, you should use an appropriate constitutive law e.g. neoHookeanElastic.

Philip
bigphil is offline   Reply With Quote

Old   January 15, 2020, 10:16
Default
  #5
Senior Member
 
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7
Hgholami is on a distinguished road
Dear Philip
I think this part of code for multiMaterial is only uses for solid physic. for running fluidSolidInteraction physic, the solver try to copy fvScheme and fvSolution in subSet regions (note that in fluidSolidInteraction there isn't any fvSolution file in system folder). Then the solver check constant folder for mechanicalProperties file...
In constant folder for solid physic it is not consider, but for fluidSolidInteraction, we have fluid and solid folder in constant folder. Do you sure, this part work with fluidSolidInteraction?
Thanks
Hojatollah
Hgholami is offline   Reply With Quote

Old   January 15, 2020, 11:48
Default
  #6
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34
bigphil will become famous soon enoughbigphil will become famous soon enough
Hi Hojatollah,

Hmnn, yep you are right, it seems that solids4foam looks for mechanicalProperties and fvSchemes in the wrong place for FSI with multi-material solids.

A temporary work-around is the following:
Code:
$> rm -f system/*Subset
$> cd constant
$> ln -s solid/mechanicalProperties .
$> cd ../system
$> ln -s solid/fvSchemes .
As a permanent solution, I will fix this in the code and push a commit. I will let you know here once it is done.

Philip
bigphil is offline   Reply With Quote

Old   January 16, 2020, 03:11
Default
  #7
Senior Member
 
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7
Hgholami is on a distinguished road
Hi Philip
it seen, we should add more command to it as:
Code:
$> rm -f system/*Subset
$> cd constant
$> ln -s solid/mechanicalProperties .
$> ln -s solid/polyMesh .
$> cd ../system
$> ln -s solid/fvSchemes .
$> ln -s solid/fvSolution .
with this commands, the simulation will run, but the other problem occurs after finish iteration1
Quote:
FOAM FATAL ERROR:
request for newLeastSquaresVolPointInterpolation newLeastSquaresVolPointInterpolation
from objectRegistry solid failed
available objects of type newLeastSquaresVolPointInterpolation are
0
(
)
Quote:
Originally Posted by bigphil View Post
Hi Hojatollah,

Hmnn, yep you are right, it seems that solids4foam looks for mechanicalProperties and fvSchemes in the wrong place for FSI with multi-material solids.

A temporary work-around is the following:
Code:
$> rm -f system/*Subset
$> cd constant
$> ln -s solid/mechanicalProperties .
$> cd ../system
$> ln -s solid/fvSchemes .
As a permanent solution, I will fix this in the code and push a commit. I will let you know here once it is done.

Philip
Hgholami is offline   Reply With Quote

Old   January 19, 2020, 23:04
Default
  #8
Senior Member
 
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7
Hgholami is on a distinguished road
here is log of simulation
Quote:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
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 fixedRelaxation

Selecting fluidModel buoyantBoussinesqPimpleFluid
Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: velocityLaplacian
Selecting motion diffusion: quadratic
Selecting motion diffusion: inverseDistance
Reading g from constant directory
Selecting incompressible transport model Newtonian
Selecting turbulence model type laminar

PIMPLE: Operating solver in PISO mode

Selecting solidModel unsThermalNonLinearGeometryTotalLagrangian
Selecting dynamicFvMesh staticFvMesh
Creating fixedDisplacement boundary condition
Creating fixedDisplacement boundary condition
Creating fixedDisplacement boundary condition
Creating fixedDisplacement boundary condition
Creating fixedDisplacement boundary condition
Creating fixedDisplacement boundary condition
Creating fixedDisplacement boundary condition
Creating fixedDisplacement boundary condition
Creating solidTraction boundary condition
limiter coefficient: 1
Creating solidTraction boundary condition
limiter coefficient: 1
Creating fixedDisplacement boundary condition
under-relaxation method: fixed
Selecting thermal model constant
Selecting thermal source model constant
Creating the mechanicalModel
Number of cells in new mesh : 210
Number of faces in new mesh : 877
Number of points in new mesh: 496
Number of cells in new mesh : 210
Number of faces in new mesh : 877
Number of points in new mesh: 496
Number of cells in new mesh : 210
Number of faces in new mesh : 877
Number of points in new mesh: 496
Number of cells in new mesh : 210
Number of faces in new mesh : 877
Number of points in new mesh: 496
Number of cells in new mesh : 210
Number of faces in new mesh : 877
Number of points in new mesh: 496
Number of cells in new mesh : 210
Number of faces in new mesh : 877
Number of points in new mesh: 496
Number of cells in new mesh : 210
Number of faces in new mesh : 877
Number of points in new mesh: 496
Number of cells in new mesh : 210
Number of faces in new mesh : 877
Number of points in new mesh: 496
Number of cells in new mesh : 15480
Number of faces in new mesh : 62273
Number of points in new mesh: 31662
Selecting mechanical law neoHookeanElastic
Selecting mechanical law neoHookeanElastic
Selecting mechanical law neoHookeanElastic
Selecting mechanical law neoHookeanElastic
Selecting mechanical law neoHookeanElastic
Selecting mechanical law neoHookeanElastic
Selecting mechanical law neoHookeanElastic
Selecting mechanical law neoHookeanElastic
Selecting mechanical law neoHookeanElastic
Creating pointDisp function object
pointDisp: distance from specified point is 0.501983
--> FOAM Warning :
From function polyBoundaryMesh::patchSet(const wordList&)
in file meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C at line 444
Cannot find any patch names matching plate
Time = 2e-05

Create GGI zone-to-zone interpolator for interface patch: elastic
Checking fluid-to-solid face interpolator
Fluid-to-solid face interpolation error: 8.93054e-05
Checking solid-to-fluid point interpolator
calcMasterPointAddressing() const
Extended GGI, master point distance, max: 2.91029e-09, avg: -1.88843e-11, min: -2.83433e-09
Solid-to-fluid point interpolation error: 2.91029e-09
Number of uncovered master faces: 0
Number of uncovered slave faces: 0
calcSlavePointAddressing() const
Extended GGI, slave point distance, max: 2.91029e-09, avg: -2.13943e-11, min: -2.67616e-09
Extended GGI, slave point orientation (<0), max: -0.57735, min: -1, nIncorrectPoints: 0/3968

Create GGI zone-to-zone interpolator for interface patch: finsurface
Checking fluid-to-solid face interpolator
Fluid-to-solid face interpolation error: 0.000757033
Checking solid-to-fluid point interpolator
calcMasterPointAddressing() const
Extended GGI, master point distance, max: 4.3e-10, avg: -7.91339e-11, min: -8.6e-10
Solid-to-fluid point interpolation error: 8.6e-10
Number of uncovered master faces: 0
Number of uncovered slave faces: 0
calcSlavePointAddressing() const
Extended GGI, slave point distance, max: 4.32124e-10, avg: -1.17861e-10, min: -2.90699e-09
Extended GGI, slave point orientation (<0), max: -0.5547, min: -1, nIncorrectPoints: 0/15881

Setting traction on solid patch/patches
Interpolating from fluid to solid using GGI/AMI interpolation
Interpolating from fluid to solid using GGI/AMI interpolation
Total force on interface patch elastic (fluid) = (-0.00025061 -1.37098e-07 1.29725e-08)
Total force on interface patch finsurface (fluid) = (-0.00012649 2.9411e-10 -8.03204e-09)
Total force on interface patch elastic (solid) = (0.00025061 1.37098e-07 -1.29723e-08)
Total force on interface patch finsurface (solid) = (0.000126489 -2.9411e-10 8.03234e-09)
Evolving thermal solid solver
Solving coupled energy and displacements equation for T and D
setCellDisplacements: reading cellDisplacements
Corr, res (T & D), relRes (T & D), matRes, iters (T & D), enforceLinear
The residuals have converged
4, 1.08963e-07, 0, 9.69549e-07, 0, 0, 1, 0, false

Solid temperature min/max(T) = 300, 350 [K]
Interpolating from solid to fluid using GGI/AMI interpolation
Interpolating from solid to fluid using GGI/AMI interpolation
Interpolating from solid to fluid using GGI/AMI interpolation
Interpolating from solid to fluid using GGI/AMI interpolation
Current fsi relative residual norm (elastic): 0
Alternative fsi residual (elastic): 0
Current fsi relative residual norm (finsurface): 0
Alternative fsi residual (finsurface): 0

Time = 2e-05, iteration: 1
Current fsi under-relaxation factor: 0.7
Creating accumulated fluid interface displacement for global patch elastic from disk...
Creating accumulated fluid interface displacement for global patch finsurface from disk...
Maximal accumulated displacement of interface points: 0
GAMG: Solving for cellMotionUx, Initial residual = 0, Final residual = 0, No Iterations 1
GAMG: Solving for cellMotionUy, Initial residual = 0, Final residual = 0, No Iterations 1
GAMG: Solving for cellMotionUz, Initial residual = 0, Final residual = 0, No Iterations 1
GAMG: Solving for cellMotionUx, Initial residual = 0, Final residual = 0, No Iterations 1
GAMG: Solving for cellMotionUy, Initial residual = 0, Final residual = 0, No Iterations 1
GAMG: Solving for cellMotionUz, Initial residual = 0, Final residual = 0, No Iterations 1
Evolving fluid model: buoyantBoussinesqPimpleFluid
Minimum cell dimension: 7.07106e-05
Fourier number mean: 0.00635554 max calculated: 0.0862859
Courant Number mean: 0.00477723 max: 0.0982439 velocity magnitude: 1.37912
PIMPLE: iteration 1
DILUPBiCG: Solving for Ux, Initial residual = 1, Final residual = 5.40798e-07, No Iterations 2
DILUPBiCG: Solving for Uy, Initial residual = 1, Final residual = 4.88039e-07, No Iterations 2
DILUPBiCG: Solving for Uz, Initial residual = 1, Final residual = 4.33661e-07, No Iterations 2
GAMG: Solving for p, Initial residual = 1, Final residual = 9.71662e-07, No Iterations 141
GAMG: Solving for p, Initial residual = 1.12044e-07, Final residual = 1.18199e-07, No Iterations 1
time step continuity errors : sum local = 7.55598e-11, global = 3.28983e-11, cumulative = 3.28983e-11
GAMG: Solving for p, Initial residual = 0.0244118, Final residual = 9.45265e-07, No Iterations 63
GAMG: Solving for p, Initial residual = 9.67213e-07, Final residual = 9.26203e-07, No Iterations 1
time step continuity errors : sum local = 5.80932e-10, global = -2.41695e-10, cumulative = -2.08797e-10
GAMG: Solving for p, Initial residual = 0.000679864, Final residual = 8.80981e-07, No Iterations 13
GAMG: Solving for p, Initial residual = 8.81202e-07, Final residual = 7.89326e-07, No Iterations 1
time step continuity errors : sum local = 4.94946e-10, global = -1.83483e-10, cumulative = -3.9228e-10
DILUPBiCG: Solving for T, Initial residual = 1, Final residual = 6.60637e-07, No Iterations 2
Fluid temperature min/max(T) = 299.951, 350 [K]
Setting traction on solid patch/patches
Interpolating from fluid to solid using GGI/AMI interpolation
Interpolating from fluid to solid using GGI/AMI interpolation
Total force on interface patch elastic (fluid) = (-0.145881 7.18523e-05 -0.0627234)
Total force on interface patch finsurface (fluid) = (-0.109132 3.44053e-08 7.53123)
Total force on interface patch elastic (solid) = (0.145881 -7.18524e-05 0.0627234)
Total force on interface patch finsurface (solid) = (0.109132 -3.43916e-08 -7.53122)
Evolving thermal solid solver
Solving coupled energy and displacements equation for T and D
Corr, res (T & D), relRes (T & D), matRes, iters (T & D), enforceLinear
The residuals have converged
2, 2.3012e-11, 0, 0, 0, 0, 0, 0, false

Solid temperature min/max(T) = 300, 350 [K]
Interpolating from solid to fluid using GGI/AMI interpolation
Interpolating from solid to fluid using GGI/AMI interpolation
Interpolating from solid to fluid using GGI/AMI interpolation
Interpolating from solid to fluid using GGI/AMI interpolation
Current fsi relative residual norm (elastic): 0
Alternative fsi residual (elastic): 0
Current fsi relative residual norm (finsurface): 0
Alternative fsi residual (finsurface): 0
ExecutionTime = 45.67 s ClockTime = 46 s



--> FOAM FATAL ERROR:

request for newLeastSquaresVolPointInterpolation newLeastSquaresVolPointInterpolation from objectRegistry solid failed
available objects of type newLeastSquaresVolPointInterpolation are

0
(
)


From function objectRegistry::lookupObject<Type>(const word&) const
in file /home/itp/foam/foam-extend-4.0/src/foam/lnInclude/objectRegistryTemplates.C at line 139.

FOAM aborting

Aborted (core dumped)
anaspauzi likes this.
Hgholami is offline   Reply With Quote

Old   January 22, 2020, 07:14
Default
  #9
Senior Member
 
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7
Hgholami is on a distinguished road
Dear Philip
Do you have any idea about it?
Thanks
Hgholami is offline   Reply With Quote

Old   April 16, 2021, 10:57
Default
  #10
Member
 
cyss38's Avatar
 
Cyrille Bonamy
Join Date: Mar 2015
Location: Grenoble, France
Posts: 86
Rep Power: 11
cyss38 is on a distinguished road
Dear Hojatollah,
You can find a discussion about this issue here : https://bitbucket.org/philip_cardiff...n-fsi-problems

But the quick fix is : avoid using the solidPointDisplacement functionObject.

Thanks again Philip
Hgholami and W Mao like this.
cyss38 is offline   Reply With Quote

Old   June 24, 2021, 18:29
Default
  #11
New Member
 
Join Date: Jun 2021
Posts: 7
Rep Power: 5
Elstro is on a distinguished road
Dear cyss38,

Are there any permissions or something like this to open the link at bitbucket?
I can only open the link. After my registration I am not allowed to look at the linked thread or discussion about solids4foam...
I'm actually facing the problem with two different materials in FSI.

Thank you!
Elstro is offline   Reply With Quote

Old   July 5, 2021, 23:39
Default
  #12
Senior Member
 
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7
Hgholami is on a distinguished road
Hi
you should communication with Dr. Philip Cardiff via bigphil id to access to solids4Foam repo.
Quote:
Originally Posted by Elstro View Post
Dear cyss38,

Are there any permissions or something like this to open the link at bitbucket?
I can only open the link. After my registration I am not allowed to look at the linked thread or discussion about solids4foam...
I'm actually facing the problem with two different materials in FSI.

Thank you!
Hgholami is offline   Reply With Quote

Old   July 7, 2021, 20:18
Default
  #13
New Member
 
anaspauzi's Avatar
 
Anas Muhamad Pauzi
Join Date: Nov 2019
Posts: 16
Rep Power: 7
anaspauzi is on a distinguished road
Quote:
Originally Posted by cyss38 View Post
Dear Hojatollah,
You can find a discussion about this issue here : https://bitbucket.org/philip_cardiff...n-fsi-problems

But the quick fix is : avoid using the solidPointDisplacement functionObject.

Thanks again Philip
Im having the same problem to use solidPointDisplacement for multimaterial.

Is there any solution besides of deleting the pointDisp fun

Thank you
anaspauzi is offline   Reply With Quote

Reply

Tags
multimaterial, solids4foam


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
Two way FSI related Query n.soumya ANSYS 0 July 24, 2018 03:50
How To model FSI problems which have piezoelectric material mechy CFX 2 July 21, 2012 22:16
How To model FSI problems which have piezoelectric material mechy ANSYS 0 June 30, 2012 01:40
Needed Benchmark Problems for FSI Mechstud Main CFD Forum 4 July 26, 2011 13:13
What is weakstrong coupling in FSI problems hajo OpenFOAM Running, Solving & CFD 5 May 15, 2008 02:45


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