Compilling CFDEM with foam extend 3.2

Submitted by RobertG on Fri, 10/16/2015 - 14:59

Hello,
I while back, I heard, that CFDEM is compatible with foam extend.
So, I compiled foam extend 3.2 and it worked fine.
Then I changed the file-file and the option-file at CFDEM form OpenFoam to foam,
but every thing I get is an error.
I have read that foam extend is based on OpenFoam 1.6. Therefore I believe,
that every older version of foam extend should have caused the same problems.
I tried to google compiling CFDEM with foam extend, but I did not find anything.
Can some one help me?

Best Regards
RobertG

AttachmentSize
Plain text icon log_cfdem.txt82.32 KB
Plain text icon log_liggghts.txt107.61 KB
Plain text icon compcfdem_log.txt81.72 KB
Plain text icon log_compcfdem_of16ext.txt492.76 KB

RobertG | Wed, 11/04/2015 - 10:46

Hello,
is there someone who can help me with this?

Best Regards
RobertG

j-kerbl's picture

j-kerbl | Thu, 11/05/2015 - 10:20

Hi RobertG,

to be clear, I haven't tried this with the latest version. Have you changed the OFversion.H file?
It is located in src/lagrangian/cfdemParticle/etc/OFVersion/ .
Maybe this does the trick.

Cheers,
Josef

RobertG | Tue, 11/17/2015 - 14:07

Hi j-kerbl,
thanks for your help.

No, it does not work.
I tried it with
# define version32
and
#define version16ext
I attached the log file, for the last one.

Best regards
RobertG

j-kerbl's picture

j-kerbl | Wed, 11/18/2015 - 13:26

Hi RobertG

so this is the first error, when compiling the lagrangianCFDEM library:
subModels/forceModel/DiFeliceDrag/DiFeliceDrag.C:222:40: error: no matching function for call to ‘Foam::Field >::append(Foam::vector&)’
vValues.append(drag); //first entry must the be the force

To be clear, the next step won't be easy, you have to search for stuff in the source code and adjust the Make-files, so the compilation works. Maybe some source-code needs to be changed as well. However, I can't guarantee it will work, since I haven't done it myself.
Probably some library and header-file locations are different to the ones within vanilla OF. And the compiler is complaining a lot about functions it is missing, so you have to check if they are available, renamed, moved, etc. .

So long story short, this won't work out of the box with just a few changes. You have to modify the code.
As soon as I get updates on this issue, I will share it. Please do so as well,

Cheers
Josef

RobertG | Wed, 11/18/2015 - 14:05

Hi Josef,
I have tried it with of16ext and I got a similar error ...
(log-file attached)

Best regards
RobertG

RobertG | Thu, 11/19/2015 - 17:32

With three steps, you can compile it.

1. Insert the lines of the code
template
inline void Foam::List::append(const T& t)
{
setSize(size()+1, t);
}

to the $HOME/foam/foam-extend-3.2/src/foam/containers/Lists/List/ListI.H file
And
inline void append(const T&);
to the $HOME/OpenFOAM/OpenFOAM-2.3.x/src/OpenFOAM/containers/Lists/List/ListI.H file.

2. Change the line
pEqn.solve(mesh.solver("pFinal"));
to
pEqn.solve(mesh.solutionDict().solver("pFinal"));
at:
$HOME/CFDEM/CFDEMcoupling-PUBLIC-3.2/applications/solvers/cfdemSolverIB/cfdemSolverIB.C
$HOME/CFDEM/CFDEMcoupling-PUBLIC-3.2/applications/solvers/cfdemSolverPiso/cfdemSolverPiso.C
$HOME/CFDEM/CFDEMcoupling-PUBLIC-3.2/applications/solvers/cfdemSolverPisoScalar/cfdemSolverPisoScalar.C

3. Remove the lines
\
-I$(LIB_SRC)/fvOptions/lnInclude
and
-lfvOptions \
from
$HOME/CFDEM/CFDEMcoupling-PUBLIC-3.2/applications/solvers/cfdemSolverIB/Make/options

As soon as I have tested it, I will poste it here.

Best regards
RobertG