29 #ifndef __SystemImplicitNonLinear_H
30 #define __SystemImplicitNonLinear_H 1
44 template<
typename SpaceType>
65 typedef typename super::value_type value_type;
66 typedef typename super::functionspace_type functionspace_type;
67 typedef typename super::functionspace_type functionspace_ptrtype;
68 typedef typename super::element_type element_type;
71 typedef typename super::backend_ptrtype backend_ptrtype;
73 typedef typename super::sparse_matrix_ptrtype sparse_matrix_ptrtype;
75 typedef typename super::vector_ptrtype vector_ptrtype;
152 virtual void updateResidual(
const vector_ptrtype& X, vector_ptrtype& R ) = 0;
155 virtual void updateJacobian(
const vector_ptrtype& X, sparse_matrix_ptrtype& J ) = 0;
160 vector_ptrtype U( M_backend->newVector( this->functionSpace() ) );
166 M_backend->nlSolve( M_J, U, M_R, 1e-10, 10 );
175 sparse_matrix_ptrtype M_J;
181 template<
typename SpaceType>
183 po::variables_map
const& vm )
186 M_J( M_backend->newMatrix( Xh, Xh ) ),
187 M_R( M_backend->newVector( Xh ) )
194 template<
typename SpaceType>