cyclic CFD and DEM working but not cyclic coupling (cfdemSolverIB)

Submitted by cigaletranquille on Fri, 07/14/2023 - 19:04

Hello,

My eventual goal is to run a resolved channel flow case using cfdemSolverIB, including periodic conditions. I've set up a simple falling sphere test to check that I've set up my periodic conditions correctly using cyclicAMI. I don't run into errors, but the results appear unphysical and about what I would expect if the periodic conditions were set up correctly for DEM and CFD sides individually, but not for the coupling. I assume it's something in my set up, which I based on the DKT example. I've seen others mention this issue but it's unclear in those cases how they resolved it, if they did.

I've set up a minimal example here: https://github.com/acatwithacomputer/CFDEMperiodicTest

It takes about 15 minutes to run on my machine. Any help is much appreciated.

-CT

Solution: I have done as Daniel suggested below and switched to using CFDEM-PFM. My problem seems to have resolved! Thank you!

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

I set up a little warning after line 93 of cfdemCloudIB.C:

Warning << "Approaching checkPeriodicCells..." << endl;
if(checkPeriodicCells_)
{
Warning << "checkPeriodicCells is true!" << endl;
.....
}

and have in my couplingProperties file


voidFractionModel IB;
locateModel engineIB;
....
IBProps
{
maxCellsPerParticle 100000;
alphaMin 0.30;
scaleUpVol 1.0;
checkPeriodicCells;
}
...
engineIBProps
{
treeSearch false;
zSplit 8;
xySplit 16;
checkPeriodicCells;
}

I'm still getting the same behavior. Moreover, while the solver does output the message "Approaching checkPeriodicCells...", I don't get the notice that it's true, which seems to be telling me that I've either set checkPeriodicCells incorrectly or I need to set it somewhere else and am unable to find documentation so far. Any help would very much be appreciated.

Daniel Queteschiner | Thu, 08/03/2023 - 11:20

checkPeriodicCells is neither a property of the IB voidfraction model nor or of the engineIB locate model as falsely claimed by the documentation.
It is rather a global property property such as solveFlow or couplingInterval, i.e. should be simply used like
couplingInterval 10;
checkPeriodicCells true;
// more settings ...

In case you are interested, we have examples of periodic flow in our version of CFDEMcoupling here: https://github.com/ParticulateFlow/CFDEMcoupling-PFM/tree/master/tutoria...

cigaletranquille | Thu, 08/03/2023 - 19:19

Ah, I see. Thank you; that is enlightening. I also had a look at some of the other examples in the github repository that you linked as well.

I put in the line checkPeriodicCells true (current version of the couplingProperties file here) . Two things:

1. The little message I set up in the if statement of the solver is showing up now, so that seems like progress.
2. I now get this new error

[2]
[2] --> FOAM FATAL IO ERROR:
[2] keyword wall_blockPeriodicityCheck is undefined in dictionary "IOstream"
[2]
[2] file: IOstream from line 0 to line 0.
[2]
[2] From function const Foam::dictionary& Foam::dictionary::subDict(const Foam::word&) const
[2] in file db/dictionary/dictionary.C at line 701.
[2]
FOAM parallel run exiting
[2]

I see in the examples that this wall_blockPeriodicityCheck is not set anywhere. May I ask if you may know what to look at next? And/or, since the setup appears a little different and I notice that this is for your modified code, may I ask what the differences are in the solver?

I'm doing this little test case to work out the periodic boundaries, but ultimately I want to simulate several particles in a channel.

-CT

cigaletranquille | Thu, 08/10/2023 - 02:31

Please disregard my previous post. I switched over to the PFM version and resolved the issue with your instructions. Sorry, I didn't realize that the code originally came out of this university group (or... that is my current very rough understanding).

Thank you so much!

amiya1202 | Fri, 08/25/2023 - 11:19

Can someone tell me the process for compiling the PFM version? And can we have both versions on your system?

Daniel Queteschiner | Sun, 08/27/2023 - 10:10

>> Can someone tell me the process for compiling the PFM version?
Installation instructions are given in the manual. A precompiled html version of the manual can always be found on the release site of the repository, i.e.
https://github.com/ParticulateFlow/LIGGGHTS-PFM/releases
https://github.com/ParticulateFlow/CFDEMcoupling-PFM/releases
For the latest release these are
https://github.com/ParticulateFlow/LIGGGHTS-PFM/releases/download/23.02/...
https://github.com/ParticulateFlow/CFDEMcoupling-PFM/releases/download/2...
The installation procedure is not too different from the DCS/PUBLIC version, though we recommend using cmake for compiling LIGGGHTS.

>> And can we have both versions on your system?
That shouldn't be a problem, you just need to source the correct environment variables to switch between versions.