Logo  0.95.0-final
Finite Element Embedded Library and Language in C++
Feel++ Feel++ on Github Feel++ community
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
feelmesh/traits.hpp
1 /* -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2 
3  This file is part of the Feel library
4 
5  Author(s): Christophe Prud'homme <prudhomm@zion>
6  Date: 2005-08-27
7 
8  Copyright (C) 2005,2006 EPFL
9 
10  This library is free software; you can redistribute it and/or
11  modify it under the terms of the GNU Lesser General Public
12  License as published by the Free Software Foundation; either
13  version 3.0 of the License, or (at your option) any later version.
14 
15  This library is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18  Lesser General Public License for more details.
19 
20  You should have received a copy of the GNU Lesser General Public
21  License along with this library; if not, write to the Free Software
22  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
23 */
29 #ifndef __FEELPP_MESH_TRAITS_HPP
30 #define __FEELPP_MESH_TRAITS_HPP 1
31 
32 #include <feel/feelcore/traits.hpp>
33 
34 namespace Feel
35 {
42 template<typename MeshType>
43 struct MeshTraits
44 {
48 
50  typedef typename boost::remove_pointer<typename remove_shared_ptr<MeshType>::type >::type mesh_type;
51 
52  typedef typename mesh_type::shape_type element_shape_type;
53 
54  typedef typename mesh_type::element_type element_type;
55  typedef typename mesh_type::face_type face_type;
56 
57  // element iterators
58  typedef typename mesh_type::element_iterator element_iterator;
59  typedef typename mesh_type::element_const_iterator element_const_iterator;
60 
61  typedef typename mesh_type::marker_element_iterator marker_element_iterator;
62  typedef typename mesh_type::marker_element_const_iterator marker_element_const_iterator;
63 
64  typedef typename mesh_type::marker2_element_iterator marker2_element_iterator;
65  typedef typename mesh_type::marker2_element_const_iterator marker2_element_const_iterator;
66 
67  typedef typename mesh_type::marker3_element_iterator marker3_element_iterator;
68  typedef typename mesh_type::marker3_element_const_iterator marker3_element_const_iterator;
69 
70  typedef typename mesh_type::location_element_iterator location_element_iterator;
71  typedef typename mesh_type::location_element_const_iterator location_element_const_iterator;
72 
73  typedef typename mesh_type::pid_element_iterator pid_element_iterator;
74  typedef typename mesh_type::pid_element_const_iterator pid_element_const_iterator;
75 
76  // face iterators
77  typedef typename mesh_type::face_iterator face_iterator;
78  typedef typename mesh_type::face_const_iterator face_const_iterator;
79 
80  typedef typename mesh_type::marker_face_iterator marker_face_iterator;
81  typedef typename mesh_type::marker_face_const_iterator marker_face_const_iterator;
82 
83  typedef typename mesh_type::marker2_face_iterator marker2_face_iterator;
84  typedef typename mesh_type::marker2_face_const_iterator marker2_face_const_iterator;
85 
86  typedef typename mesh_type::marker3_face_iterator marker3_face_iterator;
87  typedef typename mesh_type::marker3_face_const_iterator marker3_face_const_iterator;
88 
89  typedef typename mesh_type::location_face_iterator location_face_iterator;
90  typedef typename mesh_type::location_face_const_iterator location_face_const_iterator;
91 
92  typedef typename mesh_type::interprocess_face_iterator interprocess_face_iterator;
93  typedef typename mesh_type::interprocess_face_const_iterator interprocess_face_const_iterator;
94 
95  // edge iterators
96  typedef typename mesh_type::marker_edge_iterator marker_edge_iterator;
97  typedef typename mesh_type::marker_edge_const_iterator marker_edge_const_iterator;
98 
99  typedef typename mesh_type::location_edge_iterator location_edge_iterator;
100  typedef typename mesh_type::location_edge_const_iterator location_edge_const_iterator;
101 
102  // point iterators
103  typedef typename mesh_type::point_iterator point_iterator;
104  typedef typename mesh_type::point_const_iterator point_const_iterator;
105 
106  typedef typename mesh_type::marker_point_iterator marker_point_iterator;
107  typedef typename mesh_type::marker_point_const_iterator marker_point_const_iterator;
108  typedef typename mesh_type::location_point_iterator location_point_iterator;
109  typedef typename mesh_type::location_point_const_iterator location_point_const_iterator;
110 
112 };
113 
114 } // Feel
115 #endif /* __Traits_H */

Generated on Sun Oct 20 2013 08:25:06 for Feel++ by doxygen 1.8.4