← Back to team overview

yade-users team mailing list archive

[Question #672510]: compilation failure for TwoPhaseFlowEngine.cpp, missing header?

 

New question #672510 on Yade:
https://answers.launchpad.net/yade/+question/672510

I'm running into the following compilation failure with Yade 2018.02b when compiling with both g++ 6.4.0 and the Intel C++ compiler 2018 update 1:


In file included from /tmp/trunk-2018.02b/pkg/pfv/TwoPhaseFlowEngine.hpp:18:0,
                 from /tmp/trunk-2018.02b/pkg/pfv/TwoPhaseFlowEngine.cpp:16:
/tmp/easybuild_obj/pkg/pfv/FlowEngine_TwoPhaseFlowEngineT.hpp: At global scope:
/tmp/easybuild_obj/pkg/pfv/FlowEngine_TwoPhaseFlowEngineT.hpp:44:152: error: ‘FlowBoundingSphere’ in namespace ‘CGT’ does not name a template type
 template<class _CellInfo, class _VertexInfo, class _Tesselation=CGT::_Tesselation<CGT::TriangulationTypes<_VertexInfo,_CellInfo> >, class solverT=DEFAULTSOLVER >
                                                                                                                                                        ^~~~~~~~~~
/tmp/easybuild_obj/pkg/pfv/FlowEngine_TwoPhaseFlowEngineT.hpp:44:170: error: expected ‘>’ before ‘<’ token
 template<class _CellInfo, class _VertexInfo, class _Tesselation=CGT::_Tesselation<CGT::TriangulationTypes<_VertexInfo,_CellInfo> >, class solverT=DEFAULTSOLVER >
                                                                                                                                                                          ^

/tmp/trunk-2018.02b/pkg/pfv/TwoPhaseFlowEngine.hpp:232:15: error: ‘solver’ was not declared in this scope
   int label = solver->T[solver->currentTes].cellHandles[cellId]->info().label;
               ^~~~~~
/tmp/trunk-2018.02b/pkg/pfv/TwoPhaseFlowEngine.hpp: In member function ‘boost::python::list TwoPhaseFlowEngine::getPotentialPendularSpheresPair()’:
/tmp/trunk-2018.02b/pkg/pfv/TwoPhaseFlowEngine.hpp:244:4: error: ‘RTriangulation’ was not declared in this scope
    RTriangulation& Tri = solver->T[solver->currentTes].Triangulation();
    ^~~~~~~~~~~~~~
/tmp/trunk-2018.02b/pkg/pfv/TwoPhaseFlowEngine.hpp:244:20: error: ‘Tri’ was not declared in this scope
    RTriangulation& Tri = solver->T[solver->currentTes].Triangulation();
                    ^~~
...


Does this ring any bells for anyone?

My C++ isn't that good, but after looking around for similar errors it seems like this could be due to a missing `include` (although I don't understand how this could not be known already).

However,  the header files where `DEFAULTSOLVER` is defined as `CGT::FlowBoundingSphere<_Tesselation>` (i.e. `pkg/pfv/FlowEngine.hpp`) and where the `FlowBoundingSphere` class in the `CGT` namespace is defined (i.e. `lib/triangulation/FlowBoundingSphere.hpp` are both included in `/pkg/pfv/FlowEngine_TwoPhaseFlowEngineT.hpp`, so I don't understand what the problem is...

I suspect the first problem w.r.t. `FlowBoundingSphere` is the real problem, while the others are potentially caused by the perceived syntax error?

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.