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

#include <VUnstructuredMesh.h>

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

Public Member Functions

 VUnstructuredMesh (MESH *mesh)
 Constructor: This will initialize VMeshShared and VMesh. More...
 
virtual void size (VMesh::Node::size_type &size) const
 
virtual void size (VMesh::ENode::size_type &size) const
 
virtual void size (VMesh::Edge::size_type &size) const
 
virtual void size (VMesh::Face::size_type &size) const
 
virtual void size (VMesh::Cell::size_type &size) const
 
virtual void size (VMesh::Elem::size_type &size) const
 
virtual void size (VMesh::DElem::size_type &size) const
 
virtual void get_center (Core::Geometry::Point &point, VMesh::Node::index_type i) const
 Get the center of a certain mesh element. More...
 
virtual void get_center (Core::Geometry::Point &point, VMesh::ENode::index_type i) const
 
virtual void get_center (Core::Geometry::Point &point, VMesh::Edge::index_type i) const
 
virtual void get_center (Core::Geometry::Point &point, VMesh::Face::index_type i) const
 
virtual void get_center (Core::Geometry::Point &point, VMesh::Cell::index_type i) const
 
virtual void get_center (Core::Geometry::Point &point, VMesh::Elem::index_type i) const
 
virtual void get_center (Core::Geometry::Point &point, VMesh::DElem::index_type i) const
 
virtual void get_centers (Core::Geometry::Point *points, VMesh::Node::array_type &array) const
 Get the centers of a series of nodes. More...
 
virtual void get_centers (Core::Geometry::Point *points, VMesh::Elem::array_type &array) const
 
virtual double get_size (VMesh::Edge::index_type i) const
 Get the geometrical size of topological mesh components. More...
 
virtual double get_size (VMesh::Face::index_type i) const
 
virtual double get_size (VMesh::Cell::index_type i) const
 
virtual double get_size (VMesh::Elem::index_type i) const
 
virtual double get_size (VMesh::DElem::index_type i) 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 bool locate (VMesh::Elem::array_type &i, const Core::Geometry::BBox &bbox) const
 
virtual void mlocate (std::vector< VMesh::Node::index_type > &i, const std::vector< Core::Geometry::Point > &point) const
 
virtual void mlocate (std::vector< VMesh::Elem::index_type > &i, const std::vector< Core::Geometry::Point > &point) const
 
virtual bool get_coords (VMesh::coords_type &coords, const Core::Geometry::Point &point, VMesh::Elem::index_type i) const
 Find the coordinates of a point in a certain element. More...
 
virtual void interpolate (Core::Geometry::Point &p, const VMesh::coords_type &coords, VMesh::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< VMesh::coords_type > &coords, VMesh::Elem::index_type i) const
 Multiple interpolations from local coordinates to global coordinates. More...
 
virtual void derivate (VMesh::dpoints_type &p, const VMesh::coords_type &coords, VMesh::Elem::index_type i) const
 Interpolate from local coordinates to a derivative in local coordinates. More...
 
virtual void get_random_point (Core::Geometry::Point &p, VMesh::Elem::index_type i, FieldRNG &rng) const
 Get the location of a random point inside the mesh. More...
 
virtual void set_point (const Core::Geometry::Point &point, VMesh::Node::index_type i)
 
virtual void set_point (const Core::Geometry::Point &point, VMesh::ENode::index_type i)
 
virtual Core::Geometry::Pointget_points_pointer () const
 
virtual void add_node (const Core::Geometry::Point &point, VMesh::Node::index_type &i)
 Add a node to a mesh. More...
 
virtual void add_enode (const Core::Geometry::Point &point, VMesh::ENode::index_type &i)
 
virtual void add_elem (const VMesh::Node::array_type &nodes, VMesh::Elem::index_type &i)
 Add an element to a mesh. More...
 
virtual bool get_neighbor (VMesh::Elem::index_type &neighbor, VMesh::Elem::index_type elem, VMesh::DElem::index_type delem) const
 Get the neighbors of a node or an element. More...
 
virtual bool get_neighbors (VMesh::Elem::array_type &elems, VMesh::Elem::index_type elem, VMesh::DElem::index_type delem) const
 
virtual void get_neighbors (VMesh::Elem::array_type &elems, VMesh::Elem::index_type elem) const
 
virtual void get_neighbors (VMesh::Node::array_type &nodes, VMesh::Node::index_type node) const
 
virtual void pwl_approx_edge (VMesh::coords_array_type &coords, VMesh::Elem::index_type ci, unsigned int which_edge, unsigned int div_per_unit) const
 Draw non linear elements. More...
 
virtual void pwl_approx_face (VMesh::coords_array2_type &coords, VMesh::Elem::index_type ci, unsigned int which_face, unsigned int div_per_unit) const
 
virtual void get_dimensions (VMesh::dimension_type &dim)
 
virtual double det_jacobian (const VMesh::coords_type &coords, VMesh::Elem::index_type idx) const
 Get the jacobian for the global coordinates to local coordinates transformation. More...
 
virtual void jacobian (const VMesh::coords_type &coords, VMesh::Elem::index_type idx, double *J) const
 
virtual double inverse_jacobian (const VMesh::coords_type &coords, VMesh::Elem::index_type idx, double *Ji) const
 
virtual double scaled_jacobian_metric (const VMesh::Elem::index_type elem) const
 Element Quality metrics: More...
 
virtual double jacobian_metric (const VMesh::Elem::index_type elem) const
 Jacobian of local to global transformation. More...
 
virtual void node_reserve (size_t size)
 
virtual void elem_reserve (size_t size)
 reserve memory by specifying the number of elements that is expected More...
 
virtual void resize_nodes (size_t size)
 
virtual void resize_elems (size_t size)
 
virtual void get_normal (Core::Geometry::Vector &norm, VMesh::Node::index_type i) const
 Get normals, for surface meshes only. More...
 
virtual void get_normal (Core::Geometry::Vector &norm, VMesh::coords_type &coords, VMesh::Elem::index_type i, VMesh::DElem::index_type j) const
 
virtual void get_interpolate_weights (const Core::Geometry::Point &point, VMesh::ElemInterpolate &ei, int basis_order) const
 
virtual void get_interpolate_weights (const VMesh::coords_type &coords, VMesh::Elem::index_type elem, VMesh::ElemInterpolate &ei, int basis_order) const
 
virtual void get_minterpolate_weights (const std::vector< Core::Geometry::Point > &point, VMesh::MultiElemInterpolate &ei, int basis_order) const
 
virtual void get_minterpolate_weights (const std::vector< VMesh::coords_type > &coords, VMesh::Elem::index_type elem, VMesh::MultiElemInterpolate &ei, int basis_order) const
 
virtual void get_gradient_weights (const Core::Geometry::Point &point, VMesh::ElemGradient &eg, int basis_order) const
 Same functions but now for determining gradients. More...
 
virtual void get_gradient_weights (const VMesh::coords_type &coords, VMesh::Elem::index_type elem, VMesh::ElemGradient &eg, int basis_order) const
 
virtual void get_mgradient_weights (const std::vector< Core::Geometry::Point > &point, VMesh::MultiElemGradient &eg, int basis_order) const
 
virtual void get_mgradient_weights (const std::vector< VMesh::coords_type > &coords, VMesh::Elem::index_type elem, VMesh::MultiElemGradient &eg, int basis_order) const
 
virtual bool find_closest_node (double &pdist, 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 &pdist, Core::Geometry::Point &result, VMesh::Node::index_type &i, const Core::Geometry::Point &point, double maxdist) const
 
virtual bool find_closest_nodes (std::vector< VMesh::Node::index_type > &nodes, const Core::Geometry::Point &point, double maxdist) const
 
virtual bool find_closest_nodes (std::vector< double > &distances, std::vector< VMesh::Node::index_type > &nodes, const Core::Geometry::Point &point, double maxdist) const
 
virtual bool find_closest_elem (double &pdist, 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 &pdist, Core::Geometry::Point &result, VMesh::coords_type &coords, VMesh::Elem::index_type &i, const Core::Geometry::Point &point, double maxdist) const
 
virtual bool find_closest_elems (double &pdist, Core::Geometry::Point &result, VMesh::Elem::array_type &i, const Core::Geometry::Point &point) const
 
- Public Member Functions inherited from VMeshShared< MESH >
 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
 
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
 
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 (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
 
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...
 
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...
 
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...
 
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 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)
 
void reserve_nodes (size_t size)
 
void reserve_elems (size_t size)
 
void resize_points (size_t size)
 
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)
 
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 void get_elem_dimensions (dimension_type &dim)
 
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 ()
 

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...
 
- Protected Attributes inherited from VMeshShared< MESH >
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...
 

Constructor & Destructor Documentation

VUnstructuredMesh ( MESH *  mesh)
inlineexplicit

Constructor: This will initialize VMeshShared and VMesh.

Member Function Documentation

void add_elem ( const VMesh::Node::array_type nodes,
VMesh::Elem::index_type i 
)
virtual

Add an element to a mesh.

Reimplemented from VMesh.

void add_enode ( const Core::Geometry::Point point,
VMesh::ENode::index_type i 
)
virtual

Reimplemented from VMesh.

void add_node ( const Core::Geometry::Point point,
VMesh::Node::index_type i 
)
virtual

Add a node to a mesh.

Reimplemented from VMesh.

void derivate ( VMesh::dpoints_type p,
const VMesh::coords_type coords,
VMesh::Elem::index_type  i 
) const
virtual

Interpolate from local coordinates to a derivative in local coordinates.

Reimplemented from VMesh.

double det_jacobian ( const VMesh::coords_type coords,
VMesh::Elem::index_type  idx 
) const
virtual

Get the jacobian for the global coordinates to local coordinates transformation.

Reimplemented from VMesh.

void elem_reserve ( size_t  size)
virtual

reserve memory by specifying the number of elements that is expected

Reimplemented from VMesh.

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

Find the closest location that is part of an element This function returns the projection point on the mesh and the euclidian distance to the field which is the distance between point and the projection. It also returns the local coordinates of the element where the projection point is located and the element index. if no elements are found the function returns false.

Reimplemented from VMesh.

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
virtual

Same function, but now limited to a certain search ratius. if no elements are found the function returns false.

Reimplemented from VMesh.

bool find_closest_elems ( double &  dist,
Core::Geometry::Point result,
VMesh::Elem::array_type i,
const Core::Geometry::Point point 
) const
virtual
Todo:
: Need to reformulate this one, closest element can have multiple

Reimplemented from VMesh.

bool find_closest_node ( double &  dist,
Core::Geometry::Point result,
VMesh::Node::index_type i,
const Core::Geometry::Point point 
) const
virtual

Find the closest point on a surface or a curve.

These functions return the closest node to a certain point It returns the distance and the node index and the location of the node.

Reimplemented from VMesh.

bool find_closest_node ( double &  dist,
Core::Geometry::Point result,
VMesh::Node::index_type i,
const Core::Geometry::Point point,
double  maxdist 
) const
virtual

This version uses a maximum radius for searching the node If no nodes are within radius the function returns false.

Reimplemented from VMesh.

bool find_closest_nodes ( std::vector< VMesh::Node::index_type > &  nodes,
const Core::Geometry::Point p,
double  maxdist 
) const
virtual

Find the nodes within a spherical region arounf point. It returns the indices to the nodes

Reimplemented from VMesh.

bool find_closest_nodes ( std::vector< double > &  distances,
std::vector< VMesh::Node::index_type > &  nodes,
const Core::Geometry::Point point,
double  maxdist 
) const
virtual

Reimplemented from VMesh.

void get_center ( Core::Geometry::Point point,
VMesh::Node::index_type  i 
) const
virtual

Get the center of a certain mesh element.

Reimplemented from VMesh.

void get_center ( Core::Geometry::Point point,
VMesh::ENode::index_type  i 
) const
virtual

Reimplemented from VMesh.

void get_center ( Core::Geometry::Point point,
VMesh::Edge::index_type  i 
) const
virtual

Reimplemented from VMesh.

void get_center ( Core::Geometry::Point point,
VMesh::Face::index_type  i 
) const
virtual

Reimplemented from VMesh.

void get_center ( Core::Geometry::Point point,
VMesh::Cell::index_type  i 
) const
virtual

Reimplemented from VMesh.

void get_center ( Core::Geometry::Point point,
VMesh::Elem::index_type  i 
) const
virtual

Reimplemented from VMesh.

void get_center ( Core::Geometry::Point point,
VMesh::DElem::index_type  i 
) const
virtual

Reimplemented from VMesh.

void get_centers ( Core::Geometry::Point points,
VMesh::Node::array_type array 
) const
virtual

Get the centers of a series of nodes.

Reimplemented from VMesh.

void get_centers ( Core::Geometry::Point points,
VMesh::Elem::array_type array 
) const
virtual

Reimplemented from VMesh.

bool get_coords ( VMesh::coords_type coords,
const Core::Geometry::Point point,
VMesh::Elem::index_type  i 
) const
virtual

Find the coordinates of a point in a certain element.

Reimplemented from VMesh.

void get_dimensions ( VMesh::dimension_type dim)
virtual

Get the dimensions of the mesh. This function will replace get_dim()

Reimplemented from VMesh.

void get_gradient_weights ( const Core::Geometry::Point p,
VMesh::ElemGradient ei,
int  basis_order 
) const
virtual

Same functions but now for determining gradients.

Reimplemented from VMesh.

void get_gradient_weights ( const VMesh::coords_type coords,
VMesh::Elem::index_type  elem,
VMesh::ElemGradient eg,
int  basis_order 
) const
virtual

Reimplemented from VMesh.

void get_interpolate_weights ( const Core::Geometry::Point point,
VMesh::ElemInterpolate ei,
int  basis_order 
) const
virtual

Get all the information needed for interpolation: this includes weights and node indices

Reimplemented from VMesh.

void get_interpolate_weights ( const VMesh::coords_type coords,
VMesh::Elem::index_type  elem,
VMesh::ElemInterpolate ei,
int  basis_order 
) const
virtual

Reimplemented from VMesh.

void get_mgradient_weights ( const std::vector< Core::Geometry::Point > &  point,
VMesh::MultiElemGradient eg,
int  basis_order 
) const
virtual

Reimplemented from VMesh.

void get_mgradient_weights ( const std::vector< VMesh::coords_type > &  coords,
VMesh::Elem::index_type  elem,
VMesh::MultiElemGradient eg,
int  basis_order 
) const
virtual

Reimplemented from VMesh.

void get_minterpolate_weights ( const std::vector< Core::Geometry::Point > &  point,
VMesh::MultiElemInterpolate ei,
int  basis_order 
) const
virtual

Reimplemented from VMesh.

void get_minterpolate_weights ( const std::vector< VMesh::coords_type > &  coords,
VMesh::Elem::index_type  elem,
VMesh::MultiElemInterpolate ei,
int  basis_order 
) const
virtual

Reimplemented from VMesh.

bool get_neighbor ( VMesh::Elem::index_type neighbor,
VMesh::Elem::index_type  from,
VMesh::DElem::index_type  delem 
) const
virtual

Get the neighbors of a node or an element.

Reimplemented from VMesh.

bool get_neighbors ( VMesh::Elem::array_type elems,
VMesh::Elem::index_type  elem,
VMesh::DElem::index_type  delem 
) const
virtual

Reimplemented from VMesh.

void get_neighbors ( VMesh::Elem::array_type elems,
VMesh::Elem::index_type  elem 
) const
virtual

Reimplemented from VMesh.

void get_neighbors ( VMesh::Node::array_type nodes,
VMesh::Node::index_type  node 
) const
virtual

Reimplemented from VMesh.

void get_normal ( Core::Geometry::Vector norm,
VMesh::Node::index_type  i 
) const
virtual

Get normals, for surface meshes only.

Reimplemented from VMesh.

void get_normal ( Core::Geometry::Vector result,
VMesh::coords_type coords,
VMesh::Elem::index_type  eidx,
VMesh::DElem::index_type  fidx 
) const
virtual

Get the normal to an element if this is a valid operation. This is only implemented for surface and volume meshes. As elements can be curved the coordinates specify where on the element one wants to compute the normal. This is the volumetric version where one has to specify as well which face is involved.

Reimplemented from VMesh.

Core::Geometry::Point * get_points_pointer ( ) const
virtual

These should only be used to speed up code within proper wrappers and after checking the type of the underlying mesh as they allow direct access to the mesh memory

Reimplemented from VMesh.

void get_random_point ( Core::Geometry::Point p,
VMesh::Elem::index_type  i,
FieldRNG rng 
) const
virtual

Get the location of a random point inside the mesh.

Set and get a node location. Node set is only available for editable meshes

Reimplemented from VMesh.

double get_size ( VMesh::Edge::index_type  i) const
virtual

Get the geometrical size of topological mesh components.

Reimplemented from VMesh.

double get_size ( VMesh::Face::index_type  i) const
virtual

Reimplemented from VMesh.

double get_size ( VMesh::Cell::index_type  i) const
virtual

Reimplemented from VMesh.

double get_size ( VMesh::Elem::index_type  i) const
virtual

Reimplemented from VMesh.

double get_size ( VMesh::DElem::index_type  i) const
virtual

Reimplemented from VMesh.

void interpolate ( Core::Geometry::Point p,
const VMesh::coords_type coords,
VMesh::Elem::index_type  i 
) const
virtual

Interpolate from local coordinates to global coordinates.

Reimplemented from VMesh.

double inverse_jacobian ( const VMesh::coords_type coords,
VMesh::Elem::index_type  idx,
double *  Ji 
) const
virtual

Get the inverse jacobian matrix. This gives as side product the determinant of the inverse matrix.

Reimplemented from VMesh.

void jacobian ( const VMesh::coords_type coords,
VMesh::Elem::index_type  idx,
double *  J 
) const
virtual

Get the jacobian of the local to global transformation Note J needs to be a least an array of 9 values. Coords and idx again specify the element and the position in local coordinates.

Reimplemented from VMesh.

double jacobian_metric ( const VMesh::Elem::index_type  idx) const
virtual

Jacobian of local to global transformation.

Reimplemented from VMesh.

bool locate ( VMesh::Node::index_type i,
const Core::Geometry::Point point 
) const
virtual

Locate where a position is in the mesh The node version finds the closest node The element version find the element that contains the point

Reimplemented from VMesh.

bool locate ( VMesh::Elem::index_type i,
const Core::Geometry::Point point 
) const
virtual

Reimplemented from VMesh.

bool locate ( VMesh::Elem::index_type i,
VMesh::coords_type coords,
const Core::Geometry::Point point 
) const
virtual

Reimplemented from VMesh.

bool locate ( VMesh::Elem::array_type a,
const Core::Geometry::BBox bbox 
) const
virtual

Find elements that are inside or close to the bounding box. This function uses the underlying search structure to find candidates that are close. This functionality is general intended to speed up searching for elements in a certain region.

Reimplemented from VMesh.

void minterpolate ( std::vector< Core::Geometry::Point > &  p,
const std::vector< VMesh::coords_type > &  coords,
VMesh::Elem::index_type  i 
) const
virtual

Multiple interpolations from local coordinates to global coordinates.

Reimplemented from VMesh.

void mlocate ( std::vector< VMesh::Node::index_type > &  i,
const std::vector< Core::Geometry::Point > &  point 
) const
virtual

multi locate functions. An 'm' in front of a function tends to denote that this function is vectorized for convenience. Depending on the underlying functionality it calls the single case multiple times or adds some optimization. In this case optimization occurs by assuming the points are close together and previous node or element indices are tested first to see if that is the index for the next one in the array Hence in optimal cases the search is reduced to a few points for a cloud of points

Reimplemented from VMesh.

void mlocate ( std::vector< VMesh::Elem::index_type > &  i,
const std::vector< Core::Geometry::Point > &  point 
) const
virtual

Reimplemented from VMesh.

void node_reserve ( size_t  size)
virtual

Functions for forwarding call to the basis class of the mesh

Reimplemented from VMesh.

void pwl_approx_edge ( VMesh::coords_array_type coords,
VMesh::Elem::index_type  ci,
unsigned int  which_edge,
unsigned int  div_per_unit 
) const
virtual

Draw non linear elements.

Reimplemented from VMesh.

void pwl_approx_face ( VMesh::coords_array2_type coords,
VMesh::Elem::index_type  ci,
unsigned int  which_face,
unsigned int  div_per_unit 
) const
virtual

Reimplemented from VMesh.

void resize_elems ( size_t  size)
virtual

Reimplemented from VMesh.

void resize_nodes ( size_t  size)
virtual

Actually resize the arrays. Note: this is limited to certain meshes

Reimplemented from VMesh.

double scaled_jacobian_metric ( const VMesh::Elem::index_type  idx) const
virtual

Element Quality metrics:

Scaled jacobian of local to global transformation

Reimplemented from VMesh.

void set_point ( const Core::Geometry::Point point,
VMesh::Node::index_type  i 
)
virtual

Set the location of a point. Note: one must be the single user of the mesh to do this

Reimplemented from VMesh.

void set_point ( const Core::Geometry::Point point,
VMesh::ENode::index_type  i 
)
virtual

Reimplemented from VMesh.

void size ( VMesh::Node::size_type size) const
virtual

Get the number of elements in the mesh of the specified type Note: that for any size other then the number of nodes or elements, one has to synchronize that part of the mesh.

Reimplemented from VMesh.

void size ( VMesh::ENode::size_type size) const
virtual

Reimplemented from VMesh.

void size ( VMesh::Edge::size_type size) const
virtual

Reimplemented from VMesh.

void size ( VMesh::Face::size_type size) const
virtual

Reimplemented from VMesh.

void size ( VMesh::Cell::size_type size) const
virtual

Reimplemented from VMesh.

void size ( VMesh::Elem::size_type size) const
virtual

Reimplemented from VMesh.

void size ( VMesh::DElem::size_type size) const
virtual

Reimplemented from VMesh.


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