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/)
-   -   [solids4Foam] MultiMaterial in FSI problems (https://www.cfd-online.com/Forums/openfoam-cc-toolkits-fluid-structure-interaction/223044-multimaterial-fsi-problems.html)

Hgholami December 19, 2019 01:34

MultiMaterial in FSI problems
 
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 December 26, 2019 00:44

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 January 10, 2020 02:18

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
)

bigphil January 15, 2020 04:55

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

Hgholami January 15, 2020 09:16

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

bigphil January 15, 2020 10:48

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 January 16, 2020 02:11

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 (Post 754742)
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 January 19, 2020 22:04

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)

Hgholami January 22, 2020 06:14

Dear Philip
Do you have any idea about it?
Thanks

cyss38 April 16, 2021 09:57

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 :)

Elstro June 24, 2021 17:29

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 July 5, 2021 22:39

Hi
you should communication with Dr. Philip Cardiff via bigphil id to access to solids4Foam repo.
Quote:

Originally Posted by Elstro (Post 806804)
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!


anaspauzi July 7, 2021 19:18

Quote:

Originally Posted by cyss38 (Post 801730)
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


All times are GMT -4. The time now is 23:54.