18class NonLinLaplace :
public NonLinearProblem<SC, LO, GO, NO> {
24 typedef typename Problem_Type::Matrix_Type Matrix_Type;
25 typedef typename Problem_Type::MatrixPtr_Type MatrixPtr_Type;
27 typedef typename Problem_Type::MapConstPtr_Type MapConstPtr_Type;
29 typedef typename Problem_Type::BlockMatrix_Type BlockMatrix_Type;
30 typedef typename Problem_Type::BlockMatrixPtr_Type BlockMatrixPtr_Type;
32 typedef typename Problem_Type::MultiVector_Type MultiVector_Type;
33 typedef typename Problem_Type::MultiVectorPtr_Type MultiVectorPtr_Type;
35 typename Problem_Type::MultiVectorConstPtr_Type MultiVectorConstPtr_Type;
37 typedef typename Problem_Type::BlockMultiVector_Type BlockMultiVector_Type;
39 typename Problem_Type::BlockMultiVectorPtr_Type BlockMultiVectorPtr_Type;
41 typedef typename Problem_Type::DomainConstPtr_Type DomainConstPtr_Type;
42 typedef typename Problem_Type::CommConstPtr_Type CommConstPtr_Type;
44 typedef NonLinearProblem<SC, LO, GO, NO> NonLinearProblem_Type;
45 typedef typename NonLinearProblem_Type::BlockMultiVectorPtrArray_Type
46 BlockMultiVectorPtrArray_Type;
48 typedef typename NonLinearProblem_Type::TpetraMatrix_Type TpetraMatrix_Type;
50 typedef typename NonLinearProblem_Type::ThyraVecSpace_Type ThyraVecSpace_Type;
51 typedef typename NonLinearProblem_Type::ThyraVec_Type ThyraVec_Type;
52 typedef typename NonLinearProblem_Type::ThyraOp_Type ThyraOp_Type;
54 typedef typename NonLinearProblem_Type::TpetraOp_Type TpetraOp_Type;
56 typedef Tpetra::CrsMatrix<SC, LO, GO, NO> tpetra_matrix;
62 NonLinLaplace(
const DomainConstPtr_Type &domain, std::string FEType,
63 ParameterListPtr_Type parameterList);
69 virtual void assemble(std::string type =
"")
const;
71 void initAssemble()
const;
73 void reAssemble(std::string type)
const;
75 virtual void reAssemble(BlockMultiVectorPtr_Type previousSolution)
const {};
77 virtual void reAssemble(MatrixPtr_Type &massmatrix,
78 std::string type)
const {};
81 reAssembleExtrapolation(BlockMultiVectorPtrArray_Type previousSolutions);
83 virtual void calculateNonLinResidualVec(std::string type,
84 double time = 0.)
const;
86 virtual void getValuesOfInterest(vec_dbl_Type &values){};
88 virtual void computeValuesOfInterestAndExport(){};
92 Teuchos::RCP<Thyra::LinearOpBase<SC>> create_W_op()
const;
94 Teuchos::RCP<Thyra::PreconditionerBase<SC>> create_W_prec()
const;
98 evalModelImpl(const ::Thyra::ModelEvaluatorBase::InArgs<SC> &inArgs,
99 const ::Thyra::ModelEvaluatorBase::OutArgs<SC> &outArgs)
const;
100 mutable MultiVectorPtr_Type u_rep_;