feelpp / feelpp

:gem: Feel++: Finite Element Embedded Language and Library in C++
https://docs.feelpp.org
GNU Lesser General Public License v3.0
302 stars 66 forks source link

Check fail in DataMap constructor for sequential build in // #1106

Closed jbwahl closed 6 years ago

jbwahl commented 6 years ago

In the context of DEIM i want to assemble some operators on a sequential mesh/function space but the application is still running in // It works well until i try to use the form2 += on(...) function. It fails at a check :

datamap.cpp:75] Check failed: false Not imlemented!

According to the backtrace this is called in Vector<> constructor, from the method zeroRow in matrixPetsc.

After some investigations i suppose that the error comes because the proper worldcom was not given to the DataMap constructor which is supposed to be built in sequential but has the Environment parallel worldcomm by default.

@vincentchabannes what do you think ?

vincentchabannes commented 6 years ago

@jbwahl the worldcomm should be given to the functionspace and also the backend. see for example feelpp/testsuite/feeldiscr/test_twolaplaciansdistributed.cpp

jbwahl commented 6 years ago

@vincentchabannes right ! And that on of the reasons why i added a backend in modelCrbBase ! 😄

Note for DEIM users (and myself) : It is important to add this backend in the form1 and form2 used in the functions assembleForDEIM(), for instance :

auto f2 = form2( _test=Xh, _trial=Xh, _backend=this->M_backend );

@romainhild