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/)
-   -   [FSI] recommended settings for slightly nonconformal mesh for fsi (https://www.cfd-online.com/Forums/openfoam-cc-toolkits-fluid-structure-interaction/229654-recommended-settings-slightly-nonconformal-mesh-fsi.html)

Barry August 18, 2020 04:55

recommended settings for slightly nonconformal mesh for fsi
 
Hi,

Any recommended settings for slightly nonconformal mesh between fluid and solid interface with unstructured mesh for a two way coupled FSI problem? The solidModel is unsLinearGeometry. The remaining settings are almost similar to those given in linearGeometryElasitcBeam except that mapping is RBF. The sim ends with this message:

Create RBF interpolator from interface to interface
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted (core dumped)

Suggestions please......

bigphil August 18, 2020 05:58

Hi Barry,

Is it possible to post your fsiProperties here?
Also, can you post an image of your fluid and solid interface? And do they closely overlap?

You can also try GGI instead of RBF.

Philip

Barry August 18, 2020 21:58

Hi,


Thanks for your reply Phil.


Changed RBF to GGI. The error is different now. Strangely, solidTraction and fixedDisplacement info appeared twice in the log (in green bold text below). I don't see this in linearGeometryElasticBeam FSI tutorial.

---------------------------------------------------------------------
Selecting physicsModel fluidSolidInteraction
Selecting fluidSolidInterface method Aitken
Selecting fluidModel icoFluid
Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: velocityLaplacian
Selecting motion diffusion: quadratic
Selecting motion diffusion: inverseDistance
g field not found in constant directory: initialising to zero
Selecting solidModel unsLinearGeometry
Selecting dynamicFvMesh staticFvMesh
Creating solidTraction boundary condition
limiter coefficient: 1
Creating fixedDisplacement boundary condition
Creating solidTraction boundary condition
limiter coefficient: 1
Creating fixedDisplacement boundary condition
under-relaxation method: fixed

Creating the mechanicalModel
Selecting mechanical law linearElastic
Selecting interfaceToInterfaceMapping GGI
Time = 0.01
Setting traction on solid interfaces
Interpolating face values using GGI
Create GGI zone-to-zone interpolator
interface-to-interface face error: 5.24505
calcMasterPointAddressing() const
Extended GGI, master point distance, max: 1e+15, avg: 2.51166e+13, min: -9.99651e-06

--> FOAM FATAL ERROR:
Master point addressing is not correct

---------------------------------------------------------------------
fsiProperties specified are:


fluidSolidInterface Aitken;
"fixedRelaxationCoeffs|AitkenCoeffs|ISNILSCoef fs"
{
solidPatch interface;
fluidPatch interface;
relaxationFactor 0.4;
outerCorrTolerance 1e-6;
nOuterCorr 50;
coupled no;
interfaceTransferMethod GGI;
writeResidualsToFile yes;
couplingStartTime 10.0;
}

bigphil August 19, 2020 05:43

Something is wrong with the interfaces (fluid and/or solid mesh interface).

I suggest you try a small subset of your problem e.g. take a small section of the pipe, and see if that works.

By the way, it should be possible to upload a small image here or give a link to one.

Philip

Barry August 25, 2020 00:16

Hi Phil,

Thanks for your reply.
I have tested with a slightly different complex geometry that consists of unstructured mesh again. I conclude that perfect conformity between solid and fluid domains is a must for the two way coupling in solids4Foam.

I was hoping that a slight mismatch is allowed in RBF or GGI interface methods. The fluidSolidInterface specified was Aitken. Perhaps, one must try with a combination of various parameters for slightly non-conformal meshes. Not sure if that's recommended either. Perfect conformity seems to be the only way forward.

Regards,
B

bigphil August 25, 2020 04:39

Hi Barry,

Thanks for the update, I am sure it will help others is similar situations.

The GGI/AMI/RBF methods do allow some mismatch of the geometry (as "perfect" is rarely possible with numerics) but obviously your first case was not perfect enough.

Also just to be clear, do you mean by "conformal" in the geometry sense i.e. the two interfaces lie on top of each other? Or do you mean "conformal" in the mesh sense i.e. the vertices line up exactly on both interfaces? I am presuming you mean the geometry as the GGI/RBF methods are designed for non-conformal meshes, assuming the geometry mismatch is not large.

Either way I am glad you have a solution. If someone had the time and motivation, it would be interesting to understand where the GGI/RBF is failing in your first case and figure out how to make it work.

Philip

Barry August 26, 2020 05:23

Thanks for those comments Phil.

That's a good question on conformity.

1. In my first message in this thread where interface issue was raised, meshes for fluid and solid domains are generated separately in openfoam using the same stl. The fluid domain involved refinement regions around the geometry. The mesh resolution on the boundary patch in the fluid domain and solid domains are kept same. However, the resulting mesh showed slightly different spatial extents of the boundary patch and the details are given below
Fluid:
(min x, max x) = (3.43906, 3.65937)
(min y, max y) = (3.49297, 3.76562)
(min z, max z) = (0, 0.49911)
# points = 184654
Solid:
(min x, max x) = (3.43906, 3.65937)
(min y, max y) = (3.49297, 3.76484)
(min z, max z) = (0, 0.49872)
# points = 180029
It seems like this slight geometry non-conformity (and mesh) is critical for FSI.

2. In the second case where interface had no issues, the mesh generation for fluid and solid domains are generated in openfoam as one entity and splitMeshRegions is used to separate both domains. As a result, there was perfect conformity in geometry extents and mesh.

In other words, I couldn't fix the problem, but found a different way of obtaining conformal mesh. This approach of splitMesh does not work for all complex geometries though (at least for those I tried so far).

bigphil August 26, 2020 18:13

Thanks for the details Barry,

In the first case, I am guessing that it might just be a few faces causing the problem (but I don't know). If needed, it should be possible to go into the code and print out the locations of the faces which are the issue.


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