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

Declarations for virtual interface. More...

#include <StructCurveMesh.h>

Inheritance diagram for StructCurveMesh< Basis >:
ScanlineMesh< Basis > Mesh Datatype MeshTraits< VMesh > Persistent HasId< IdType, IdGenerator >

Classes

class  ElemData
 

Public Types

typedef SCIRun::index_type under_type
 Types that change depending on 32 or 64bits. More...
 
typedef SCIRun::index_type index_type
 
typedef SCIRun::size_type size_type
 
typedef SCIRun::mask_type mask_type
 
- Public Types inherited from ScanlineMesh< Basis >
typedef SCIRun::index_type under_type
 
typedef SCIRun::index_type index_type
 
typedef SCIRun::size_type size_type
 
typedef SCIRun::mask_type mask_type
 
typedef boost::shared_ptr
< ScanlineMesh< Basis > > 
handle_type
 
typedef Basis basis_type
 
typedef Edge Elem
 
typedef Node DElem
 
- Public Types inherited from Mesh
enum  {
  UNKNOWN = 0, STRUCTURED = 1 << 1, UNSTRUCTURED = 1 << 2, REGULAR = 1 << 3,
  IRREGULAR = 1 << 4
}
 These will become obsolete at some point. More...
 
enum  {
  NONE_E = 0, NODES_E = 1 << 0, EDGES_E = 1 << 1, FACES_E = 1 << 2,
  CELLS_E = 1 << 3, ELEMS_E = 1 << 4, DELEMS_E = 1 << 5, ENODES_E = 1 << 6,
  ALL_ELEMENTS_E = NODES_E | EDGES_E | FACES_E | CELLS_E | ENODES_E | ELEMS_E | DELEMS_E, NORMALS_E = 1 << 7, NODE_NEIGHBORS_E = 1 << 8, ELEM_NEIGHBORS_E = 1 << 9,
  NEIGHBORS_E = NODE_NEIGHBORS_E | ELEM_NEIGHBORS_E, NODE_LOCATE_E = 1 << 10, ELEM_LOCATE_E = 1 << 11, LOCATE_E = NODE_LOCATE_E | ELEM_LOCATE_E,
  EPSILON_E = 1 << 12, BOUNDING_BOX_E = 1 << 12, FIND_CLOSEST_NODE_E = 1 << 13, FIND_CLOSEST_ELEM_E = 1 << 14,
  FIND_CLOSEST_E = FIND_CLOSEST_NODE_E | FIND_CLOSEST_ELEM_E
}
 Synchronize system. More...
 
- Public Types inherited from Datatype
typedef HasIntegerId::id_type id_type
 
- Public Types inherited from HasId< IdType, IdGenerator >
typedef IdType id_type
 
- Public Types inherited from MeshTraits< VMesh >
typedef SCIRun::mask_type mask_type
 
typedef SCIRun::index_type under_type
 
typedef SCIRun::index_type index_type
 
typedef SCIRun::index_type size_type
 
typedef std::vector< index_typearray_type
 
typedef std::vector< size_typedimension_type
 
typedef boost::shared_ptr
< MeshFacade< VMesh > > 
MeshFacadeHandle
 

Public Member Functions

 StructCurveMesh ()
 
 StructCurveMesh (size_type n)
 
 StructCurveMesh (const StructCurveMesh &copy)
 
virtual StructCurveMeshclone () const
 
virtual ~StructCurveMesh ()
 
double get_cord_length () const
 get the mesh statistics More...
 
virtual Core::Geometry::BBox get_bounding_box () const
 
virtual void transform (const Core::Geometry::Transform &t)
 
virtual bool get_dim (std::vector< size_type > &) const
 
virtual void set_dim (std::vector< size_type > dims)
 
virtual int topology_geometry () const
 
void get_nodes (typename ScanlineMesh< Basis >::Node::array_type &, typename ScanlineMesh< Basis >::Edge::index_type) const
 get the child elements of the given index More...
 
void get_nodes (typename ScanlineMesh< Basis >::Node::array_type &, typename ScanlineMesh< Basis >::Face::index_type) const
 
void get_nodes (typename ScanlineMesh< Basis >::Node::array_type &, typename ScanlineMesh< Basis >::Cell::index_type) const
 
void get_edges (typename ScanlineMesh< Basis >::Edge::array_type &, typename ScanlineMesh< Basis >::Face::index_type) const
 
void get_edges (typename ScanlineMesh< Basis >::Edge::array_type &, typename ScanlineMesh< Basis >::Cell::index_type) const
 
void get_edges (typename ScanlineMesh< Basis >::Edge::array_type &a, typename ScanlineMesh< Basis >::Edge::index_type idx) const
 
double get_size (typename ScanlineMesh< Basis >::Node::index_type) const
 Get the size of an elemnt (length, area, volume) More...
 
double get_size (typename ScanlineMesh< Basis >::Edge::index_type idx) const
 
double get_size (typename ScanlineMesh< Basis >::Face::index_type) const
 
double get_size (typename ScanlineMesh< Basis >::Cell::index_type) const
 
double get_length (typename ScanlineMesh< Basis >::Edge::index_type idx) const
 
double get_area (typename ScanlineMesh< Basis >::Face::index_type idx) const
 
double get_volume (typename ScanlineMesh< Basis >::Cell::index_type idx) const
 
int get_valence (typename ScanlineMesh< Basis >::Node::index_type idx) const
 
int get_valence (typename ScanlineMesh< Basis >::Edge::index_type) const
 
int get_valence (typename ScanlineMesh< Basis >::Face::index_type) const
 
int get_valence (typename ScanlineMesh< Basis >::Cell::index_type) const
 
void get_center (Core::Geometry::Point &, const typename ScanlineMesh< Basis >::Node::index_type &) const
 get the center point (in object space) of an element More...
 
void get_center (Core::Geometry::Point &, const typename ScanlineMesh< Basis >::Edge::index_type &) const
 
void get_center (Core::Geometry::Point &, const typename ScanlineMesh< Basis >::Face::index_type &) const
 
void get_center (Core::Geometry::Point &, const typename ScanlineMesh< Basis >::Cell::index_type &) const
 
bool locate (typename ScanlineMesh< Basis >::Node::index_type &idx, const Core::Geometry::Point &point) const
 
bool locate (typename ScanlineMesh< Basis >::Edge::index_type &idx, const Core::Geometry::Point &point) const
 
bool locate (typename ScanlineMesh< Basis >::Face::index_type &, const Core::Geometry::Point &) const
 
bool locate (typename ScanlineMesh< Basis >::Cell::index_type &, const Core::Geometry::Point &) const
 
bool locate (typename ScanlineMesh< Basis >::Elem::index_type &idx, std::vector< double > &coords, const Core::Geometry::Point &point)
 
int get_weights (const Core::Geometry::Point &, typename ScanlineMesh< Basis >::Node::array_type &, double *w)
 
int get_weights (const Core::Geometry::Point &, typename ScanlineMesh< Basis >::Edge::array_type &, double *w)
 
int get_weights (const Core::Geometry::Point &, typename ScanlineMesh< Basis >::Face::array_type &, double *)
 
int get_weights (const Core::Geometry::Point &, typename ScanlineMesh< Basis >::Cell::array_type &, double *)
 
void get_point (Core::Geometry::Point &p, typename ScanlineMesh< Basis >::Node::index_type i) const
 
void set_point (const Core::Geometry::Point &p, typename ScanlineMesh< Basis >::Node::index_type i)
 
void get_random_point (Core::Geometry::Point &p, const typename ScanlineMesh< Basis >::Elem::index_type idx, FieldRNG &rng) const
 
void get_normal (Core::Geometry::Vector &, typename ScanlineMesh< Basis >::Node::index_type) const
 
void get_normal (Core::Geometry::Vector &, std::vector< double > &, typename ScanlineMesh< Basis >::Elem::index_type, unsigned int)
 
void pwl_approx_edge (std::vector< std::vector< double > > &coords, typename ScanlineMesh< Basis >::Elem::index_type, unsigned int, unsigned int div_per_unit) const
 piecewise linear approximation of an edge. More...
 
void pwl_approx_face (std::vector< std::vector< std::vector< double > > > &, typename ScanlineMesh< Basis >::Elem::index_type, typename ScanlineMesh< Basis >::Face::index_type, unsigned int) const
 
template<class VECTOR , class INDEX >
bool get_coords (VECTOR &coords, const Core::Geometry::Point &p, INDEX idx) const
 
template<class VECTOR , class INDEX >
void interpolate (Core::Geometry::Point &pt, const VECTOR &coords, INDEX idx) const
 
template<class VECTOR1 , class VECTOR2 >
void derivate (const VECTOR1 &coords, typename ScanlineMesh< Basis >::Elem::index_type idx, VECTOR2 &J) const
 
template<class VECTOR >
double det_jacobian (const VECTOR &coords, typename ScanlineMesh< Basis >::Elem::index_type idx) const
 
template<class VECTOR >
void jacobian (const VECTOR &coords, typename ScanlineMesh< Basis >::Elem::index_type idx, double *J) const
 
template<class VECTOR >
double inverse_jacobian (const VECTOR &coords, typename ScanlineMesh< Basis >::Elem::index_type idx, double *Ji) const
 
template<class INDEX >
double scaled_jacobian_metric (INDEX idx) const
 
template<class INDEX >
double jacobian_metric (INDEX idx) const
 
template<class INDEX >
bool locate_node (INDEX &idx, const Core::Geometry::Point &p) const
 
template<class INDEX >
bool locate_elem (INDEX &idx, const Core::Geometry::Point &p) const
 
template<class INDEX , class ARRAY >
bool locate_elem (INDEX &idx, ARRAY &coords, const Core::Geometry::Point &p) const
 
template<class INDEX >
bool find_closest_node (double &pdist, Core::Geometry::Point &result, INDEX &idx, const Core::Geometry::Point &point) const
 
template<class INDEX >
bool find_closest_node (double &pdist, Core::Geometry::Point &result, INDEX &idx, const Core::Geometry::Point &point, double maxdist) const
 Find the closest element to a point. More...
 
template<class INDEX , class ARRAY >
bool find_closest_elem (double &pdist, Core::Geometry::Point &result, ARRAY &coords, INDEX &idx, const Core::Geometry::Point &p) const
 Find the closest element to a point. More...
 
template<class INDEX , class ARRAY >
bool find_closest_elem (double &pdist, Core::Geometry::Point &result, ARRAY &coords, INDEX &idx, const Core::Geometry::Point &p, double maxdist) const
 Find the closest element to a point. More...
 
template<class INDEX >
bool find_closest_elem (double &pdist, Core::Geometry::Point &result, INDEX &elem, const Core::Geometry::Point &p) const
 
template<class ARRAY >
bool find_closest_elems (double &pdist, Core::Geometry::Point &result, ARRAY &elems, const Core::Geometry::Point &p) const
 Find the closest elements to a point. More...
 
virtual void io (Piostream &)
 Export this class using the old Pio system. More...
 
virtual const TypeDescriptionget_type_description () const
 
std::vector
< Core::Geometry::Point > & 
get_points ()
 
virtual bool synchronize (mask_type sync)
 
virtual bool unsynchronize (mask_type sync)
 
bool clear_synchronization ()
 
double get_epsilon () const
 
- Public Member Functions inherited from ScanlineMesh< Basis >
 ScanlineMesh ()
 
 ScanlineMesh (index_type nx, const Core::Geometry::Point &min, const Core::Geometry::Point &max)
 
 ScanlineMesh (ScanlineMesh *mh, index_type offset, index_type nx)
 
 ScanlineMesh (const ScanlineMesh &copy)
 
virtual ~ScanlineMesh ()
 
virtual VMeshvmesh ()
 Access point to virtual interface. More...
 
virtual MeshFacadeHandle getFacade () const
 
virtual int basis_order ()
 
virtual bool has_normals () const
 
virtual bool has_face_normals () const
 
virtual bool is_editable () const
 
index_type get_min_i () const
 get the mesh statistics More...
 
bool get_min (std::vector< index_type > &) const
 
size_type get_ni () const
 
Core::Geometry::Vector diagonal () const
 
virtual void get_canonical_transform (Core::Geometry::Transform &t)
 
void set_min_i (index_type i)
 set the mesh statistics More...
 
void set_min (std::vector< index_type > mins)
 
void set_ni (size_type i)
 
void begin (typename Node::iterator &) const
 
void begin (typename Edge::iterator &) const
 
void begin (typename Face::iterator &) const
 
void begin (typename Cell::iterator &) const
 
void end (typename Node::iterator &) const
 
void end (typename Edge::iterator &) const
 
void end (typename Face::iterator &) const
 
void end (typename Cell::iterator &) const
 
void size (typename Node::size_type &) const
 
void size (typename Edge::size_type &) const
 
void size (typename Face::size_type &) const
 
void size (typename Cell::size_type &) const
 
void to_index (typename Node::index_type &index, index_type i) const
 
void to_index (typename Edge::index_type &index, index_type i) const
 
void to_index (typename Face::index_type &, index_type) const
 
void to_index (typename Cell::index_type &, index_type) const
 
void get_nodes (typename Node::array_type &, typename Edge::index_type) const
 get the child elements of the given index More...
 
void get_nodes (typename Node::array_type &, typename Face::index_type) const
 
void get_nodes (typename Node::array_type &, typename Cell::index_type) const
 
void get_edges (typename Edge::array_type &, typename Edge::index_type) const
 
void get_edges (typename Edge::array_type &, typename Face::index_type) const
 
void get_edges (typename Edge::array_type &, typename Cell::index_type) const
 
void get_faces (typename Face::array_type &, typename Elem::index_type) const
 
void get_elems (typename Elem::array_type &result, typename Node::index_type idx) const
 get the parent element(s) of the given index More...
 
void get_elems (typename Elem::array_type &, typename Edge::index_type) const
 
void get_elems (typename Elem::array_type &, typename Face::index_type) const
 
void get_delems (typename DElem::array_type &result, typename Elem::index_type idx) const
 Wrapper to get the derivative elements from this element. More...
 
double get_size (typename Node::index_type) const
 Get the size of an elemnt (length, area, volume) More...
 
double get_size (typename Edge::index_type idx) const
 
double get_size (typename Face::index_type) const
 
double get_size (typename Cell::index_type) const
 
double get_length (typename Edge::index_type idx) const
 
double get_area (typename Face::index_type idx) const
 
double get_volume (typename Cell::index_type) const
 
int get_valence (typename Node::index_type idx) const
 
int get_valence (typename Edge::index_type) const
 
int get_valence (typename Face::index_type) const
 
int get_valence (typename Cell::index_type) const
 
void get_center (Core::Geometry::Point &, typename Node::index_type) const
 get the center point (in object space) of an element More...
 
void get_center (Core::Geometry::Point &, typename Edge::index_type) const
 
void get_center (Core::Geometry::Point &, typename Face::index_type) const
 
void get_center (Core::Geometry::Point &, typename Cell::index_type) const
 
bool locate (typename Node::index_type &, const Core::Geometry::Point &) const
 
bool locate (typename Edge::index_type &, const Core::Geometry::Point &) const
 
bool locate (typename Face::index_type &, const Core::Geometry::Point &) const
 
bool locate (typename Cell::index_type &, const Core::Geometry::Point &) const
 
bool locate (typename Elem::index_type &, std::vector< double > &coords, const Core::Geometry::Point &) const
 
int get_weights (const Core::Geometry::Point &p, typename Node::array_type &l, double *w)
 
int get_weights (const Core::Geometry::Point &p, typename Edge::array_type &l, double *w)
 
int get_weights (const Core::Geometry::Point &, typename Face::array_type &, double *)
 
int get_weights (const Core::Geometry::Point &, typename Cell::array_type &, double *)
 
void get_random_point (Core::Geometry::Point &p, typename Elem::index_type i, FieldRNG &rng) const
 
void get_point (Core::Geometry::Point &p, typename Node::index_type i) const
 
void get_normal (Core::Geometry::Vector &, typename Node::index_type) const
 
void get_normal (Core::Geometry::Vector &, std::vector< double > &, typename Elem::index_type, unsigned int)
 
Core::Geometry::Transformget_transform ()
 
Core::Geometry::Transformset_transform (const Core::Geometry::Transform &trans)
 
virtual int dimensionality () const
 
Basis & get_basis ()
 
void pwl_approx_edge (std::vector< std::vector< double > > &coords, typename Elem::index_type, unsigned int, unsigned int div_per_unit) const
 piecewise linear approximation of an edge. More...
 
void pwl_approx_face (std::vector< std::vector< std::vector< double > > > &, typename Elem::index_type, typename Face::index_type, unsigned int) const
 
bool clear_synchronization ()
 
template<class VECTOR >
bool get_coords (VECTOR &coords, const Core::Geometry::Point &p, typename Elem::index_type idx) const
 
template<class VECTOR >
void interpolate (Core::Geometry::Point &pt, const VECTOR &coords, typename Elem::index_type idx) const
 
template<class VECTOR1 , class VECTOR2 >
void derivate (const VECTOR1 &coords, typename Elem::index_type idx, VECTOR2 &J) const
 
template<class VECTOR >
double det_jacobian (const VECTOR &coords, typename Elem::index_type idx) const
 
template<class VECTOR >
void jacobian (const VECTOR &coords, typename Elem::index_type idx, double *J) const
 
template<class VECTOR >
double inverse_jacobian (const VECTOR &coords, typename Elem::index_type idx, double *Ji) const
 
double scaled_jacobian_metric (typename Elem::index_type) const
 
double jacobian_metric (typename Elem::index_type) const
 
double get_epsilon () const
 
virtual std::string dynamic_type_name () const
 
template<class INDEX >
bool find_closest_node (double &pdist, Core::Geometry::Point &result, INDEX &node, const Core::Geometry::Point &p, double maxdist) const
 
template<class INDEX >
bool find_closest_node (double &pdist, Core::Geometry::Point &result, INDEX &node, const Core::Geometry::Point &p) const
 
template<class INDEX , class ARRAY >
bool find_closest_elem (double &pdist, Core::Geometry::Point &result, ARRAY &coords, INDEX &elem, const Core::Geometry::Point &p) const
 
template<class INDEX , class ARRAY >
bool find_closest_elem (double &pdist, Core::Geometry::Point &result, ARRAY &coords, INDEX &elem, const Core::Geometry::Point &p, double maxdist) const
 
template<class INDEX >
bool find_closest_elem (double &pdist, Core::Geometry::Point &result, INDEX &elem, const Core::Geometry::Point &p) const
 
template<class ARRAY >
bool find_closest_elems (double &pdist, Core::Geometry::Point &result, ARRAY &elems, const Core::Geometry::Point &p) const
 
- Public Member Functions inherited from Mesh
 Mesh ()
 
 Mesh (const Mesh &copy)
 
virtual ~Mesh ()
 
- Public Member Functions inherited from Datatype
 Datatype ()
 
virtual ~Datatype ()
 
 Datatype (const Datatype &other)
 
Datatypeoperator= (const Datatype &rhs)
 
template<typename T >
const T * as () const
 
- Public Member Functions inherited from Persistent
virtual ~Persistent ()
 
- Public Member Functions inherited from HasId< IdType, IdGenerator >
 HasId ()
 
IdType id () const
 

Static Public Member Functions

static const std::string type_name (int n=-1)
 Core functionality for getting the name of a templated mesh class. More...
 
static Persistentmaker ()
 This function returns a maker for Pio. More...
 
static MeshHandle mesh_maker ()
 This function returns a handle for the virtual interface. More...
 
static MeshHandle structcurve_maker (size_type x)
 This function returns a handle for the virtual interface. More...
 
- Static Public Member Functions inherited from ScanlineMesh< Basis >
static const std::string type_name (int n=-1)
 Core functionality for getting the name of a templated mesh class. More...
 
static const TypeDescriptionnode_type_description ()
 
static const TypeDescriptionedge_type_description ()
 
static const TypeDescriptionface_type_description ()
 
static const TypeDescriptioncell_type_description ()
 
static const TypeDescriptionelem_type_description ()
 
static Persistentmaker ()
 This function returns a maker for Pio. More...
 
static MeshHandle mesh_maker ()
 This function returns a handle for the virtual interface. More...
 
static MeshHandle scanline_maker (size_type x, const Core::Geometry::Point &min, const Core::Geometry::Point &max)
 This function returns a handle for the virtual interface. More...
 
- Static Public Member Functions inherited from Mesh
static const std::string type_name (int n=-1)
 
- Static Public Member Functions inherited from Persistent
static PersistentTypeIDPtr find_derived (const std::string &classname, const std::string &basename)
 
static bool is_base_of (const std::string &parent, const std::string &type)
 
static void add_class (const std::string &type, const std::string &parent, Persistent *(*maker)(), Persistent *(*bc_maker1)()=0, Persistent *(*bc_maker2)()=0)
 
static void add_mesh_class (const std::string &type, Persistent *(*maker)(), Persistent *(*bc_maker1)()=0, Persistent *(*bc_maker2)()=0)
 
static void add_field_class (const std::string &type, Persistent *(*maker)(), Persistent *(*bc_maker1)()=0, Persistent *(*bc_maker2)()=0)
 

Static Public Attributes

static PersistentTypeID scanline_typeid
 
- Static Public Attributes inherited from ScanlineMesh< Basis >
static PersistentTypeID scanline_typeid
 
- Static Public Attributes inherited from Mesh
static PersistentTypeID type_id
 

Friends

template<class MESH >
class VStructCurveMesh
 Make sure the virtual interface has access. More...
 
class ElemData
 

Additional Inherited Members

- Protected Member Functions inherited from ScanlineMesh< Basis >
void compute_jacobian ()
 
- Protected Attributes inherited from ScanlineMesh< Basis >
index_type min_i_
 the min typename Node::index_type ( incase this is a subLattice ) More...
 
size_type ni_
 
Core::Geometry::Transform transform_
 the object space extents of a ScanlineMesh More...
 
Basis basis_
 the basis fn More...
 
boost::shared_ptr< VMeshvmesh_
 
double jacobian_ [9]
 
double inverse_jacobian_ [9]
 
double det_jacobian_
 
double scaled_jacobian_
 
double det_inverse_jacobian_
 

Detailed Description

template<class Basis>
class SCIRun::StructCurveMesh< Basis >

Declarations for virtual interface.

Functions for creating the virtual interface Declare the functions that instantiate the virtual interface

These declarations are needed for a combined dynamic compilation as as well as virtual functions solution. Declare that these can be found in a library that is already precompiled. So dynamic compilation will not instantiate them again.

Member Typedef Documentation

Types that change depending on 32 or 64bits.

Constructor & Destructor Documentation

Create a new virtual interface for this copy all pointers have changed hence create a new virtual interface class

StructCurveMesh ( size_type  n)
explicit

Create a new virtual interface for this copy all pointers have changed hence create a new virtual interface class

StructCurveMesh ( const StructCurveMesh< Basis > &  copy)

Create a new virtual interface for this copy all pointers have changed hence create a new virtual interface class

virtual ~StructCurveMesh ( )
inlinevirtual

Member Function Documentation

bool clear_synchronization ( )
virtual StructCurveMesh* clone ( ) const
inlinevirtual

Reimplemented from ScanlineMesh< Basis >.

void derivate ( const VECTOR1 &  coords,
typename ScanlineMesh< Basis >::Elem::index_type  idx,
VECTOR2 &  J 
) const
inline

Interpolate the derivate of the function, This infact will return the ! jacobian of the local to global coordinate transformation. This function ! is mainly intended for the non linear elements

double det_jacobian ( const VECTOR &  coords,
typename ScanlineMesh< Basis >::Elem::index_type  idx 
) const
inline

Get the determinant of the jacobian, which is the local volume of an element ! and is intended to help with the integration of functions over an element.

bool find_closest_elem ( double &  pdist,
Core::Geometry::Point result,
ARRAY &  coords,
INDEX &  idx,
const Core::Geometry::Point p 
) const
inline

Find the closest element to a point.

bool find_closest_elem ( double &  pdist,
Core::Geometry::Point result,
ARRAY &  coords,
INDEX &  idx,
const Core::Geometry::Point p,
double  maxdist 
) const
inline

Find the closest element to a point.

No elements, none that can be closest

Check whether first guess is OK

Loop through all elements to find closest

bool find_closest_elem ( double &  pdist,
Core::Geometry::Point result,
INDEX &  elem,
const Core::Geometry::Point p 
) const
inline
bool find_closest_elems ( double &  pdist,
Core::Geometry::Point result,
ARRAY &  elems,
const Core::Geometry::Point p 
) const
inline

Find the closest elements to a point.

No elements, none that is closest

bool find_closest_node ( double &  pdist,
Core::Geometry::Point result,
INDEX &  idx,
const Core::Geometry::Point point 
) const
inline
bool find_closest_node ( double &  pdist,
Core::Geometry::Point result,
INDEX &  idx,
const Core::Geometry::Point point,
double  maxdist 
) const
inline

Find the closest element to a point.

No nodes, so none is closest

Check whether first estimate is the one we are looking for

Loop through all nodes to find the one that is closest

double get_area ( typename ScanlineMesh< Basis >::Face::index_type  idx) const
inline
Core::Geometry::BBox get_bounding_box ( ) const
virtual

Reimplemented from ScanlineMesh< Basis >.

void get_center ( Core::Geometry::Point result,
const typename ScanlineMesh< Basis >::Node::index_type idx 
) const

get the center point (in object space) of an element

void get_center ( Core::Geometry::Point result,
const typename ScanlineMesh< Basis >::Edge::index_type idx 
) const
void get_center ( Core::Geometry::Point ,
const typename ScanlineMesh< Basis >::Face::index_type  
) const
inline
void get_center ( Core::Geometry::Point ,
const typename ScanlineMesh< Basis >::Cell::index_type  
) const
inline
bool get_coords ( VECTOR &  coords,
const Core::Geometry::Point p,
INDEX  idx 
) const
inline

Get the local coordinates for a certain point within an element This function uses a couple of newton iterations to find the local ! coordinate of a point

double get_cord_length ( ) const

get the mesh statistics

bool get_dim ( std::vector< size_type > &  array) const
virtual

Reimplemented from ScanlineMesh< Basis >.

void get_edges ( typename ScanlineMesh< Basis >::Edge::array_type ,
typename ScanlineMesh< Basis >::Face::index_type   
) const
inline
void get_edges ( typename ScanlineMesh< Basis >::Edge::array_type ,
typename ScanlineMesh< Basis >::Cell::index_type   
) const
inline
void get_edges ( typename ScanlineMesh< Basis >::Edge::array_type a,
typename ScanlineMesh< Basis >::Edge::index_type  idx 
) const
inline
double get_epsilon ( ) const
double get_length ( typename ScanlineMesh< Basis >::Edge::index_type  idx) const
inline
void get_nodes ( typename ScanlineMesh< Basis >::Node::array_type array,
typename ScanlineMesh< Basis >::Edge::index_type  idx 
) const

get the child elements of the given index

void get_nodes ( typename ScanlineMesh< Basis >::Node::array_type ,
typename ScanlineMesh< Basis >::Face::index_type   
) const
inline
void get_nodes ( typename ScanlineMesh< Basis >::Node::array_type ,
typename ScanlineMesh< Basis >::Cell::index_type   
) const
inline
void get_normal ( Core::Geometry::Vector ,
typename ScanlineMesh< Basis >::Node::index_type   
) const
inline
void get_normal ( Core::Geometry::Vector ,
std::vector< double > &  ,
typename ScanlineMesh< Basis >::Elem::index_type  ,
unsigned  int 
)
inline
void get_point ( Core::Geometry::Point p,
typename ScanlineMesh< Basis >::Node::index_type  i 
) const
inline
std::vector<Core::Geometry::Point>& get_points ( )
inline
void get_random_point ( Core::Geometry::Point p,
const typename ScanlineMesh< Basis >::Elem::index_type  idx,
FieldRNG rng 
) const
double get_size ( typename ScanlineMesh< Basis >::Node::index_type  ) const
inline

Get the size of an elemnt (length, area, volume)

double get_size ( typename ScanlineMesh< Basis >::Edge::index_type  idx) const
inline
double get_size ( typename ScanlineMesh< Basis >::Face::index_type  ) const
inline
double get_size ( typename ScanlineMesh< Basis >::Cell::index_type  ) const
inline
const TypeDescription * get_type_description ( ) const
virtual

Type description, used for finding names of the mesh class for dynamic compilation purposes. Soem of this should be obsolete

Reimplemented from ScanlineMesh< Basis >.

int get_valence ( typename ScanlineMesh< Basis >::Node::index_type  idx) const
inline
int get_valence ( typename ScanlineMesh< Basis >::Edge::index_type  ) const
inline
int get_valence ( typename ScanlineMesh< Basis >::Face::index_type  ) const
inline
int get_valence ( typename ScanlineMesh< Basis >::Cell::index_type  ) const
inline
double get_volume ( typename ScanlineMesh< Basis >::Cell::index_type  idx) const
inline
int get_weights ( const Core::Geometry::Point p,
typename ScanlineMesh< Basis >::Node::array_type l,
double *  w 
)
int get_weights ( const Core::Geometry::Point p,
typename ScanlineMesh< Basis >::Edge::array_type l,
double *  w 
)
int get_weights ( const Core::Geometry::Point ,
typename ScanlineMesh< Basis >::Face::array_type ,
double *   
)
inline
int get_weights ( const Core::Geometry::Point ,
typename ScanlineMesh< Basis >::Cell::array_type ,
double *   
)
inline
void interpolate ( Core::Geometry::Point pt,
const VECTOR &  coords,
INDEX  idx 
) const
inline

Find the location in the global coordinate system for a local coordinate ! This function is the opposite of get_coords.

double inverse_jacobian ( const VECTOR &  coords,
typename ScanlineMesh< Basis >::Elem::index_type  idx,
double *  Ji 
) const
inline

Get the inverse jacobian of the transformation. This one is needed to ! translate local gradients into global gradients. Hence it is crucial for ! calculating gradients of fields, or constructing finite elements.

void io ( Piostream stream)
virtual

Export this class using the old Pio system.

IO data members, in order

Reimplemented from ScanlineMesh< Basis >.

void jacobian ( const VECTOR &  coords,
typename ScanlineMesh< Basis >::Elem::index_type  idx,
double *  J 
) const
inline

Get the jacobian of the transformation. In case one wants the non inverted ! version of this matrix. This is currentl here for completeness of the ! interface

double jacobian_metric ( INDEX  idx) const
inline
bool locate ( typename ScanlineMesh< Basis >::Node::index_type idx,
const Core::Geometry::Point point 
) const
inline
bool locate ( typename ScanlineMesh< Basis >::Edge::index_type idx,
const Core::Geometry::Point point 
) const
inline
bool locate ( typename ScanlineMesh< Basis >::Face::index_type ,
const Core::Geometry::Point  
) const
inline
bool locate ( typename ScanlineMesh< Basis >::Cell::index_type ,
const Core::Geometry::Point  
) const
inline
bool locate ( typename ScanlineMesh< Basis >::Elem::index_type idx,
std::vector< double > &  coords,
const Core::Geometry::Point point 
)
inline
bool locate_elem ( INDEX &  idx,
const Core::Geometry::Point p 
) const
inline

If there are no elements, one cannot find a point inside

Check whether the estimate given in idx is the point we are looking for

Loop over all nodes to find one that finds

bool locate_elem ( INDEX &  idx,
ARRAY &  coords,
const Core::Geometry::Point p 
) const
inline

If there are no elements, one cannot find a point inside

Check whether the estimate given in idx is the point we are looking for

Loop over all nodes to find one that finds

bool locate_node ( INDEX &  idx,
const Core::Geometry::Point p 
) const
inline

If there are no nodes, return false, otherwise there will always be a node that is closest

static Persistent* maker ( )
inlinestatic

This function returns a maker for Pio.

static MeshHandle mesh_maker ( )
inlinestatic

This function returns a handle for the virtual interface.

void pwl_approx_edge ( std::vector< std::vector< double > > &  coords,
typename ScanlineMesh< Basis >::Elem::index_type  ,
unsigned  int,
unsigned int  div_per_unit 
) const
inline

piecewise linear approximation of an edge.

Generate the list of points that make up a sufficiently accurate

Needs to match unit_edges in Basis/QuadBilinearLgn.cc compare get_nodes order to the basis order

void pwl_approx_face ( std::vector< std::vector< std::vector< double > > > &  ,
typename ScanlineMesh< Basis >::Elem::index_type  ,
typename ScanlineMesh< Basis >::Face::index_type  ,
unsigned  int 
) const
inline

Generate the list of points that make up a sufficiently accurate piecewise linear approximation of an face.

double scaled_jacobian_metric ( INDEX  idx) const
inline
virtual void set_dim ( std::vector< size_type dims)
inlinevirtual

Create a new virtual interface for this copy all pointers have changed hence create a new virtual interface class

Reimplemented from ScanlineMesh< Basis >.

void set_point ( const Core::Geometry::Point p,
typename ScanlineMesh< Basis >::Node::index_type  i 
)
inline
static MeshHandle structcurve_maker ( size_type  x)
inlinestatic

This function returns a handle for the virtual interface.

bool synchronize ( mask_type  )
virtual

Synchronize functions, as there is nothing to synchronize, these functions always succeed

Reimplemented from ScanlineMesh< Basis >.

virtual int topology_geometry ( ) const
inlinevirtual

Reimplemented from ScanlineMesh< Basis >.

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

Reimplemented from ScanlineMesh< Basis >.

const std::string type_name ( int  n = -1)
static

Core functionality for getting the name of a templated mesh class.

bool unsynchronize ( mask_type  sync)
virtual

Reimplemented from ScanlineMesh< Basis >.

Friends And Related Function Documentation

friend class ElemData
friend
friend class VStructCurveMesh
friend

Make sure the virtual interface has access.

Member Data Documentation

PersistentTypeID scanline_typeid
static

These IDs are created as soon as this class will be instantiated The first one is for Pio and the second for the virtual interface ! These are currently different as they serve different needs. static PersistentTypeID type_idts;


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