On 18 November 2011 16:43, Garth N. Wells <gn...@cam.ac.uk> wrote: > On 18 November 2011 16:19, Johan Hake <johan.h...@gmail.com> wrote: >> 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 > > Fix is on its way. >
Try it now. The PyTrilinos demo is working again. Garth > Garth > >> 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 >> > > > _______________________________________________ Mailing list: https://launchpad.net/~dolfin Post to : dolfin@lists.launchpad.net Unsubscribe : https://launchpad.net/~dolfin More help : https://help.launchpad.net/ListHelp