19 #include "hermes_common.h"
39 class HERMES_API
HashTable :
public Hermes::Mixins::Loggable
43 Node* get_node(
int id)
const;
46 int get_max_node_id()
const;
49 static const int H2D_DEFAULT_HASH_SIZE = 0x8000;
52 Node* peek_vertex_node(
int p1,
int p2)
const;
55 Node* peek_edge_node(
int p1,
int p2)
const;
57 inline Array<Node> &get_nodes() {
return nodes; }
64 int get_num_nodes()
const;
69 Node* get_vertex_node(
int p1,
int p2);
74 Node* get_edge_node(
int p1,
int p2);
81 void init(
int size = H2D_DEFAULT_HASH_SIZE);
93 void remove_vertex_node(
int id);
96 void remove_edge_node(
int id);
108 inline int hash(
int p1,
int p2)
const {
return (984120265 * p1 + 125965121 * p2) & mask; }
112 Node* search_list(
Node* node,
int p1,
int p2)
const;
115 void copy_list(
Node** ptr,
Node* node);
121 template<
typename Scalar>
friend class Space;
122 template<
typename Scalar>
friend class H1Space;
123 template<
typename Scalar>
friend class L2Space;
124 template<
typename Scalar>
friend class HcurlSpace;
125 template<
typename Scalar>
friend class HdivSpace;
Stores one node of a mesh.
Array< Node > nodes
Array storing all nodes.
Visualizes a Scalar PDE solution.
Represents a finite element space over a domain.
This class characterizes a neighborhood of a given edge in terms of adjacent elements and provides me...
Stores and searches node tables.