remote_elem.h
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License, or (at your option) any later version.
8 
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
13 
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 
18 
19 
20 #ifndef LIBMESH_REMOTE_ELEM_H
21 #define LIBMESH_REMOTE_ELEM_H
22 
23 // Local includes
24 #include "libmesh/elem.h"
26 
27 // C++ includes
28 #include <cstddef>
29 #include <limits>
30 
31 namespace libMesh
32 {
33 
34 // Forward declarations
35 
36 
37 
48 // ------------------------------------------------------------
49 // RemoteElem class definition
50 class RemoteElem : public Elem,
51  public Singleton
52 {
53  public:
54 
58  static const dof_id_type remote_elem_id = static_cast<dof_id_type>(-2);
59 
63 private:
64  RemoteElem () : Elem(0,0,NULL,_elemlinks_data,NULL)
65  { this->set_id(remote_elem_id); }
66 
67 public:
71  virtual ~RemoteElem();
72 
77  static const Elem & create ();
78 
79  virtual const Point & point (const unsigned int i) const
80  { libmesh_error(); return Elem::point(i); }
81 
82  virtual Point & point (const unsigned int i)
83  { libmesh_error(); return Elem::point(i); }
84 
85  virtual dof_id_type node (const unsigned int i) const
86  { libmesh_error(); return Elem::node(i); }
87 
88  virtual Node* get_node (const unsigned int i) const
89  { libmesh_error(); return Elem::get_node(i); }
90 
91  virtual Node* & set_node (const unsigned int i)
92  { libmesh_error(); return Elem::set_node(i); }
93 
94  virtual dof_id_type key (const unsigned int) const
95  { libmesh_error(); return 0; }
96 
97  virtual bool is_remote () const
98  { return true; }
99 
100  virtual void connectivity(const unsigned int,
101  const IOPackage,
102  std::vector<dof_id_type>&) const
103  { libmesh_error(); }
104 
105  virtual ElemType type () const
106  { return REMOTEELEM; }
107 
108  virtual unsigned int dim () const
109  { libmesh_error(); return 0; }
110 
111  virtual unsigned int n_nodes () const
112  { libmesh_error(); return 0; }
113 
114  virtual unsigned int n_sides () const
115  { libmesh_error(); return 0; }
116 
117  virtual unsigned int n_vertices () const
118  { libmesh_error(); return 0; }
119 
120  virtual unsigned int n_edges () const
121  { libmesh_error(); return 0; }
122 
123  virtual unsigned int n_faces () const
124  { libmesh_error(); return 0; }
125 
126  virtual unsigned int n_children () const
127  { libmesh_error(); return 0; }
128 
129  virtual bool is_vertex(const unsigned int) const
130  { libmesh_error(); return false; }
131 
132  virtual bool is_edge(const unsigned int) const
133  { libmesh_error(); return false; }
134 
135  virtual bool is_face(const unsigned int) const
136  { libmesh_error(); return false; }
137 
138  virtual bool is_node_on_side(const unsigned int,
139  const unsigned int) const
140  { libmesh_error(); return false; }
141 
142  virtual bool is_child_on_side(const unsigned int,
143  const unsigned int) const
144  { libmesh_error(); return false; }
145 
146  virtual bool is_edge_on_side(const unsigned int,
147  const unsigned int) const
148  { libmesh_error(); return false; }
149 
150  virtual bool is_node_on_edge(const unsigned int,
151  const unsigned int) const
152  { libmesh_error(); return false; }
153 
154  virtual unsigned int n_sub_elem () const
155  { libmesh_error(); return 0; }
156 
157  virtual AutoPtr<Elem> side (const unsigned int) const
158  { libmesh_error(); return AutoPtr<Elem>(NULL); }
159 
160  virtual AutoPtr<Elem> build_side (const unsigned int,
161  bool) const
162  { libmesh_error(); return AutoPtr<Elem>(NULL); }
163 
164  virtual AutoPtr<Elem> build_edge (const unsigned int) const
165  { libmesh_error(); return AutoPtr<Elem>(NULL); }
166 
167  virtual Order default_order () const
168  { libmesh_error(); return FIRST; }
169 
170 #ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS
171 
172  virtual bool infinite () const
173  { libmesh_error(); return false; }
174 
175 #endif
176 
177 #ifdef LIBMESH_ENABLE_AMR
178 
183  virtual float embedding_matrix (const unsigned int,
184  const unsigned int,
185  const unsigned int) const
186  { libmesh_error(); return 0.; }
187 
188 #endif
189 
190 protected:
191 
196 
197 };
198 
199 // Singleton RemoteElem
200 extern const RemoteElem* remote_elem;
201 
202 } // namespace libMesh
203 
204 #endif // LIBMESH_REMOTE_ELEM_H

Site Created By: libMesh Developers
Last modified: February 07 2014 16:57:07 UTC

Hosted By:
SourceForge.net Logo