Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
jbwahl
@jbwahl
hi @cpivot, i finished a first implementation and validation of slip conditions is almost done but it's not part of the fluid model for now. @vincentchabannes will integrate my development in the models when validation is finished
Christophe Prud'homme
@prudhomm
@/all the registration for the fud-5 is online, please https://goo.gl/forms/drzEqRuq9bidtfXA3 registration is free but mandatory for the lunches and the dinner on thursday evening if you plan to come !
Julien Schueller
@jschueller
hi, how much ram do you need to compile feelpp ? I've got a "memory exhaused" error when compiling feedlfilters/straghtenmesh_inst_1d.cpp with gcc 7.2, 8gb ram (without desktop running), with "make -j1"
Romain Hild
@romainhild
Hi, I'm not sure about gcc, but by using clang, 8Gb should be enough
Julien Schueller
@jschueller
ok, i'll try clang instead
Christophe Prud'homme
@prudhomm
@jschueller have you solved your problem ? gcc is very memory hungry unfortunately
lotfiAb
@lotfiAb
@romainhild : I am interested in the example from your joint work presented by DIMOV Artemiy in <The 5th Feel++ User Days>: <Presentation of the use of Feel ++ in an industrial project> .
During the compilation, I have a compilation problem, make give me the following error:
lotfi@feel:~/feel/timov$ make Scanning dependencies of target feelpp_mt_essai_appel_twoappli [ 50%] Building CXX object CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o /home/lotfi/feel/timov/essai_appel_twoappli.cpp:43:4: error: use of undeclared identifier 'MyMatrixRhsUpdate' MyMatrixRhsUpdate<model_type,TEType> myfunctor(FM,te); ^ /home/lotfi/feel/timov/essai_appel_twoappli.cpp:43:22: error: unexpected type name 'model_type': expected expression MyMatrixRhsUpdate<model_type,TEType> myfunctor(FM,te); ^ /home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:18: error: use of undeclared identifier 'MyMatrixRhsUpdate' boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual, ^ /home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:36: error: unexpected type name 'model_type': expected expression boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual, ^ /home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:47: error: 'TEType' does not refer to a value boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual, ^ /home/lotfi/feel/timov/essai_appel_twoappli.cpp:29:57: note: declared here template <int OrderVelocity,int OrderPressure, typename TEType> ^ /home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:56: error: no member named 'myupdateResidual' in the global namespace boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual, ~~^ /home/lotfi/feel/timov/essai_appel_twoappli.cpp:47:16: error: use of undeclared identifier 'myfunctor' boost::ref( myfunctor ), _1, _2 ); ^ /home/lotfi/feel/timov/essai_appel_twoappli.cpp:99:1: error: no matching function for call to 'runApplicationFluid' runApplicationFluid<2,1,1>(te); // run fluid application ^~~~~~~~~~~~~~~~~~~~~~~~~~ /home/lotfi/feel/timov/essai_appel_twoappli.cpp:31:1: note: candidate template ignored: invalid explicitly-specified argument for template parameter 'TEType' runApplicationFluid(boost::shared_ptr<TEType> const& te) ^ 8 errors generated. CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/build.make:62: recipe for target 'CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o' failed make[2]: *** [CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o] Error 1 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/all' failed make[1]: *** [CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/all] Error 2 Makefile:83: recipe for target 'all' failed make: *** [all] Error 2

I use the following CMakeLists.txt
`

cmake_minimum_required(VERSION 2.8)

set(CMAKE_MODULE_PATH "/usr/share/feel/cmake/modules/")

Find_Package(Feel++)

if ( ${CMAKE_MAJOR_VERSION} EQUAL 3 AND ${CMAKE_MINOR_VERSION} GREATER 3 )

message(STATUS "[feelpp] use OLD policy CMP0064" )

cmake_policy(SET CMP0064 OLD)

endif()

if ( ${CMAKE_MAJOR_VERSION} EQUAL 3 AND ${CMAKE_MINOR_VERSION} GREATER 3 )
message(STATUS "[feelpp] use OLD policy CMP0064" )
cmake_policy(SET CMP0064 OLD)
endif()

project(mytest)
set(PROJECT_SHORTNAME "mt")

if ( ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR} )
find_package(Feel++ PATHS $ENV{FEELPP_DIR}/share/feel/cmake/modules /usr/share/feel/cmake/modules /usr/local/share/feel/cmake/modules )
if(NOT FEELPP_FOUND)
message(FATAL_ERROR "Feel++ was not found on your system. Make sure to install it and specify the FEELPP_DIR to reference the installation directory.")
endif()
endif()

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(/home/feelpp/src/feelpp/toolboxes/)

feelpp_add_application( essai_appel_twoappli SRCS essai_appel_twoappli.cpp INCLUDE_IN_ALL)
`

Here is the code
`

include <feel/feelmodels/fluid/fluidmechanics.hpp>

include <feel/feelmodels/thermoelectric/thermoelectric.hpp>

//
// Run thermoelectric application
//
namespace Feel
{
template <int OrderT>
auto
runApplicationThermoElectric()
{
const int FEELPP_DIM=3;
//const int OrderT = 2
typedef FeelModels::ThermoElectric< Simplex<FEELPP_DIM,1>,
Lagrange<OrderT, Scalar,Continuous,PointSetFekete> > model_type; // typedefinition

        boost::shared_ptr<model_type> thermoElectric( new
        model_type("thermo-electric") ); // declaration of the model
        thermoElectric->init(); // initilization
        thermoElectric->printAndSaveInfo();
        thermoElectric->solve();
        thermoElectric->exportResults();
return thermoElectric;
}

//
// Run fluid application
//
template <int OrderVelocity,int OrderPressure, typename TEType>
void
runApplicationFluid(boost::shared_ptr<TEType> const& te)
{
// definition of the model type
const int FEELPP_DIM=3;

typedef FeelModels::FluidMechanics< Simplex<FEELPP_DIM,1>,
        Lagrange<OrderVelocity, Vectorial,Continuous,PointSetFekete>,
        Lagrange<OrderPressure, Scalar,Continuous,PointSetFekete> > model_type;
        auto FM = model_type::New("fluid",false);
        FM->loadMesh( te->mesh() ); // loading mesh using the mesh from the thermoelectric application
        FM->init(); // Initialization of the fluid model

// Initialization of the functor
MyMatrixRhsUpdate<model_type,TEType> myfunctor(FM,te);
// creation of the system's matrix using our function
FM->algebraicFactory()->addFunctionResidualPreAssembly =
boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual,
boost::ref( myfunctor ), _1, _2 );
FM->printAndSaveInfo();
FM->solve();
FM->exportResults();
}
//
// MyMatrixUpdate
//
template<typename ModelType, typename TEType>
struct MyMatrixRhsUpdate
{
typedef typename ModelType::sparse_matrix_ptrtype sparse_matrix_ptrtype;
typedef typename ModelType::vector_ptrtype vector_ptrtype;
MyMatrixRhsUpdate( boost::shared_ptr<ModelType> const& fm, boost::shared_ptr<TEType> const& te)
:
M_fm(fm), M_te(te)
{
}; //functor function
// Residual update
void myupdateResidual( vector_ptrtype const& U, vector_ptrtype& R) const
{
auto const& temperature = M_fm->thermodynModel()->fieldTemperature();
// declaration of the temperature field
auto sigma = idv(M_te->electricProperties()->fieldElectricConductivity());
// declaration of the electric conductivities
auto potential = M_te->fieldElectricPotential();
// Declaration of the electric potential field
form1( _test= M_fm->thermodynModel()->spaceTemperature(), _vector=R,
_rowstart=M_fm->thermodynModel()->rowStartInVector())
+= integrate( _range=M_te->rangeMeshElements(), // elements(M_fm->mesh()),
_expr= -sigmainner(gradv(potential),gradv(potential))id(temperature) );
// update the right hand side in the heat-transfert equation
}
boost::shared_ptr<ModelType> M_fm;
boost::shared_ptr<TEType> M_te;
};
} // namespace Feel

//
//Main function
//
int main( int argc, char** argv)
{
using namespace Feel;
po::options_description SPoptions( "application fluid-te options");
SPoptions.add( fluidMechanics_options("fluid") );
SPoptions.add( feelmodels_options("thermo-electric"));
Environment env( _argc=argc, _argv=argv,
_desc=SPoptions,
_about=about(_name="SP"));
auto te = runApplicationThermoElectric<1>();
// run thermoelectric application
runApplicationFluid<2,1,1>(te); // run fluid application
return 0;
}

`

lotfiAb
@lotfiAb
Sorry I have a problem with the quote.
lotfiAb
@lotfiAb
@romainhild : I will try to send the message again.
I am interested in the example from your joint work presented by DIMOV Artemiy in <The 5th Feel++ User Days>: <Presentation of the use of Feel ++ in an industrial project> .
During the compilation, I have a compilation problem, make give me the following error:
lotfi@feel:~/feel/timov$ make
Scanning dependencies of target feelpp_mt_essai_appel_twoappli
[ 50%] Building CXX object CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:43:4: error: use of undeclared identifier 'MyMatrixRhsUpdate'
                        MyMatrixRhsUpdate<model_type,TEType> myfunctor(FM,te);
                        ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:43:22: error: unexpected type name 'model_type': expected expression
                        MyMatrixRhsUpdate<model_type,TEType> myfunctor(FM,te);
                                          ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:18: error: use of undeclared identifier 'MyMatrixRhsUpdate'
                        boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual,
                                      ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:36: error: unexpected type name 'model_type': expected expression
                        boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual,
                                                        ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:47: error: 'TEType' does not refer to a value
                        boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual,
                                                                   ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:29:57: note: declared here
template <int OrderVelocity,int OrderPressure, typename TEType>
                                                        ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:56: error: no member named 'myupdateResidual' in the global namespace
                        boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual,
                                                                          ~~^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:47:16: error: use of undeclared identifier 'myfunctor'
                        boost::ref( myfunctor ), _1, _2 );
                                    ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:99:1: error: no matching function for call to 'runApplicationFluid'
runApplicationFluid<2,1,1>(te); // run fluid application
^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:31:1: note: candidate template ignored: invalid explicitly-specified argument for template
      parameter 'TEType'
runApplicationFluid(boost::shared_ptr<TEType> const& te)
^
8 errors generated.
CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/build.make:62: recipe for target 'CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o' failed
make[2]: *** [CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/all' failed
make[1]: *** [CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
I use the following CMakeLists.txt
#cmake_minimum_required(VERSION 2.8)
#set(CMAKE_MODULE_PATH "/usr/share/feel/cmake/modules/")
#Find_Package(Feel++)



#if ( ${CMAKE_MAJOR_VERSION} EQUAL 3 AND ${CMAKE_MINOR_VERSION} GREATER 3 )
#  message(STATUS "[feelpp] use OLD policy CMP0064" )
#  cmake_policy(SET CMP0064 OLD)
#endif()

if ( ${CMAKE_MAJOR_VERSION} EQUAL 3 AND ${CMAKE_MINOR_VERSION} GREATER 3 )
  message(STATUS "[feelpp] use OLD policy CMP0064" )
  cmake_policy(SET CMP0064 OLD)
endif()



project(mytest)
set(PROJECT_SHORTNAME "mt")

if ( ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR} )
  find_package(Feel++ PATHS $ENV{FEELPP_DIR}/share/feel/cmake/modules /usr/share/feel/cmake/modules /usr/local/share/feel/cmake/modules )
  if(NOT FEELPP_FOUND)
      message(FATAL_ERROR "Feel++ was not found on your system. Make sure to install it and specify the FEELPP_DIR to reference the installation directory.")
  endif()
endif()

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})
include_directories(/home/feelpp/src/feelpp/toolboxes/)


feelpp_add_application( essai_appel_twoappli SRCS essai_appel_twoappli.cpp INCLUDE_IN_ALL)
Here is the code
#include <feel/feelmodels/fluid/fluidmechanics.hpp>
#include <feel/feelmodels/thermoelectric/thermoelectric.hpp>
//
// Run thermoelectric application
//
namespace Feel
{ 
    template <int OrderT>
    auto
    runApplicationThermoElectric()
    {
    const int FEELPP_DIM=3;
    //const int OrderT = 2
    typedef FeelModels::ThermoElectric< Simplex<FEELPP_DIM,1>,
            Lagrange<OrderT,
            Scalar,Continuous,PointSetFekete> > model_type; // typedefinition

            boost::shared_ptr<model_type> thermoElectric( new
            model_type("thermo-electric") ); // declaration of the model
            thermoElectric->init(); // initilization
            thermoElectric->printAndSaveInfo();
            thermoElectric->solve();
            thermoElectric->exportResults();
    return thermoElectric;
    }
//
// Run fluid application
//
    template <int OrderVelocity,int OrderPressure, typename TEType>
    void
    runApplicationFluid(boost::shared_ptr<TEType> const& te)
    {
// definition of the model type
    const int FEELPP_DIM=3;

    typedef FeelModels::FluidMechanics< Simplex<FEELPP_DIM,1>,
            Lagrange<OrderVelocity, Vectorial,Continuous,PointSetFekete>,
            Lagrange<OrderPressure, Scalar,Continuous,PointSetFekete> > model_type;
            auto FM = model_type::New("fluid",false);
            FM->loadMesh( te->mesh() ); // loading mesh using the mesh from the thermoelectric application
            FM->init(); // Initialization of the fluid model
// Initialization of the functor
            MyMatrixRhsUpdate<model_type,TEType> myfunctor(FM,te);
// creation of the system's matrix using our function
            FM->algebraicFactory()->addFunctionResidualPreAssembly =
            boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual,
            boost::ref( myfunctor ), _1, _2 );
            FM->printAndSaveInfo();
            FM->solve();
            FM->exportResults();
    }
//
// MyMatrixUpdate
//
    template<typename ModelType, typename TEType>
    struct MyMatrixRhsUpdate
    {
        typedef typename ModelType::sparse_matrix_ptrtype sparse_matrix_ptrtype;
        typedef typename ModelType::vector_ptrtype vector_ptrtype;
        MyMatrixRhsUpdate( boost::shared_ptr<ModelType> const& fm, boost::shared_ptr<TEType> const& te)
        :
        M_fm(fm), M_te(te)
        {
        }; //functor function
// Residual update
        void myupdateResidual( vector_ptrtype const& U, vector_ptrtype& R) const
        {
            auto const& temperature = M_fm->thermodynModel()->fieldTemperature();
    // declaration of the temperature field
            auto sigma = idv(M_te->electricProperties()->fieldElectricConductivity());
    // declaration of the electric conductivities
            auto potential = M_te->fieldElectricPotential();
    // Declaration of the electric potential field
            form1( _test= M_fm->thermodynModel()->spaceTemperature(), _vector=R,
                        _rowstart=M_fm->thermodynModel()->rowStartInVector())
            += integrate( _range=M_te->rangeMeshElements(),                // elements(M_fm->mesh()),
            _expr= -sigma*inner(gradv(potential),gradv(potential))*id(temperature) );
    // update the right hand side in the heat-transfert equation
        }
        boost::shared_ptr<ModelType> M_fm;
        boost::shared_ptr<TEType> M_te;
    };
} // namespace Feel


//
//Main function
//
int main( int argc, char** argv) 
{
    using namespace Feel;
    po::options_description SPoptions( "application fluid-te options");
    SPoptions.add( fluidMechanics_options("fluid") );
    SPoptions.add( feelmodels_options("thermo-electric"));
    Environment env( _argc=argc, _argv=argv,
    _desc=SPoptions,
    _about=about(_name="SP"));
    auto te = runApplicationThermoElectric<1>();
    // run thermoelectric application
    runApplicationFluid<2,1,1>(te); // run fluid application
    return 0;
}
Romain Hild
@romainhild
I think that you need to move your declaration of MyMatrixRhsUpdate before the function
move this part just after namespace Feel {
//
// MyMatrixUpdate
//
    template<typename ModelType, typename TEType>
    struct MyMatrixRhsUpdate
    {
        typedef typename ModelType::sparse_matrix_ptrtype sparse_matrix_ptrtype;
        typedef typename ModelType::vector_ptrtype vector_ptrtype;
        MyMatrixRhsUpdate( boost::shared_ptr<ModelType> const& fm, boost::shared_ptr<TEType> const& te)
        :
        M_fm(fm), M_te(te)
        {
        }; //functor function
// Residual update
        void myupdateResidual( vector_ptrtype const& U, vector_ptrtype& R) const
        {
            auto const& temperature = M_fm->thermodynModel()->fieldTemperature();
    // declaration of the temperature field
            auto sigma = idv(M_te->electricProperties()->fieldElectricConductivity());
    // declaration of the electric conductivities
            auto potential = M_te->fieldElectricPotential();
    // Declaration of the electric potential field
            form1( _test= M_fm->thermodynModel()->spaceTemperature(), _vector=R,
                        _rowstart=M_fm->thermodynModel()->rowStartInVector())
            += integrate( _range=M_te->rangeMeshElements(),                // elements(M_fm->mesh()),
            _expr= -sigma*inner(gradv(potential),gradv(potential))*id(temperature) );
    // update the right hand side in the heat-transfert equation
        }
        boost::shared_ptr<ModelType> M_fm;
        boost::shared_ptr<TEType> M_te;
    };
lotfiAb
@lotfiAb
Merci , mais j'ai toujours la méme erreur.
Scanning dependencies of target feelpp_mt_essai_appel_twoappli
[ 50%] Building CXX object CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:43:4: error: use of undeclared identifier 'MyMatrixRhsUpdate'
                        MyMatrixRhsUpdate<model_type,TEType> myfunctor(FM,te);
                        ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:43:22: error: unexpected type name 'model_type': expected expression
                        MyMatrixRhsUpdate<model_type,TEType> myfunctor(FM,te);
                                          ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:18: error: use of undeclared identifier 'MyMatrixRhsUpdate'
                        boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual,
                                      ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:36: error: unexpected type name 'model_type': expected expression
                        boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual,
                                                        ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:47: error: 'TEType' does not refer to a value
                        boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual,
                                                                   ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:29:57: note: declared here
template <int OrderVelocity,int OrderPressure, typename TEType>
                                                        ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:46:56: error: no member named 'myupdateResidual' in the global namespace
                        boost::bind( &MyMatrixRhsUpdate<model_type,TEType>::myupdateResidual,
                                                                          ~~^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:47:16: error: use of undeclared identifier 'myfunctor'
                        boost::ref( myfunctor ), _1, _2 );
                                    ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:76:10: error: use of undeclared identifier '_test'; did you mean 'Feel::_test'?
                form1( _test= M_fm->thermodynModel()->spaceTemperature(), _vector=R,
                       ^~~~~
                       Feel::_test
/usr/local/include/feel/feelcore/parameter.hpp:95:5: note: 'Feel::_test' declared here
    BOOST_PARAMETER_NAME( test )
    ^
/usr/include/boost/parameter/name.hpp:129:9: note: expanded from macro 'BOOST_PARAMETER_NAME'
      , BOOST_PARAMETER_SIMPLE_NAME                                 \
        ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:76:61: error: use of undeclared identifier '_vector'; did you mean 'Feel::_vector'?
                form1( _test= M_fm->thermodynModel()->spaceTemperature(), _vector=R,
                                                                          ^~~~~~~
                                                                          Feel::_vector
/usr/local/include/feel/feelcore/parameter.hpp:97:5: note: 'Feel::_vector' declared here
    BOOST_PARAMETER_NAME( vector )
    ^
/usr/include/boost/parameter/name.hpp:129:9: note: expanded from macro 'BOOST_PARAMETER_NAME'
      , BOOST_PARAMETER_SIMPLE_NAME                                 \
        ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:77:7: error: use of undeclared identifier '_rowstart'; did you mean 'Feel::_rowstart'?
                                                _rowstart=M_fm->thermodynModel()->rowStartInVector())
                                                ^~~~~~~~~
                                                Feel::_rowstart
/usr/local/include/feel/feelcore/parameter.hpp:107:5: note: 'Feel::_rowstart' declared here
    BOOST_PARAMETER_NAME( rowstart )
    ^
/usr/include/boost/parameter/name.hpp:129:9: note: expanded from macro 'BOOST_PARAMETER_NAME'
      , BOOST_PARAMETER_SIMPLE_NAME                                 \
        ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:78:17: error: use of undeclared identifier '_range'; did you mean 'Feel::_range'?
                += integrate( _range=M_te->rangeMeshElements(),                         // elements(M_fm->mesh()),
                              ^~~~~~
                              Feel::_range
/usr/local/include/feel/feelcore/parameter.hpp:234:5: note: 'Feel::_range' declared here
    BOOST_PARAMETER_NAME( range )
    ^
/usr/include/boost/parameter/name.hpp:129:9: note: expanded from macro 'BOOST_PARAMETER_NAME'
      , BOOST_PARAMETER_SIMPLE_NAME                                 \
        ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:79:4: error: use of undeclared identifier '_expr'; did you mean 'Feel::_expr'?
                        _expr= -sigma*inner(gradv(potential),gradv(potential))*id(temperature) );
                        ^~~~~
                        Feel::_expr
/usr/local/include/feel/feelcore/parameter.hpp:185:5: note: 'Feel::_expr' declared here
    BOOST_PARAMETER_NAME( expr )
    ^
/usr/include/boost/parameter/name.hpp:129:9: note: expanded from macro 'BOOST_PARAMETER_NAME'
      , BOOST_PARAMETER_SIMPLE_NAME                                 \
        ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:84:2: error: expected ';' after struct
}
 ^
 ;
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:99:1: error: no matching function for call to 'runApplicationFluid'
runApplicationFluid<2,1,1>(te); // run fluid application
^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:31:1: note: candidate template ignored: invalid explicitly-specified argument for template
      parameter 'TEType'
runApplicationFluid(boost::shared_ptr<TEType> const& te)
^
14 errors generated.
CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/build.make:62: recipe for target 'CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o' failed
make[2]: *** [CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/all' failed
make[1]: *** [CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Romain Hild
@romainhild
are you sure you use a c++ compiler ? at the end of the cmake, you should have the compilers used, can you make sure that it is clang++ ?
lotfiAb
@lotfiAb
@romainhild The block that you marked, I transferred it outside of the namespace Feel { ...}.I use the following cmake command:
cmake -DCMAKE_CXX_COMPILER=/usr/bin/clang++-3.9 -DCMAKE_C_COMPILER=/usr/bin/clang-3.9 .
Romain Hild
@romainhild
So try the following:
  • in the cmake, link the libraries for thermoelectric and fluidmechanics:
    feelpp_add_application( essai_appel_twoappli SRCS essai_appel_twoappli.cpp
    LINK_LIBRARIES
    feelpp_model_thermoelectric
    feelpp_model_fluidmec3dP2P1G1
    )
  • in the cpp file, have something like:
namespace Feel
{
template<typename ModelType, typename TEType>
struct MyMatrixRhsUpdate
{
...
}
template <int OrderT>
auto
runApplicationThermoElectric()
{
...
}
template <int OrderVelocity,int OrderPressure, typename TEType>
void
runApplicationFluid(boost::shared_ptr<TEType> const& te)
{
...
}
} //namespace Feel

int main(){...}
  • in the main change the templates for runApplicationFluid: runApplicationFluid<2,1>(te);
Romain Hild
@romainhild
@lotfiAb if you want to expand on this application, I would suggest to create a class containing the thermoelectric and fluidmechanics models.
lotfiAb
@lotfiAb
Hi,with the new modifications, I have the error message:
lotfi@feel:~/feel/timov$ make
[ 50%] Building CXX object CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:77:28: error: no member named 'addFunctionResidualPreAssembly' in 'Feel::FeelModels::ModelAlgebraicFactory'
                        FM->algebraicFactory()->addFunctionResidualPreAssembly =
                        ~~~~~~~~~~~~~~~~~~~~~~  ^
/home/lotfi/feel/timov/essai_appel_twoappli.cpp:100:1: note: in instantiation of function template specialization 'Feel::runApplicationFluid<2, 1,
      Feel::FeelModels::ThermoElectric<Feel::Simplex<3, 1, 3>, Feel::Lagrange<1, Scalar, Feel::Continuous, PointSetFekete, 0> > >' requested here
runApplicationFluid<2,1>(te); // run fluid application
^
1 error generated.
CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/build.make:62: recipe for target 'CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o' failed
make[2]: *** [CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/essai_appel_twoappli.o] Error 1
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/all' failed
make[1]: *** [CMakeFiles/feelpp_mt_essai_appel_twoappli.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Romain Hild
@romainhild
that's weird, it should exists.
can you look in the sources of feelpp, in the file toolboxes/feel/feelmodels/modelalg/modelalgebraicfactory.hpp that there is a member called addFunctionResidualPreAssembly ?
lotfiAb
@lotfiAb
in the file "modelalgebraicfactory.hpp", effectively "addFunctionResidualPreAssembly" is not mentioned.
Romain Hild
@romainhild
I think then that your sources are not up to date. Please checkout the develop branch and recompile everything:
git pull
lotfiAb
@lotfiAb

@prudhomm :
With the last docker image of 'feelpp-toolboxes', I have a compilation problem:

user@02e51cefe0ad:/feel/timov$ cmake -DCMAKE_CXX_COMPILER=/usr/bin/clang++-3.9 -DCMAKE_C_COMPILER=/usr/bin/clang-3.9 .
-- The C compiler identification is Clang 3.9.1
-- The CXX compiler identification is Clang 3.9.1
-- Check for working C compiler: /usr/bin/clang-3.9
-- Check for working C compiler: /usr/bin/clang-3.9 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/clang++-3.9
-- Check for working CXX compiler: /usr/bin/clang++-3.9 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Warning at CMakeLists.txt:19 (find_package):
  Could not find a package configuration file provided by "Feel++" with any
  of the following names:

    Feel++Config.cmake
    feel++-config.cmake

  Add the installation prefix of "Feel++" to CMAKE_PREFIX_PATH or set
  "Feel++_DIR" to a directory containing one of the above files.  If "Feel++"
  provides a separate development package or SDK, be sure it has been
  installed.
CMake Error at CMakeLists.txt:21 (message):
  Feel++ was not found on your system.  Make sure to install it and specify
  the FEELPP_DIR to reference the installation directory.
-- Configuring incomplete, errors occurred!
See also "/feel/timov/CMakeFiles/CMakeOutput.log".
user@02e51cefe0ad:/feel/timov$

with the previous version I did not have these problems.
How to configure feel ++ under docker?

Christophe Prud'homme
@prudhomm
@lotfiAb thanks for the report, I will look into that asap. It is strsnge though, it is like Feel++ was not detected. what gives ls /usr/local/include/feelpp and ls /usr/local/lib ?
lotfiAb
@lotfiAb
@prudhomm
user@feelpp:/usr/local/share$ ls /usr/local/include/feelpp
bsoncxx  feel    ginac  gmsh   metis     nlopt     toolboxes
eigen    gflags  glog   ipopt  mongocxx  pybind11
user@feelpp:/usr/local/share$ ls /usr/local/lib
R                                       libfeelpp_model_fsi_2dP3P3G1_2dP3G1.so
cmake                                   libfeelpp_model_fsi_3dP1P1G1_3dP1G1.so
libOT.so                                libfeelpp_model_fsi_3dP2P1G1_3dP1G1.so
libOT.so.0                              libfeelpp_model_fsi_3dP2P1G2_3dP2G2.so
libOT.so.0.0.0                          libfeelpp_model_fsi_3dP2P2G1_3dP2G1.so
libfeelpp.so                            libfeelpp_model_fsi_3dP3P2G1_3dP1G1.so
libfeelpp.so.1                          libfeelpp_model_fsi_3dP3P2G2_3dP2G2.so
libfeelpp.so.1.0.0                      libfeelpp_model_fsi_3dP3P3G1_3dP3G1.so
libfeelpp_bsoncxx.a                     libfeelpp_model_solidmec2dP1G1.so
libfeelpp_bsoncxx.so                    libfeelpp_model_solidmec2dP2G1.so
libfeelpp_bsoncxx.so.3.1.1              libfeelpp_model_solidmec2dP2G2.so
libfeelpp_bsoncxx.so._noabi             libfeelpp_model_solidmec2dP3G1.so
libfeelpp_gflags.so                     libfeelpp_model_solidmec3dP1G1.so
libfeelpp_gflags.so.2.2                 libfeelpp_model_solidmec3dP2G1.so
libfeelpp_gflags.so.2.2.0               libfeelpp_model_solidmec3dP2G2.so
libfeelpp_gflags_nothreads.so           libfeelpp_model_solidmec3dP3G1.so
libfeelpp_gflags_nothreads.so.2.2       libfeelpp_model_solidmechanics.so
libfeelpp_gflags_nothreads.so.2.2.0     libfeelpp_model_thermodyn2dP1G1.so
libfeelpp_ginac.so                      libfeelpp_model_thermodyn2dP2G1.so
libfeelpp_ginac.so.6                    libfeelpp_model_thermodyn2dP2G2.so
libfeelpp_ginac.so.6.0.1                libfeelpp_model_thermodyn3dP1G1.so
libfeelpp_glog.so                       libfeelpp_model_thermodyn3dP2G1.so
libfeelpp_glog.so.0                     libfeelpp_model_thermodyn3dP2G2.so
libfeelpp_glog.so.0.3.4                 libfeelpp_model_thermodynamics.so
libfeelpp_ipopt.so                      libfeelpp_model_thermoelectric.so
libfeelpp_ipoptfort.so                  libfeelpp_model_thermoelectric2dP1G1.so
libfeelpp_metis.so                      libfeelpp_model_thermoelectric2dP2G1.so
libfeelpp_model_fluidmec2dP1P1G1.so     libfeelpp_model_thermoelectric2dP2G2.so
libfeelpp_model_fluidmec2dP2P1G1.so     libfeelpp_model_thermoelectric3dP1G1.so
libfeelpp_model_fluidmec2dP2P1G2.so     libfeelpp_model_thermoelectric3dP2G1.so
libfeelpp_model_fluidmec2dP2P2G1.so     libfeelpp_model_thermoelectric3dP2G2.so
libfeelpp_model_fluidmec2dP3P2G1.so     libfeelpp_modelalg.so
libfeelpp_model_fluidmec2dP3P2G2.so     libfeelpp_modelcore.so
libfeelpp_model_fluidmec2dP3P3G1.so     libfeelpp_modelmesh.so
libfeelpp_model_fluidmec3dP1P1G1.so     libfeelpp_modelmeshale.so
libfeelpp_model_fluidmec3dP2P1G1.so     libfeelpp_mongocxx.a
libfeelpp_model_fluidmec3dP2P1G2.so     libfeelpp_mongocxx.so
libfeelpp_model_fluidmec3dP2P2G1.so     libfeelpp_mongocxx.so.3.1.1
libfeelpp_model_fluidmec3dP3P2G1.so     libfeelpp_mongocxx.so._noabi
libfeelpp_model_fluidmec3dP3P2G2.so     libfeelpp_nlopt.so
libfeelpp_model_fluidmec3dP3P3G1.so     libfeelpp_nlopt.so.0
libfeelpp_model_fluidmechanics.so       libfeelpp_nlopt.so.0.9.0
libfeelpp_model_fsi.so                  paraview-5.4
libfeelpp_model_fsi_2dP1P1G1_2dP1G1.so  pkgconfig
libfeelpp_model_fsi_2dP2P1G1_2dP1G1.so  python2.7
libfeelpp_model_fsi_2dP2P2G1_2dP2G1.so  python3
libfeelpp_model_fsi_2dP3P2G1_2dP1G1.so  python3.5
libfeelpp_model_fsi_2dP3P2G2_2dP2G2.so
user@feelpp:/usr/local/share$
Yuxiang Wang
@yw5aj
Hi all, I have a quick question - does feelppsupport the explicit method for solving FE problems?
I.e. a forward integration scheme such that the solution can be calculated without solving a system of equations, like ABAQUS/Explicit or LS-DYNA.
And for solid mechanics problems, by the way.
Jonathan Teixeira
@jontateixeira

Hi everyone! @\all I'm a total newbie on feelpp world and I would like use feelpp in my phd project (in chemical engineering )... So I'm trying compiling from source following the steps-by-step described on [Install from Sources] (http://docs.feelpp.org/user/0.106/install/sources/), unfortunately unsuccess... I installed the follow programs on ubuntu 16.04 LTS:

In the configuration step, I'm using cmake, as follow:

cmake ../feel++ -DCMAKE_CXX_COMPILER=/usr/bin/clang++-4.0 \
-DCMAKE_C_COMPILER=/usr/bin/clang-4.0 \
-DFEELPP_ENABLE_DOCUMENTATION=ON /
-DBOOSTROOT=${BOOST_DIR} \
-DCMAKE_BUILD_TYPE=RelWithDebInfo\ 
-DGFLAGS_INTTYPES_FORMAT=C99

and the output is...

-- [feelpp] contrib/nlopt : /home/john/workspace/studies/FEEL/feel++/feelpp/contrib/nlopt
-- [feelpp] contrib/nlopt: submodule hold!`
-- NLopt version 2.5.0
-- Looking for getopt.h
-- Looking for getopt.h - found
-- Looking for time.h
-- Looking for time.h - found
-- Looking for getpid
-- Looking for getpid - not found
-- Looking for syscall
-- Looking for syscall - not found
-- Looking for isinf
-- Looking for isinf - not found
-- Looking for isnan
-- Looking for isnan - not found
-- Looking for gettimeofday
-- Looking for gettimeofday - not found
-- Looking for qsort_r
-- Looking for qsort_r - not found
-- Looking for time
-- Looking for time - not found
-- Looking for copysign
-- Looking for copysign - not found
-- Check size of uint32_t
-- Check size of uint32_t - failed
-- Check size of unsigned int
-- Check size of unsigned int - failed
-- Check size of unsigned long
-- Check size of unsigned long - failed
-- Looking for sqrt in m
-- Looking for sqrt in m - not found
-- Looking for fpclassify
-- Looking for fpclassify - TRUE
-- Performing Test HAVE_THREAD_LOCAL_STORAGE
-- Performing Test HAVE_THREAD_LOCAL_STORAGE - Failed
-- Performing Test HAVE_THREAD_LOCAL_STORAGE
-- Performing Test HAVE_THREAD_LOCAL_STORAGE - Failed
-- Looking for __cplusplus
-- Looking for __cplusplus - not found
CMake Error at feelpp/contrib/nlopt/CMakeLists.txt:167 (message):
  The compiler doesn't support CXX.
-- Configuring incomplete, errors occurred!

please /\ ... any idea?

Romain Hild
@romainhild
@jontateixeira Hi, if you don't need NLOPT you can disable it with the FEELPP_ENABLE_NLOPT=OFF
Jonathan Teixeira
@jontateixeira

Tks @romainhild the configuration step works!... I done some tests and seen that when configure using gcc compiler the process is clean... may be some libstdc++ or libc++ is unmet or conflits with my clang version... anyway I changed of vm and works... however when compilling (make command) I met this error:

[ 27%] Building CXX object feelpp/feel/CMakeFiles/feelpp.dir/feelcore/hdf5.cpp.o
/home/aluno/john_workspace/src/feelpp/feelpp/feelpp/feel/feelcore/hdf5.cpp:73:5: error: use of undeclared identifier
      'H5Pset_fapl_mpio'; did you mean 'H5Pset_fapl_core'?
    H5Pset_fapl_mpio (plistId, mpiComm, info);
    ^~~~~~~~~~~~~~~~
    H5Pset_fapl_core
/usr/include/hdf5/serial/H5FDcore.h:34:15: note: 'H5Pset_fapl_core' declared here
H5_DLL herr_t H5Pset_fapl_core(hid_t fapl_id, size_t increment,
              ^
/home/aluno/john_workspace/src/feelpp/feelpp/feelpp/feel/feelcore/hdf5.cpp:73:32: error: cannot initialize a parameter of type
      'size_t' (aka 'unsigned long') with an lvalue of type 'MPI_Comm' (aka 'ompi_communicator_t *')
    H5Pset_fapl_mpio (plistId, mpiComm, info);
                               ^~~~~~~
/usr/include/hdf5/serial/H5FDcore.h:34:54: note: passing argument to parameter 'increment' here
H5_DLL herr_t H5Pset_fapl_core(hid_t fapl_id, size_t increment,
                                                     ^
/home/aluno/john_workspace/src/feelpp/feelpp/feelpp/feel/feelcore/hdf5.cpp:171:5: error: use of undeclared identifier
      'H5Pset_dxpl_mpio'
    H5Pset_dxpl_mpio (currentTable.plist, H5FD_MPIO_COLLECTIVE);
    ^
/home/aluno/john_workspace/src/feelpp/feelpp/feelpp/feel/feelcore/hdf5.cpp:192:5: error: use of undeclared identifier
      'H5Pset_dxpl_mpio'
    H5Pset_dxpl_mpio (currentTable.plist, H5FD_MPIO_INDEPENDENT);
    ^
/home/aluno/john_workspace/src/feelpp/feelpp/feelpp/feel/feelcore/hdf5.cpp:208:5: error: use of undeclared identifier
      'H5Pset_dxpl_mpio'
    H5Pset_dxpl_mpio (currentTable.plist, H5FD_MPIO_COLLECTIVE);
    ^
5 errors generated.
feelpp/feel/CMakeFiles/feelpp.dir/build.make:86: recipe for target 'feelpp/feel/CMakeFiles/feelpp.dir/feelcore/hdf5.cpp.o' failed
make[2]: *** [feelpp/feel/CMakeFiles/feelpp.dir/feelcore/hdf5.cpp.o] Error 1
CMakeFiles/Makefile2:2649: recipe for target 'feelpp/feel/CMakeFiles/feelpp.dir/all' failed
make[1]: *** [feelpp/feel/CMakeFiles/feelpp.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

maybe hdf5 incompatibility as pointed feelpp/feelpp#1140 ?

Romain Hild
@romainhild
I don't know, maybe. Did you check your environment against the list here http://docs.feelpp.org/user/0.106/install/prerequisites-dev/ ?
also if you just want to test feelpp, an alternative is to use a container such as docker, see here: http://docs.feelpp.org/user/0.106/install/containers/
and we moved to slack, you'll get more answers to your questions if you post there. Here is the link: https://join.slack.com/t/feelpp/shared_invite/enQtMjE0MTcyNDIwNzU2LTk5ODA3OTM4ZGFkODk0NDI2ZDgwZjc1YjY1NjgzYWNkYTU5ODc4OGVlMGRmNzk0ODhhMWU5NDA3NDg5MTUzM2I
Jonathan Teixeira
@jontateixeira

Yup (about prerequisites environment... i followed th steps in here and in this), i'm using ubuntu 16.04 lts with (outs from cmake):
-- [feelpp] Compiler version : Clang 6.0.0
-- [feelpp] MPI IO detected and enabled. (openmpi-bin (1.10.2-8ubuntu1))
-- HDF5_VERSION=1.8.16 (1.8.16+docs-4ubuntu1.1 amd64)
-- Boost version: 1.63.0 (based on http://docs.feelpp.org/user/0.106/install/compiling-external-projects/)
-- cmake version 3.5.1
-- [feelpp] Found python version 3.5
-- Petsc Dir 1: /usr/lib/petsc (libpetsc3.6.2-dev::3.6.2.dfsg1-3ubuntu1)
-- SLEPc found: /usr/lib/slepc (libslepc3.6.1-dev::3.6.1.dfsg1-2build2)
-- gmsh (2.10.1)

The alternative using docker isn't suitable for me because I will couple the feelpp with some geochemical module (PhreeqcRM, GEMS3K or in-house code) and implement a iterative multiscale (i hope)

Romain Hild
@romainhild
I think it is because you don't have a parallel version of HDF5.
Jonathan Teixeira
@jontateixeira
I thought this, but the weird is... wouldn't be libhdf5-openmpi-dev the hdf5 parallel version? I'm searching about that... once again tks @romainhild !
Romain Hild
@romainhild
Maybe you have the serial and the parallel version installed and cmake found the serial one.
this line /usr/include/hdf5/serial/H5FDcore.h is pointing to that. Do you have a openmpi folder in /usr/include/hdf5 ?
Jonathan Teixeira
@jontateixeira

Hi @romainhild, yes I have in /usr/include/hdf5 both folder a serial and openmpi... So I meet the following issues: the hdf5 serial version was installed due the dependencies of libvtk6-dev -> libgdal-dev -> libdhf5-dev and other libs that have similar dependencies... I done many combinations of installation procedures since the use of update-alternatives in libhdf5 until to set the variable -DHDF5_DIR and -DHDF5_C_INCLUDE_DIR, but the only alternative that worked was removing libhdf5-dev and consequently libvtk6-dev (I hope this does not have problems), I guess that this occurs because the include path has /usr/include/ before -DHDF5_C_INCLUDE_DIR, I don't know... may be other reason... anyway I done that and it passed the compiling step... however when linking with boost library I get the follow error message...

Scanning dependencies of target feelpp_remotedata
[ 37%] Building CXX object feelpp/tools/remotedata/CMakeFiles/feelpp_remotedata.dir/remotedata.cpp.o
[ 37%] Linking CXX executable feelpp_remotedata
../../feel/libfeelpp.so.1.0.0: undefined reference to `boost::re_detail_106700::verify_options(unsigned int, boost::regex_constants::_match_flags)'
../../feel/libfeelpp.so.1.0.0: undefined reference to `boost::re_detail_106700::cpp_regex_traits_implementation<char>::transform_primary[abi:cxx11](char const*, char const*) const'
../../feel/libfeelpp.so.1.0.0: undefined reference to `boost::mpi::detail::sizes2offsets(std::vector<int, std::allocator<int> > const&, std::vector<int, std::allocator<int> >&)'
../../feel/libfeelpp.so.1.0.0: undefined reference to `boost::re_detail_106700::raise_runtime_error(std::runtime_error const&)'
../../feel/libfeelpp.so.1.0.0: undefined reference to `boost::re_detail_106700::get_default_error_string(boost::regex_constants::error_type)'
../../feel/libfeelpp.so.1.0.0: undefined reference to `boost::re_detail_106700::cpp_regex_traits_implementation<char>::transform[abi:cxx11](char const*, char const*) const'
../../feel/libfeelpp.so.1.0.0: undefined reference to `boost::re_detail_106700::get_mem_block()'
../../feel/libfeelpp.so.1.0.0: undefined reference to `boost::re_detail_106700::put_mem_block(void*)'
../../feel/libfeelpp.so.1.0.0: undefined reference to `boost::re_detail_106700::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::construct_init(boost::basic_regex<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::_match_flags)'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
feelpp/tools/remotedata/CMakeFiles/feelpp_remotedata.dir/build.make:231: recipe for target 'feelpp/tools/remotedata/feelpp_remotedata' failed
make[2]: *** [feelpp/tools/remotedata/feelpp_remotedata] Error 1
CMakeFiles/Makefile2:3023: recipe for target 'feelpp/tools/remotedata/CMakeFiles/feelpp_remotedata.dir/all' failed
make[1]: *** [feelpp/tools/remotedata/CMakeFiles/feelpp_remotedata.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

I will migrate to slack to continue this discuss ok?

deepgrace
@deepgrace
The Art of Template MetaProgramming in Modern C++
https://github.com/deepgrace/monster