This error should have been picked up by a buildbot as: demo/undomcumented/trilinos/python
also fails. I think we need to sort out the PyTrilinos linking bug first as Garth suggested and then look for other sources. Johan On Friday November 18 2011 07:20:23 Martin Sandve Alnæs wrote: > The problem is that dolfin.cpp.EpetraMatrix.mat() returns a > SwigPyObject instead of a PyTrilinos.Epetra.FECrsMatrix. > > With your cbc.block patch, I'm running the following code: > > print type(Puu) > > A = dolfin.down_cast(Puu) > print type(A) > > B = A.mat() > print type(B) > > C = PyTrilinos.ML.MultiLevelPreconditioner(B, 0) > print type(C) > > With dolfin/1.0.x -r6439 I get: > > <class 'dolfin.cpp.Matrix'> > <class 'dolfin.cpp.EpetraMatrix'> > <class 'PyTrilinos.Epetra.FECrsMatrix'> > <class 'PyTrilinos.ML.MultiLevelPreconditioner'> > > With dolfin/1.0.x -r6447 I get: > > <class 'dolfin.cpp.Matrix'> > <class 'dolfin.cpp.EpetraMatrix'> > <type 'SwigPyObject'> > Traceback (most recent call last): > File "/home/martinal/dev/cbc/invbench/scripts/invbench", line 5, in > <module> simfra.introrun.run(locals()) > File "/home/martinal/dev/cbc/invbench/src/simfra/introrun.py", line 79, > in run return func(**kwargs) > File "/home/martinal/dev/cbc/invbench/src/invbench/oneshot.py", line > 160, in case_fruitfly_oneshotblock > C = PyTrilinos.ML.MultiLevelPreconditioner(B, 0) > File > "/home/martinal/opt/fenics/dorsal-unstable/lib/python2.7/site-packages/PyT > rilinos/ML.py", line 1442, in __init__ > this = _ML.new_MultiLevelPreconditioner(*args) > NotImplementedError: Wrong number or type of arguments for overloaded > function 'new_MultiLevelPreconditioner'. > Possible C/C++ prototypes are: > > ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(Epetra_RowMa > trix const &,bool const) > > ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(Epetra_RowMa > trix const &,Teuchos::ParameterList const &,bool const) > > ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(ML_Operator > *,Teuchos::ParameterList const &,bool const) > > ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(ML_Operator > *,Teuchos::ParameterList const &,Epetra_RowMatrix > **,Teuchos::ParameterList *,int,bool const) > > ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(Epetra_RowMa > trix const &,Epetra_RowMatrix const &,Epetra_RowMatrix const > &,Teuchos::ParameterList const &,bool const,bool const) > > ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(Epetra_RowMa > trix const &,Epetra_RowMatrix const &,Epetra_RowMatrix const > &,Epetra_RowMatrix const &,Teuchos::ParameterList const &,bool const) > > ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(Epetra_MsrMa > trix const &,ML_Operator *,AZ_MATRIX *,int *,Teuchos::ParameterList const > &,bool const) > > > Martin > > On 18 November 2011 16:03, Joachim Berdal Haga <j...@simula.no> wrote: > >> self.ml_prec = MultiLevelPreconditioner(A.down_cast().mat(), 0) > > > > I assume Puu is a dolfin.GenericMatrix, so this should be equivalent to > > PyTrilinos.ML.MultiLevelPreconditioner(dolfin.down_cast(Puu).mat(), 0) > > and the only reason I can see for that to fail is if the returned matrix > > from dolfin isn't (recognised as) an Epetra matrix. > > Does the explicit call above give the same error? If so, what is the type > > of the down_cast(Puu).mat()? > > -j. > > > > On 18 November 2011 15:47, Martin Sandve Alnæs <marti...@simula.no> wrote: > >> On 18 November 2011 13:52, Joachim Berdal Haga <j...@simula.no> wrote: > >> > Yep, sorry, forgot the list. Here's a patch for cbc.block which > >> > removes the > >> > workaround, can you see if it helps? > >> > -j. > >> > >> Now I get: > >> > >> Traceback (most recent call last): > >> File "/home/martinal/dev/cbc/invbench/scripts/invbench", line 5, in > >> <module> > >> simfra.introrun.run(locals()) > >> File "/home/martinal/dev/cbc/invbench/src/simfra/introrun.py", line 79, > >> in run > >> return func(**kwargs) > >> File "/home/martinal/dev/cbc/invbench/src/invbench/oneshot.py", line > >> 168, in case_fruitfly_oneshotblock > >> P = block_mat([[ML(Puu), 0, 0], > >> File > >> "/home/martinal/opt/fenics/dorsal-unstable/lib/python2.7/site-packages/b > >> lock/algebraic/trilinos/MLPrec.py", line 25, in __init__ > >> self.ml_prec = MultiLevelPreconditioner(A.down_cast().mat(), 0) > >> File > >> "/home/martinal/opt/fenics/dorsal-unstable/lib/python2.7/site-packages/P > >> yTrilinos/ML.py", line 1442, in __init__ > >> this = _ML.new_MultiLevelPreconditioner(*args) > >> NotImplementedError: Wrong number or type of arguments for overloaded > >> function 'new_MultiLevelPreconditioner'. > >> Possible C/C++ prototypes are: > >> > >> ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(Epetra_Ro > >> wMatrix const &,bool const) > >> > >> ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(Epetra_Ro > >> wMatrix const &,Teuchos::ParameterList const &,bool const) > >> > >> ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(ML_Operat > >> or *,Teuchos::ParameterList const &,bool const) > >> > >> ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(ML_Operat > >> or *,Teuchos::ParameterList const &,Epetra_RowMatrix > >> **,Teuchos::ParameterList *,int,bool const) > >> > >> ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(Epetra_Ro > >> wMatrix const &,Epetra_RowMatrix const &,Epetra_RowMatrix const > >> &,Teuchos::ParameterList const &,bool const,bool const) > >> > >> ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(Epetra_Ro > >> wMatrix const &,Epetra_RowMatrix const &,Epetra_RowMatrix const > >> &,Epetra_RowMatrix const &,Teuchos::ParameterList const &,bool const) > >> > >> ML_Epetra::MultiLevelPreconditioner::MultiLevelPreconditioner(Epetra_Ms > >> rMatrix const &,ML_Operator *,AZ_MATRIX *,int *,Teuchos::ParameterList > >> const &,bool const) > >> > >> > >> -- > >> Martin > > _______________________________________________ > Mailing list: https://launchpad.net/~dolfin > Post to : dolfin@lists.launchpad.net > Unsubscribe : https://launchpad.net/~dolfin > More help : https://help.launchpad.net/ListHelp _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp