Hello CFDEMers,
I have made an attempt to create a new solver based on cfdemSolverPiso. The idea is to include a simple convection diffusion equation of a scalar "W" in this case. The equation added to the new solver, called cfdemSolverPisoMT, looks as follows:
turbulence->correct();
fvScalarMatrix WEqn
(
fvm::ddt(W)
+ fvm::div(phi, W)
- fvm::laplacian(Di, W)
);
WEqn.solve();
runTime.write();
My strategy to rewrite the solver was as follows:
- add W eqn to cfdemSolverPisoMT.C;
- Add W to createFields.H as volScalarField (similar to "p");
- Add lines which enable reading of transportProperties file (similar as in e.g. icoFoam solver);
- add Di to createFields.H file, as dimensionedScalar Di, so it will be looked up in transportProperties file;
- in the Make folder, changed the solver name and EXE path in "files";
- removed the .dep file and linux64GccDPOpt folder before wmake-ing;
- entered 'wmake' while in the cfdemSolverPisoMT folder.
This results in the following error message:
******************************************************************************************************************************
SOURCE=cfdemSolverPisoMT.C ; g++ -m64 -Dlinux64 -DWM_DP -Wall -Wextra -Wno-unused-parameter -Wold-style-cast -Wnon-virtual-dtor -O3 -DNoRepository -ftemplate-depth-100 -I/home/ramon/OpenFOAM/OpenFOAM-2.2.1/src/turbulenceModels/incompressible/turbulenceModel -I/home/ramon/OpenFOAM/OpenFOAM-2.2.1/src/transportModels -I/home/ramon/OpenFOAM/OpenFOAM-2.2.1/src/transportModels/incompressible/singlePhaseTransportModel -I/home/ramon/OpenFOAM/OpenFOAM-2.2.1/src/finiteVolume/lnInclude -I/home/ramon/CFDEM/CFDEMcoupling-PUBLIC-2.6.0/src/lagrangian/cfdemParticle/lnInclude -I/home/ramon/CFDEM/CFDEMcoupling-PUBLIC-2.6.0/src/lagrangian/cfdemParticle/cfdTools -IlnInclude -I. -I/home/ramon/OpenFOAM/OpenFOAM-2.2.1/src/OpenFOAM/lnInclude -I/home/ramon/OpenFOAM/OpenFOAM-2.2.1/src/OSspecific/POSIX/lnInclude -fPIC -c $SOURCE -o Make/linux64GccDPOpt/cfdemSolverPisoMT.o
In file included from /home/ramon/CFDEM/CFDEMcoupling-PUBLIC-2.6.0/src/lagrangian/cfdemParticle/lnInclude/cfdemCloud.H:46:0,
from cfdemSolverPisoMT.C:41:
/home/ramon/CFDEM/CFDEMcoupling-PUBLIC-2.6.0/src/lagrangian/cfdemParticle/lnInclude/OFversion.H:1:1: error: ‘define’ does not name a type
In file included from /usr/include/c++/4.7/fstream:921:0,
from /home/ramon/OpenFOAM/OpenFOAM-2.2.1/src/OpenFOAM/lnInclude/IFstream.H:42,
from /home/ramon/CFDEM/CFDEMcoupling-PUBLIC-2.6.0/src/lagrangian/cfdemParticle/lnInclude/cfdemCloud.H:49,
from cfdemSolverPisoMT.C:41:
/usr/include/c++/4.7/bits/fstream.tcc: In member function ‘virtual std::basic_filebuf<_CharT, _Traits>::int_type std::basic_filebuf<_CharT, _Traits>::underflow()’:
/usr/include/c++/4.7/bits/fstream.tcc:234:4: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:234:25: error: expected ‘;’ before ‘__r’
/usr/include/c++/4.7/bits/fstream.tcc:306:7: error: ‘__r’ was not declared in this scope
/usr/include/c++/4.7/bits/fstream.tcc:310:9: error: ‘__r’ was not declared in this scope
/usr/include/c++/4.7/bits/fstream.tcc:310:16: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:325:9: error: ‘__r’ was not declared in this scope
/usr/include/c++/4.7/bits/fstream.tcc:325:16: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:348:12: error: ‘__r’ was not declared in this scope
/usr/include/c++/4.7/bits/fstream.tcc:348:19: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:352:13: error: ‘__r’ was not declared in this scope
/usr/include/c++/4.7/bits/fstream.tcc:352:20: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc: In member function ‘bool std::basic_filebuf<_CharT, _Traits>::_M_convert_to_external(_CharT*, std::streamsize)’:
/usr/include/c++/4.7/bits/fstream.tcc:507:4: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:507:25: error: expected ‘;’ before ‘__r’
/usr/include/c++/4.7/bits/fstream.tcc:508:4: error: ‘__r’ was not declared in this scope
/usr/include/c++/4.7/bits/fstream.tcc:511:15: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:511:42: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:513:20: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:527:15: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:534:19: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc: In member function ‘bool std::basic_filebuf<_CharT, _Traits>::_M_terminate_output()’:
/usr/include/c++/4.7/bits/fstream.tcc:854:4: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:854:25: error: expected ‘;’ before ‘__r’
/usr/include/c++/4.7/bits/fstream.tcc:860:8: error: ‘__r’ was not declared in this scope
/usr/include/c++/4.7/bits/fstream.tcc:862:19: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:864:24: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:865:17: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
/usr/include/c++/4.7/bits/fstream.tcc:876:11: error: ‘__r’ was not declared in this scope
/usr/include/c++/4.7/bits/fstream.tcc:876:18: error: incomplete type ‘std::codecvt_base’ used in nested name specifier
In file included from /home/ramon/CFDEM/CFDEMcoupling-PUBLIC-2.6.0/src/lagrangian/cfdemParticle/lnInclude/cfdemCloud.H:359:0,
from cfdemSolverPisoMT.C:41:
/home/ramon/CFDEM/CFDEMcoupling-PUBLIC-2.6.0/src/lagrangian/cfdemParticle/lnInclude/cfdemCloudI.H: At global scope:
/home/ramon/CFDEM/CFDEMcoupling-PUBLIC-2.6.0/src/lagrangian/cfdemParticle/lnInclude/cfdemCloudI.H:229:1: error: expected unqualified-id before ‘{’ token
In file included from cfdemSolverPisoMT.C:70:0:
/home/ramon/OpenFOAM/OpenFOAM-2.2.1/src/finiteVolume/lnInclude/readPISOControls.H: In function ‘int main(int, char**)’:
/home/ramon/OpenFOAM/OpenFOAM-2.2.1/src/finiteVolume/lnInclude/readPISOControls.H:3:15: warning: unused variable ‘nOuterCorr’ [-Wunused-variable]
/home/ramon/OpenFOAM/OpenFOAM-2.2.1/src/finiteVolume/lnInclude/readPISOControls.H:15:16: warning: unused variable ‘transonic’ [-Wunused-variable]
make: *** [Make/linux64GccDPOpt/cfdemSolverPisoMT.o] Error 1
******************************************************************************************************************************
The error(s) seem to be coming from files in CFDEMCoupling folders. For the record, I did not touch these files as far as I am aware.
Hopefully someone can help me see my mistake(s) so I can fix the problem and report the solution here.
Kind regards,
Ramon
cgoniva | Wed, 04/02/2014 - 09:49
Hi,
Hi,
you might want to use cfdemSolverPisoScalar as a basis (doing quite what you want to do)
Cheers,
Chris