[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'

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!

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 
Thank you very much in advance for the help.


More information about the Trilinos-Users mailing list