[Trilinos-Users] Running Rythmos DAE with a user defined Epetra_Operator as Jacobian

Andrea Mola amola at sissa.it
Mon May 5 07:45:10 MDT 2014


Dear all,
I am trying to use Ryrhmos to solve a DAE system for the time 
advancement of a PDE system.
So far, I have already been able to set up a small example which solves 
correctly a small DAE using a Jacobian defined as an Epetra_CrsMatrix.
Unfortunately, I need to use a different Linear Operator, which I define 
as an Epetra_Operator (JacobianOperator :public Epetra_Operator). The 
problem comes when I define my AztecOOLinearOpWithSolveFactory to be 
passed to my EpetraExt::ModelEvaluator constructor. Even though I try to 
specify through the Thyra::initializeOp function that I will use a 
JacobianOperator instead of an Epetra_CrsMatrix, it still seems to think 
that the jacobian of my system is an Epetra_CrsMatrix. In fact, upon 
execution, when the model evaluator calls for a Jacobian evaluation, the 
dynamic cast

JacobianOperator &jac = dyn_cast<JacobianOperator>(*W_out);

fails with the following exception

terminate called after throwing an instance of 'Teuchos::m_bad_cast'
   what():  
/home/amola/trilinos-11.2.3-Source/packages/teuchos/core/src/Teuchos_dyn_cast.cpp:61:

Throw number = 1

Throw test that evaluated to true: true

dyn_cast<16JacobianOperator>(15Epetra_Operator) : Error, the object with 
the concrete type '16Epetra_CrsMatrix' (passed in through the interface 
type '15Epetra_Operator')  does not support the interface 
'16JacobianOperator' and the dynamic cast failed!
Aborted.

So, my question is: what should I do to be able to use an arbitrary 
Epetra_Operator in an EpetraExt::ModelEvaluator? I am not very familiar 
with the parameter lists, so probably the answer is there. Or, 
Thyra::initializeOp is just the wrong function to do what I need. Can 
anyone point me out an example that does that, or suggest me some 
solution?
Thank you very much in advance for the help.
Regards,


     Andrea


More information about the Trilinos-Users mailing list