SCIRun  5.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
VMeshShared< MESH > Class Template Reference

#include <VMeshShared.h>

Inheritance diagram for VMeshShared< MESH >:
VMesh VUnstructuredMesh< MESH >

Public Member Functions

 VMeshShared (MESH *mesh)
 
virtual ~VMeshShared ()
 
virtual bool synchronize (unsigned int sync)
 This call is for synchronizing tables of precomputed elements. More...
 
virtual bool unsynchronize (unsigned int sync)
 
virtual bool clear_synchronization ()
 
virtual Core::Geometry::BBox get_bounding_box () const
 Rerouting of some of the virtual mesh function calls. More...
 
virtual void transform (const Core::Geometry::Transform &t)
 
virtual double get_epsilon () const
 
virtual void get_weights (const VMesh::coords_type &coords, std::vector< double > &weights, int basis_order) const
 
virtual void get_derivate_weights (const VMesh::coords_type &coords, std::vector< double > &weights, int basis_order) const
 
virtual void get_gaussian_scheme (std::vector< VMesh::coords_type > &coords, std::vector< double > &weights, int order) const
 
virtual void get_regular_scheme (std::vector< VMesh::coords_type > &coords, std::vector< double > &weights, int order) const
 
virtual void get_canonical_transform (Core::Geometry::Transform &t)
 
- Public Member Functions inherited from VMesh
 VMesh ()
 
virtual ~VMesh ()
 
void begin (Node::iterator &it) const
 
void begin (ENode::iterator &it) const
 
void begin (Edge::iterator &it) const
 
void begin (Face::iterator &it) const
 
void begin (Cell::iterator &it) const
 
void begin (Elem::iterator &it) const
 
void begin (DElem::iterator &it) const
 
void end (Node::iterator &it) const
 
void end (ENode::iterator &it) const
 
void end (Edge::iterator &it) const
 
void end (Face::iterator &it) const
 
void end (Cell::iterator &it) const
 
void end (Elem::iterator &it) const
 
void end (DElem::iterator &it) const
 
virtual void size (Node::size_type &size) const
 
virtual void size (ENode::size_type &size) const
 
virtual void size (Edge::size_type &size) const
 
virtual void size (Face::size_type &size) const
 
virtual void size (Cell::size_type &size) const
 
virtual void size (Elem::size_type &size) const
 
virtual void size (DElem::size_type &size) const
 
size_type num_nodes () const
 
size_type num_enodes () const
 
size_type num_edges () const
 
size_type num_faces () const
 
size_type num_cells () const
 
size_type num_elems () const
 
size_type num_delems () const
 
virtual boost::shared_ptr
< SearchGridT
< SCIRun::index_type > > 
get_elem_search_grid ()
 NOTE NOT VALID FOR EACH MESH: More...
 
virtual boost::shared_ptr
< SearchGridT
< SCIRun::index_type > > 
get_node_search_grid ()
 
bool is_empty () const
 
virtual void get_nodes (Node::array_type &nodes, Node::index_type i) const
 
virtual void get_nodes (Node::array_type &nodes, Edge::index_type i) const
 
virtual void get_nodes (Node::array_type &nodes, Face::index_type i) const
 
virtual void get_nodes (Node::array_type &nodes, Cell::index_type i) const
 
virtual void get_nodes (Node::array_type &nodes, Elem::index_type i) const
 
virtual void get_nodes (Node::array_type &nodes, DElem::index_type i) const
 
virtual void get_enodes (ENode::array_type &nodes, Node::index_type i) const
 
virtual void get_enodes (ENode::array_type &nodes, Edge::index_type i) const
 
virtual void get_enodes (ENode::array_type &nodes, Face::index_type i) const
 
virtual void get_enodes (ENode::array_type &nodes, Cell::index_type i) const
 
virtual void get_enodes (ENode::array_type &nodes, Elem::index_type i) const
 
virtual void get_enodes (ENode::array_type &nodes, DElem::index_type i) const
 
virtual void get_edges (Edge::array_type &edges, Node::index_type i) const
 
virtual void get_edges (Edge::array_type &edges, Edge::index_type i) const
 
virtual void get_edges (Edge::array_type &edges, Face::index_type i) const
 
virtual void get_edges (Edge::array_type &edges, Cell::index_type i) const
 
virtual void get_edges (Edge::array_type &edges, Elem::index_type i) const
 
virtual void get_edges (Edge::array_type &edges, DElem::index_type i) const
 
virtual void get_faces (Face::array_type &faces, Node::index_type i) const
 
virtual void get_faces (Face::array_type &faces, Edge::index_type i) const
 
virtual void get_faces (Face::array_type &faces, Face::index_type i) const
 
virtual void get_faces (Face::array_type &faces, Cell::index_type i) const
 
virtual void get_faces (Face::array_type &faces, Elem::index_type i) const
 
virtual void get_faces (Face::array_type &faces, DElem::index_type i) const
 
virtual void get_cells (Cell::array_type &cells, Node::index_type i) const
 
virtual void get_cells (Cell::array_type &cells, Edge::index_type i) const
 
virtual void get_cells (Cell::array_type &cells, Face::index_type i) const
 
virtual void get_cells (Cell::array_type &cells, Cell::index_type i) const
 
virtual void get_cells (Cell::array_type &cells, Elem::index_type i) const
 
virtual void get_cells (Cell::array_type &cells, DElem::index_type i) const
 
virtual void get_elems (Elem::array_type &elems, Node::index_type i) const
 
virtual void get_elems (Elem::array_type &elems, Edge::index_type i) const
 
virtual void get_elems (Elem::array_type &elems, Face::index_type i) const
 
virtual void get_elems (Elem::array_type &elems, Cell::index_type i) const
 
virtual void get_elems (Elem::array_type &elems, Elem::index_type i) const
 
virtual void get_elems (Elem::array_type &elems, DElem::index_type i) const
 
virtual void get_delems (DElem::array_type &delems, Node::index_type i) const
 
virtual void get_delems (DElem::array_type &delems, Edge::index_type i) const
 
virtual void get_delems (DElem::array_type &delems, Face::index_type i) const
 
virtual void get_delems (DElem::array_type &delems, Cell::index_type i) const
 
virtual void get_delems (DElem::array_type &delems, Elem::index_type i) const
 
virtual void get_delems (DElem::array_type &delems, DElem::index_type i) const
 
virtual bool get_elem (Elem::index_type &elem, Node::array_type &nodes) const
 Get the topology index from the vertex indices. More...
 
virtual bool get_delem (DElem::index_type &delem, Node::array_type &nodes) const
 
virtual bool get_cell (Cell::index_type &cell, Node::array_type &nodes) const
 
virtual bool get_face (Face::index_type &face, Node::array_type &nodes) const
 
virtual bool get_edge (Edge::index_type &edge, Node::array_type &nodes) const
 
virtual void get_center (Core::Geometry::Point &point, Node::index_type i) const
 Get the center of a certain mesh element. More...
 
virtual void get_center (Core::Geometry::Point &point, ENode::index_type i) const
 
virtual void get_center (Core::Geometry::Point &point, Edge::index_type i) const
 
virtual void get_center (Core::Geometry::Point &point, Face::index_type i) const
 
virtual void get_center (Core::Geometry::Point &point, Cell::index_type i) const
 
virtual void get_center (Core::Geometry::Point &point, Elem::index_type i) const
 
virtual void get_center (Core::Geometry::Point &point, DElem::index_type i) const
 
virtual void get_centers (Core::Geometry::Point *points, Node::array_type &array) const
 Get the centers of a series of nodes. More...
 
virtual void get_centers (Core::Geometry::Point *points, Elem::array_type &array) const
 
void get_centers (points_type &points, Node::array_type &array) const
 
void get_centers (points_type &points, Elem::array_type &array) const
 
void get_all_node_centers (points_type &points) const
 
void get_all_elem_centers (points_type &points) const
 
double get_size (Node::index_type) const
 
double get_size (ENode::index_type) const
 
virtual double get_size (Edge::index_type i) const
 Get the geometrical size of topological mesh components. More...
 
virtual double get_size (Face::index_type i) const
 
virtual double get_size (Cell::index_type i) const
 
virtual double get_size (Elem::index_type i) const
 
virtual double get_size (DElem::index_type i) const
 
virtual double get_size (Node::array_type &array) const
 
double get_length (Edge::index_type i) const
 
double get_area (Face::index_type i) const
 
double get_volume (Cell::index_type i) const
 
double get_length (Elem::index_type i) const
 
double get_area (Elem::index_type i) const
 
double get_volume (Elem::index_type i) const
 
virtual void get_interpolate_weights (const Core::Geometry::Point &p, ElemInterpolate &ei, int basis_order) const
 
virtual void get_interpolate_weights (const coords_type &coords, Elem::index_type elem, ElemInterpolate &ei, int basis_order) const
 
virtual void get_minterpolate_weights (const std::vector< Core::Geometry::Point > &p, MultiElemInterpolate &ei, int basis_order) const
 
virtual void get_minterpolate_weights (const std::vector< coords_type > &coords, Elem::index_type elem, MultiElemInterpolate &ei, int basis_order) const
 
virtual void get_gradient_weights (const Core::Geometry::Point &p, ElemGradient &ei, int basis_order) const
 Same functions but now for determining gradients. More...
 
virtual void get_gradient_weights (const coords_type &coords, Elem::index_type elem, ElemGradient &ei, int basis_order) const
 
virtual void get_mgradient_weights (const std::vector< Core::Geometry::Point > &p, MultiElemGradient &ei, int basis_order) const
 
virtual void get_mgradient_weights (const std::vector< coords_type > &coords, Elem::index_type elem, MultiElemGradient &eg, int basis_order) const
 
virtual bool locate (VMesh::Node::index_type &i, const Core::Geometry::Point &point) const
 
virtual bool locate (VMesh::Elem::index_type &i, const Core::Geometry::Point &point) const
 
virtual bool locate (VMesh::Elem::index_type &i, VMesh::coords_type &coords, const Core::Geometry::Point &point) const
 
virtual void mlocate (std::vector< Node::index_type > &i, const std::vector< Core::Geometry::Point > &point) const
 
virtual void mlocate (std::vector< Elem::index_type > &i, const std::vector< Core::Geometry::Point > &point) const
 
virtual bool locate (VMesh::Elem::array_type &a, const Core::Geometry::BBox &bbox) const
 
virtual bool find_closest_node (double &dist, Core::Geometry::Point &result, VMesh::Node::index_type &i, const Core::Geometry::Point &point) const
 Find the closest point on a surface or a curve. More...
 
virtual bool find_closest_node (double &dist, Core::Geometry::Point &result, VMesh::Node::index_type &i, const Core::Geometry::Point &point, double maxdist) const
 
bool find_closest_node (Core::Geometry::Point &result, VMesh::Node::index_type &i, const Core::Geometry::Point &point, double maxdist)
 Simplified version that does not return the distance. More...
 
bool find_closest_node (Core::Geometry::Point &result, VMesh::Node::index_type &i, const Core::Geometry::Point &point)
 Simplified version that does not return the distance. More...
 
virtual bool find_closest_nodes (std::vector< VMesh::Node::index_type > &nodes, const Core::Geometry::Point &p, double maxdist) const
 
virtual bool find_closest_nodes (std::vector< double > &distances, std::vector< VMesh::Node::index_type > &nodes, const Core::Geometry::Point &p, double maxdist) const
 
virtual bool find_closest_elem (double &dist, Core::Geometry::Point &result, VMesh::coords_type &coords, VMesh::Elem::index_type &i, const Core::Geometry::Point &point) const
 
virtual bool find_closest_elem (double &dist, Core::Geometry::Point &result, VMesh::coords_type &coords, VMesh::Elem::index_type &i, const Core::Geometry::Point &point, double maxdist) const
 
bool find_closest_elem (double &dist, Core::Geometry::Point &result, VMesh::Elem::index_type &i, const Core::Geometry::Point &point) const
 Simplified version that does not return the local coordinates. More...
 
bool find_closest_elem (double &dist, Core::Geometry::Point &result, VMesh::Elem::index_type &i, const Core::Geometry::Point &point, double maxdist) const
 
bool find_closest_elem (Core::Geometry::Point &result, VMesh::Elem::index_type &i, const Core::Geometry::Point &point) const
 Even more simplified version. More...
 
bool find_closest_elem (VMesh::coords_type &coords, VMesh::Elem::index_type &i, const Core::Geometry::Point &point) const
 Another simplified version. More...
 
virtual bool find_closest_elems (double &dist, Core::Geometry::Point &result, VMesh::Elem::array_type &i, const Core::Geometry::Point &point) const
 
virtual bool get_coords (coords_type &coords, const Core::Geometry::Point &point, Elem::index_type i) const
 Find the coordinates of a point in a certain element. More...
 
virtual void interpolate (Core::Geometry::Point &p, const coords_type &coords, Elem::index_type i) const
 Interpolate from local coordinates to global coordinates. More...
 
virtual void minterpolate (std::vector< Core::Geometry::Point > &p, const std::vector< coords_type > &coords, Elem::index_type i) const
 Multiple interpolations from local coordinates to global coordinates. More...
 
virtual void derivate (dpoints_type &p, const coords_type &coords, Elem::index_type i) const
 Interpolate from local coordinates to a derivative in local coordinates. More...
 
virtual void get_normal (Core::Geometry::Vector &result, coords_type &coords, Elem::index_type eidx, DElem::index_type fidx) const
 
void get_normal (Core::Geometry::Vector &result, coords_type &coords, Elem::index_type eidx) const
 This is the surface version. More...
 
void get_normals (std::vector< Core::Geometry::Vector > &result, std::vector< coords_type > &coords, Elem::index_type eidx) const
 Multiple normals short cut. More...
 
virtual void get_random_point (Core::Geometry::Point &p, Elem::index_type i, FieldRNG &rng) const
 Get the location of a random point inside the mesh. More...
 
void get_point (Core::Geometry::Point &point, Node::index_type i) const
 
void get_point (Core::Geometry::Point &point, ENode::index_type i) const
 
Core::Geometry::Point get_point (Node::index_type i) const
 
Core::Geometry::Point get_point (ENode::index_type i) const
 
virtual void set_point (const Core::Geometry::Point &point, Node::index_type i)
 
virtual void set_point (const Core::Geometry::Point &point, ENode::index_type i)
 
virtual Core::Geometry::Pointget_points_pointer () const
 
virtual VMesh::index_typeget_elems_pointer () const
 
void copy_nodes (VMesh *imesh, Node::index_type i, Node::index_type o, Node::size_type size)
 
void copy_nodes (VMesh *imesh)
 
void copy_elems (VMesh *imesh, Elem::index_type i, Elem::index_type o, Elem::size_type size, Elem::size_type offset)
 
void copy_elems (VMesh *imesh)
 
virtual void node_reserve (size_t size)
 
void reserve_nodes (size_t size)
 
virtual void elem_reserve (size_t size)
 reserve memory by specifying the number of elements that is expected More...
 
void reserve_elems (size_t size)
 
virtual void resize_nodes (size_t size)
 
virtual void resize_elems (size_t size)
 
void resize_points (size_t size)
 
virtual void add_node (const Core::Geometry::Point &point, Node::index_type &i)
 Add a node to a mesh. More...
 
virtual void add_enode (const Core::Geometry::Point &point, ENode::index_type &i)
 
void set_node (const Core::Geometry::Point &point, Node::index_type i)
 alternative calls More...
 
void set_enode (const Core::Geometry::Point &point, ENode::index_type i)
 
virtual void set_nodes (Node::array_type &array, Edge::index_type idx)
 
virtual void set_nodes (Node::array_type &array, Face::index_type idx)
 
virtual void set_nodes (Node::array_type &array, Cell::index_type idx)
 
virtual void set_nodes (Node::array_type &array, Elem::index_type idx)
 
Node::index_type add_node (const Core::Geometry::Point &point)
 
void get_node (Core::Geometry::Point &point, Node::index_type i)
 
void get_enode (Core::Geometry::Point &point, ENode::index_type i)
 
VMesh::Node::index_type add_point (const Core::Geometry::Point &point)
 
virtual void add_elem (const Node::array_type &nodes, Elem::index_type &i)
 Add an element to a mesh. More...
 
VMesh::Elem::index_type add_elem (const Node::array_type nodes)
 Alternative calls for add_elem. More...
 
virtual void insert_node_into_elem (Elem::array_type &newelems, Node::index_type &newnode, Elem::index_type elem, Core::Geometry::Point &point)
 Currently only available for tetrahedra, triangles and curves. More...
 
virtual bool get_neighbor (Elem::index_type &neighbor, Elem::index_type from, DElem::index_type delem) const
 Get the neighbors of a node or an element. More...
 
virtual bool get_neighbors (Elem::array_type &elems, Elem::index_type i, DElem::index_type delem) const
 
virtual void get_neighbors (Elem::array_type &elems, Elem::index_type i) const
 
virtual void get_neighbors (Node::array_type &nodes, Node::index_type i) const
 
virtual void pwl_approx_edge (coords_array_type &coords, Elem::index_type ci, unsigned int which_edge, unsigned int div_per_unit) const
 Draw non linear elements. More...
 
virtual void pwl_approx_face (coords_array2_type &coords, Elem::index_type ci, unsigned int which_face, unsigned int div_per_unit) const
 
virtual void get_normal (Core::Geometry::Vector &norm, Node::index_type i) const
 Get node normals, needed for visualization. More...
 
virtual void get_dimensions (dimension_type &dim)
 
virtual void get_elem_dimensions (dimension_type &dim)
 
virtual double det_jacobian (const coords_type &coords, Elem::index_type idx) const
 
virtual void jacobian (const coords_type &coords, Elem::index_type idx, double *J) const
 
virtual double inverse_jacobian (const coords_type &coords, Elem::index_type idx, double *Ji) const
 
virtual double scaled_jacobian_metric (const Elem::index_type idx) const
 Element Quality metrics: More...
 
virtual double jacobian_metric (const Elem::index_type idx) const
 Jacobian of local to global transformation. More...
 
double volume_metric (const Elem::index_type idx) const
 Volume of an element. More...
 
virtual double inscribed_circumscribed_radius_metric (Elem::index_type idx) const
 Scaled inscribed to circumscribed ratio. More...
 
void get_constant_weights (coords_type &, std::vector< double > &weights)
 
virtual void get_linear_weights (coords_type &coords, std::vector< double > &weights)
 
virtual void get_quadratic_weights (coords_type &coords, std::vector< double > &weights)
 
virtual void get_cubic_weights (coords_type &coords, std::vector< double > &weights)
 
void get_constant_derivate_weights (coords_type &, std::vector< double > &weights)
 These four are for computating gradients. More...
 
virtual void get_linear_derivate_weights (coords_type &coords, std::vector< double > &weights)
 
virtual void get_quadratic_derivate_weights (coords_type &coords, std::vector< double > &weights)
 
virtual void get_cubic_derivate_weights (coords_type &coords, std::vector< double > &weights)
 
virtual Core::Geometry::Transform get_transform () const
 Get the transform from a regular field. More...
 
virtual void set_transform (const Core::Geometry::Transform &t)
 Set the transform of a regular field. More...
 
virtual bool is_pointcloudmesh ()
 check the type of mesh More...
 
virtual bool is_curvemesh ()
 
virtual bool is_scanlinemesh ()
 
virtual bool is_structcurvemesh ()
 
virtual bool is_trisurfmesh ()
 
virtual bool is_quadsurfmesh ()
 
virtual bool is_imagemesh ()
 
virtual bool is_structquadsurfmesh ()
 
virtual bool is_tetvolmesh ()
 
virtual bool is_prismvolmesh ()
 
virtual bool is_hexvolmesh ()
 
virtual bool is_latvolmesh ()
 
virtual bool is_structhexvolmesh ()
 
bool is_constantmesh ()
 Check order of mesh. More...
 
bool is_linearmesh ()
 
bool is_quadraticmesh ()
 
bool is_cubicmesh ()
 
bool is_nonlinearmesh ()
 
template<class VEC1 , class VEC2 >
void convert_vector (VEC1 &v1, VEC2 v2) const
 
int basis_order ()
 
int dimensionality ()
 
bool is_point ()
 
bool is_line ()
 
bool is_surface ()
 
bool is_volume ()
 
unsigned int num_nodes_per_elem ()
 
unsigned int num_enodes_per_elem ()
 
unsigned int num_edges_per_elem ()
 
unsigned int num_faces_per_elem ()
 
unsigned int num_nodes_per_face ()
 
unsigned int num_nodes_per_edge ()
 
unsigned int num_edges_per_face ()
 
unsigned int num_gradients_per_node ()
 
bool has_normals ()
 
bool is_editable ()
 
bool is_regularmesh ()
 
bool is_irregularmesh ()
 
bool is_structuredmesh ()
 
bool is_unstructuredmesh ()
 
size_type get_ni () const
 
size_type get_nj () const
 
size_type get_nk () const
 
int generation () const
 
void from_index (index_type &i, index_type &j, index_type &k, Node::index_type idx)
 From index splits up the index into parts. More...
 
void from_index (index_type &i, index_type &j, index_type &k, Elem::index_type idx)
 
void from_index (index_type &i, index_type &j, Node::index_type idx)
 
void from_index (index_type &i, index_type &j, Elem::index_type idx)
 
void from_index (index_type &i, index_type &j, index_type &k, Cell::index_type idx)
 
void from_index (index_type &i, index_type &j, Face::index_type idx)
 
void to_index (Node::index_type &idx, index_type i, index_type j, index_type k)
 To index generates a new successive index. More...
 
void to_index (Node::index_type &idx, index_type i, index_type j)
 
void to_index (Elem::index_type &idx, index_type i, index_type j, index_type k)
 
void to_index (Elem::index_type &idx, index_type i, index_type j)
 
void to_index (Cell::index_type &idx, index_type i, index_type j, index_type k)
 
void to_index (Face::index_type &idx, index_type i, index_type j)
 
bool is_pnt_element ()
 Test for the type of elements. More...
 
bool is_crv_element ()
 
bool is_tri_element ()
 
bool is_quad_element ()
 
bool is_tet_element ()
 
bool is_prism_element ()
 
bool is_hex_element ()
 
void get_element_vertices (coords_array_type &coords)
 Get the unit vertex coordinates of the unit element. More...
 
void get_element_edges (nodes_array_type &edges)
 
void get_element_center (coords_type &coords)
 
double get_element_size ()
 

Protected Attributes

MESH * mesh_
 
MESH::basis_type * basis_
 
- Protected Attributes inherited from VMesh
int basis_order_
 
int dimension_
 
bool has_normals_
 Mesh properties. More...
 
bool is_editable_
 
bool is_regular_
 
bool is_structured_
 
unsigned int num_nodes_per_elem_
 Mesh statistics. More...
 
unsigned int num_enodes_per_elem_
 
unsigned int num_edges_per_elem_
 
unsigned int num_faces_per_elem_
 
unsigned int num_nodes_per_face_
 
unsigned int num_edges_per_face_
 
unsigned int num_gradients_per_node_
 
double element_size_
 Size in local coordinate system. More...
 
coords_array_type unit_vertices_
 Definitions of local element topology. More...
 
nodes_array_type unit_edges_
 
coords_type unit_center_
 
size_type ni_
 
size_type nj_
 
size_type nk_
 
unsigned int generation_
 generation number of mesh More...
 

Additional Inherited Members

- Public Types inherited from VMesh
typedef Mesh::index_type index_type
 VIRTUAL INTERFACE. More...
 
typedef double weight_type
 Weights for interpolation. More...
 
typedef Mesh::size_type size_type
 
typedef std::vector< index_typearray_type
 Array of indices. More...
 
typedef std::vector
< Core::Geometry::Point
points_type
 Array of points. More...
 
typedef std::vector< size_typedimension_type
 
typedef StackVector< double, 3 > coords_type
 
typedef std::vector
< StackVector< double, 3 > > 
coords_array_type
 An array of coords. More...
 
typedef std::vector
< std::vector< StackVector
< double, 3 > > > 
coords_array2_type
 2D array of coords More...
 
typedef StackVector
< Core::Geometry::Point, 3 > 
dpoints_type
 
typedef unsigned int mask_type
 
typedef StackBasedVector
< index_type, 12 > 
index_array_type
 
typedef StackBasedVector
< double, 12 > 
weight_array_type
 
typedef std::vector
< Node::array_type
nodes_array_type
 
typedef std::vector
< ElemInterpolate
MultiElemInterpolate
 
typedef std::vector< ElemGradientMultiElemGradient
 Multiple gradient calculations in parallel. More...
 

Constructor & Destructor Documentation

VMeshShared ( MESH *  mesh)
inline

Collect general information on mesh type. These are constants and should be accessible down the road by inline function calls. The latter construction was chosen to improve performance and reduce the need for for virtual function calls

cache the mesh basis order (1=liner, 2=quadratic, 3=cubic)

cache the mesh dimension (0=point,1=curve, 2=surface, or 3=volume)

cache whether we can edit the mesh by adding nodes and elements

cache whether we haev surface normals

cache whether we have node points defined or whether we derive them implicitly.

cache whether we have connectivity defined or whether we assume the data to be structured enough so we can derive it implicitly

Store topology information on the mesh: This section converts the relevant data out of the underlying older data structures.

Number of nodes in one element

Number of edge nodes for quadratic interpolation model

Number of edges in one element

Number of faces in one element

Number of nodes per face (volume and surface meshes only)

Number of edges per face (volume and surface meshes only)

Number of gradients per node for cubic interpolation model

virtual ~VMeshShared ( )
inlinevirtual

Member Function Documentation

bool clear_synchronization ( )
virtual

Reimplemented from VMesh.

Core::Geometry::BBox get_bounding_box ( ) const
virtual

Rerouting of some of the virtual mesh function calls.

Reimplemented from VMesh.

void get_canonical_transform ( Core::Geometry::Transform t)
virtual

Reimplemented from VMesh.

void get_derivate_weights ( const VMesh::coords_type coords,
std::vector< double > &  weights,
int  basis_order 
) const
virtual

Old get_derivate_weights function, which returns weights but now for computing the gradient of a field.

Reimplemented from VMesh.

double get_epsilon ( ) const
virtual

Get the epsilon for doing numerical computations This one is generally 1e-7*length diagonal of the bounding box

Reimplemented from VMesh.

void get_gaussian_scheme ( std::vector< VMesh::coords_type > &  coords,
std::vector< double > &  weights,
int  order 
) const
virtual

These two functions specify a sampling scheme for interpolation, intergration etc. Currently it supports 3 Gaussian schemes that define the gaussian quadrature points for the meshes. Specify the order between 1 and 3. The regular sampling is intended for operations other than integration and sample using a regular scheme inside the element. Currently an order between 1 and 5 are supported to indicate the number of samples along one of the edges. Hence scheme 1 only gives one point in the center and scheme 5 can generate up to 125 sampling points depending on the topology of the element.

Reimplemented from VMesh.

void get_regular_scheme ( std::vector< VMesh::coords_type > &  coords,
std::vector< double > &  weights,
int  order 
) const
virtual

Reimplemented from VMesh.

void get_weights ( const VMesh::coords_type coords,
std::vector< double > &  weights,
int  basis_order 
) const
virtual

Old get_weights function, in this case the user needs to know about basis order and the basis order that is needed must be given. Also this function implies a certain ordering of the weights and this function only remains in order to provide a sense of backwards compatiblity.

Reimplemented from VMesh.

bool synchronize ( unsigned int  sync)
virtual

This call is for synchronizing tables of precomputed elements.

Reimplemented from VMesh.

void transform ( const Core::Geometry::Transform t)
virtual

Reimplemented from VMesh.

bool unsynchronize ( unsigned int  sync)
virtual

Reimplemented from VMesh.

Member Data Documentation

MESH::basis_type* basis_
protected
MESH* mesh_
protected

The documentation for this class was generated from the following file: