29 #ifndef FEELPP_DRIVENCAVITY_HPP_H
30 #define FEELPP_DRIVENCAVITY_HPP_H 1
32 #include <feel/feel.hpp>
37 class DrivenCavity :
public Application
39 typedef Application super;
43 typedef double value_type;
45 typedef Simplex<Dim> convex_type;
46 typedef Mesh<convex_type> mesh_type;
47 typedef boost::shared_ptr<mesh_type> mesh_ptrtype;
51 typedef Lagrange<2, Vectorial> basis_u_type;
52 typedef Lagrange<1, Scalar> basis_p_type;
53 typedef Lagrange<0, Scalar> basis_l_type;
55 typedef bases<basis_u_type,basis_p_type, basis_l_type> basis_type;
61 typedef bases<basis_u_type> basis_type_U;
62 typedef FunctionSpace<mesh_type, basis_type_U> space_type_U;
63 typedef boost::shared_ptr<space_type_U> space_ptrtype_U;
67 typedef FunctionSpace<mesh_type, basis_type> space_type;
68 typedef boost::shared_ptr<space_type> space_ptrtype;
73 typedef typename space_type::element_type element_type;
77 typedef Exporter<mesh_type> export_type;
82 FEELPP_DONT_INLINE
void init();
84 FEELPP_DONT_INLINE
void run();
86 FEELPP_DONT_INLINE
void exportResults( element_type
const& U );
88 FEELPP_DONT_INLINE
void Jacobian(
const vector_ptrtype& X, sparse_matrix_ptrtype& J);
89 FEELPP_DONT_INLINE
void Residual(
const vector_ptrtype& X, vector_ptrtype& R);
101 boost::shared_ptr<export_type> exporter;