cfdemSolverIB cyclic patch with unequal values

Submitted by byama on Wed, 05/01/2019 - 19:21

Hello all,

I have noticed an issue for my runs using the resolved CFDEM solver (cfdemSolverIB) when attempting to use cyclic patches on the OpenFOAM side. For some reason, the velocity values at the cyclic patches do not match.

To check, I've run a toy case based on the "twoSpheresGlowinskiMPI" tutorial. The toy case is modified with gravity turned off and just including an initial uniform z-velocity in the cells specified in 0/U. Inlet and outlet (ie the upper and lower z faces of the domain) are changed to be paired cyclic patches.

When I compare the velocity values at the paired cyclic patches, I noticed that there is a fairly significant difference in some of the paired patch point values. In fact, none of the values match perfectly. By comparison, when running the case with only fluid phase (icoFoam), there is full agreement between the paired velocity values.

I've included below a link to the toy case with the runs and including the comparison of values.

Has anyone else had this issue before? If so any advice on how to remedy it would be greatly appreciated.

case link: https://drive.google.com/open?id=16vMLC8FBTqFiF8dQDlenmscahzRejKFg

Thanks and all the best,
Brian

achuth1992 | Wed, 09/18/2019 - 21:32

Hey,

I also faced such an issue before. You may try using the cyclicAMI BC for the periodic patches with uniform z-velocity. This helped me in resolving the problem. If you are using
mesh refinement this might be helpful.

Bests,
Achuth

f.picella's picture

f.picella | Thu, 10/24/2019 - 19:28

Hello everyone,

as well as Brian, I am facing an issue-bug when using the cfdemSolverIB for the simulation of particles in a periodic domain.

Starting from the "twoSphere" tutorial, setting 'cyclic' boundary conditions on the CFD side and adapting "in.liggghts_run" accordingly, I observe an unphysical behaviour.
The particle glitches and disappears when crossing the 'cyclic' boundary, as you can see from the video attached.
https://drive.google.com/open?id=1cAKsi4Rw3ExgSfB1JXDJ3jfGts5-Gp16

Once the whole particle has crossed the boundary, it re-appears, continuing its path.

As suggested by Achuth, I have tried using the cyclicAMI BC, but with no succes.
The Fluid solver encounters a fatal error due to phiIB's convergence. When tolerance is refined within the fvSolution file, a solution similar to the one obtained using the simple 'cyclic' BC is retrieved.

I understand that there must be some link with the 'checkPeriodicCells' flag, but still I can not sort it out.

I hope you could give me some advice in solving this problem.

Thank you

Best

Francesco

PS
here's the link to my formulation, so that you can replicate the behavior of my code:
z- periodic boundary:
https://drive.google.com/open?id=1bkzJNCHeKb8JTD2a3brRgSu7-pFMfGg2
x-y-z periodic boundary:
https://drive.google.com/open?id=1jI7TSMcOFulZ8AmUtunJXVeiqal23pob

PPS
I'm running using:
CFDEMversion="cfdem-3.8.1";
compatibleLIGGGHTSversion="3.8.0";
OFversion="5.x-commit-538044ac05c4672b37c7df607dca1116fa88df88";

Francesco

mofazli | Wed, 04/08/2020 - 01:32

Hi Francesco,
I have the same issue with cfdemSolverIb for using periodic boundary condition at all sides of the box. The problem arises when I set the wall_blockPeriodicityCheck in coupling properties file. After that, I constantly give some messages in different timeSteps containing:
Cannot find point in pts1 matching point 0 coord:(0.55 1 0.05) in pts0 when using tolerance 0.070710678
Which finally give rise to error:
--> FOAM FATAL ERROR:
Too many errors
So did you find any solution to run cfdemSolverIb in a periodic box (a case like this https://drive.google.com/open?id=1jI7TSMcOFulZ8AmUtunJXVeiqal23pob)
Cheers,
Mohammad

luisjau8967 | Thu, 05/14/2020 - 04:26

Hi Mohammad,
I'm also trying to use cfdemSolverIB in a periodic box. I also cannot run my simulation, I get the message that the error is due to wall_blockPeriodicityCheck being undefined in the couplingProperties file, so I would like to define it but I cannot find any further information about this besides you comment. Can you please explain to me how did you "set" the keyword wall_blockPeriodicityCheck in coupling properties file?
Regards,
Luis

luisjau8967 | Thu, 05/14/2020 - 04:58

Hi Mohammad,
Regarding my question about wall_blockPeriodicityCheck, no need to answer me I have solved my problem (at least on the CFD side).
Thank you
Regards,
Luis

cigaletranquille | Tue, 08/01/2023 - 21:50

Hi Luis,
I'm aware this is a few years old, but may I ask what it is that you did to get all of this checkPeriodicCells business straightened out?
Best,
CT

mofazli | Tue, 05/19/2020 - 02:15

Yes, Luis,
I have solved the problem as well.
Good luck

amir.mofakham | Mon, 06/08/2020 - 16:49

Hi Mohammad,

I am also trying to use cfdemSolverIB with dynamicRefineFvMesh option and cyclic boundary condition on boundaries.
I faced the same issues like "Cannot find point in pts1 matching point 0 coord:(0.55 1 0.05) in pts0 when using tolerance 0.070710678".
Would you please tell me how you could you manage to resolve the issue?

Thanks,
Amir

mofazli | Tue, 06/09/2020 - 02:29

Hi Amir,
I think you should use cyclicAMI boundary condition instead of cyclic when you are imposing dynamicRefineFvMesh option. In dynamicRefineFvMesh option, it is possible to have different mesh arrangement in the periodic sides, so using the same values for two sides is not appropriate. So cyclicAMI forces the periodic BC with consideration of mesh variation. Hope it works for you.
Mohammad

kcui | Mon, 12/06/2021 - 03:10

Greetings!
This post is more than a year old but I hope I could get some help from here, since most of you guys seem to have successfully solved the problem. I have followed the suggestions posted above - using cyclicAMI, dynamicRefineFvMesh, set the checkPeriodicCells in the engineIBProps - but still no success. The error I get is this:
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 3.0.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 3.0.1-d8a290b55d28
Exec : decomposePar -force
Date : Dec 06 2021
Time : 09:44:43
Host : "kahlilcui"
PID : 85274
Case : /home/kahlil/Desktop/CFDEMinter/IB/CFD
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Allowing user-supplied system call operations

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

Decomposing mesh region0

Removing 3 existing processor directories
Create mesh

Calculating distribution of cells
Selecting decompositionMethod simple

Finished decomposition in 0 s

Calculating original mesh data

Distributing cells to processors

Distributing faces to processors

Distributing points to processors

Constructing processor meshes

Processor 0
Number of cells = 267
Number of faces shared with processor 1 = 21
Number of processor patches = 1
Number of processor faces = 21
Number of boundary faces = 581

Processor 1
Number of cells = 267
Number of faces shared with processor 0 = 21
Number of faces shared with processor 2 = 21
Number of processor patches = 2
Number of processor faces = 42
Number of boundary faces = 560

Processor 2
Number of cells = 266
Number of faces shared with processor 1 = 21
Number of processor patches = 1
Number of processor faces = 21
Number of boundary faces = 579

Number of processor faces = 42
Max number of cells = 267 (0.125% above average 266.666666667)
Max number of processor patches = 2 (50% above average 1.33333333333)
Max number of faces between processors = 42 (50% above average 28)

Time = 0
AMI: Creating addressing and weights between 20 source faces and 20 target faces
--> FOAM Warning :
From function AMIMethod::checkPatches()
in file lnInclude/AMIMethod.C at line 57
Source and target patch bounding boxes are not similar
source box span : (0 0.005 0.09)
target box span : (0 0.005 0.09)
source box : (0 0 0) (0 0.005 0.09)
target box : (0.2 0 0) (0.2 0.005 0.09)
inflated target box : (0.195493060906 -0.00450693909433 -0.00450693909433) (0.204506939094 0.00950693909433 0.0945069390943)

--> FOAM FATAL ERROR:
Unable to find initial target face

From function void Foam::AMIMethod::initialise(labelListList&, scalarListList&, labelListList&, scalarListList&, label&, label&)
in file lnInclude/AMIMethod.C at line 149.

FOAM aborting

.....

Followed by a very long error information. Are there any other fixes that need to be implemented? Maybe someone can share a simple test/sample code?

Regards,

Kahlil

mofazli | Tue, 12/07/2021 - 02:33

Hi Kahlil
What is the case you are looking? What is the version of OF and CFDEM-coupling? You don't need to insert checkPeriodicCells in the engineIBProps. I think it is better to post here the content of your couplingProperties and blockMeshDict. Then maybe I can help you.