[Trilinos-Users] Running Rythmos DAE with a user defined Epetra_Operator as Jacobian
amola at sissa.it
Mon May 5 07:45:10 MDT 2014
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
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