Hermes2D  2.0
Hermes::Hermes2D::Views::Vectorizer Class Reference

"Vectorizer" is a Linearizer for vector solutions. The only difference is that linearized vertices are vector-valued. Also, regularization of the resulting mesh is not attempted. The class can handle different meshes in both X and Y components. More...

#include <vectorizer.h>

+ Inheritance diagram for Hermes::Hermes2D::Views::Vectorizer:

Public Member Functions

void process_solution (MeshFunction< double > *xsln, MeshFunction< double > *ysln, int xitem=H2D_FN_VAL_0, int yitem=H2D_FN_VAL_0, double eps=HERMES_EPS_NORMAL)
 
int get_num_vertices ()
 
double4 * get_vertices ()
 
int2 * get_dashes ()
 
int get_num_dashes ()
 
void calc_vertices_aabb (double *min_x, double *max_x, double *min_y, double *max_y) const
 Returns axis aligned bounding box (AABB) of vertices. Assumes lock.
 
void set_curvature_epsilon (double curvature_epsilon)
 
double get_curvature_epsilon ()
 Gets the 'curvature' epsilon determining the tolerance of catching the shape of curved elements.
 
void free ()
 Frees the instance.
 
- Public Member Functions inherited from Hermes::Hermes2D::Views::LinearizerBase
void set_max_absolute_value (double max_abs)
 
double get_min_value () const
 
double get_max_value () const
 
void lock_data () const
 
void unlock_data () const
 
int3 * get_triangles ()
 
int * get_triangle_markers ()
 
int get_num_triangles ()
 
int2 * get_edges ()
 
int * get_edge_markers ()
 
int get_num_edges ()
 
virtual bool is_empty ()
 
void free ()
 Frees the instance.
 

Protected Member Functions

int get_vertex (int p1, int p2, double x, double y, double xvalue, double yvalue)
 
int create_vertex (double x, double y, double xvalue, double yvalue)
 
void process_dash (int iv1, int iv2)
 
int add_vertex ()
 
void add_dash (int iv1, int iv2)
 
void process_triangle (MeshFunction< double > **fns, int iv0, int iv1, int iv2, int level, double *xval, double *yval, double *phx, double *phy, int *indices, bool curved)
 
void process_quad (MeshFunction< double > **fns, int iv0, int iv1, int iv2, int iv3, int level, double *xval, double *yval, double *phx, double *phy, int *indices, bool curved)
 
void find_min_max ()
 
- Protected Member Functions inherited from Hermes::Hermes2D::Views::LinearizerBase
 LinearizerBase (bool auto_max=true)
 
void process_edge (int iv1, int iv2, int marker)
 
void regularize_triangle (int iv0, int iv1, int iv2, int mid0, int mid1, int mid2, int marker)
 
int peek_vertex (int p1, int p2)
 
void add_edge (int iv1, int iv2, int marker)
 
void add_triangle (int iv0, int iv1, int iv2, int marker)
 
int hash (int p1, int p2)
 

Protected Attributes

double curvature_epsilon
 The 'curvature' epsilon.
 
int xitem
 
int component_x
 
int value_type_x
 
int yitem
 
int component_y
 
int value_type_y
 
double4 * verts
 vertices: (x, y, xvalue, yvalue) quadruples
 
int2 * dashes
 
int dashes_count
 Real numbers of vertices, triangles and edges, dashes.
 
int dashes_size
 Size of arrays of vertices, triangles and edges, dashes.
 
- Protected Attributes inherited from Hermes::Hermes2D::Views::LinearizerBase
bool empty
 
double max
 
bool auto_max
 
int3 * tris
 triangles: vertex index triplets
 
int * tri_markers
 triangle_markers: triangle markers, ordering equal to tris
 
int2 * edges
 edges: pairs of vertex indices
 
int * edge_markers
 edge_markers: edge markers, ordering equal to edges
 
int * hash_table
 hash table
 
int4 * info
 info[0] = p1, info[1] = p2, info[2] = next vertex in hash
 
int vertex_count
 
int triangle_count
 
int edges_count
 Real numbers of vertices, triangles and edges.
 
int vertex_size
 
int triangle_size
 
int edges_size
 Size of arrays of vertices, triangles and edges.
 
double eps
 
double min_val
 
double max_val
 
int del_slot
 free slot index after a triangle which was deleted
 
pthread_mutex_t data_mutex
 
Hermes::Exceptions::Exception * caughtException
 

Additional Inherited Members

- Static Protected Member Functions inherited from Hermes::Hermes2D::Views::LinearizerBase
static void calc_aabb (double *x, double *y, int stride, int num, double *min_x, double *max_x, double *min_y, double *max_y)
 Calculates AABB from an array of X-axis and Y-axis coordinates. The distance between values in the array is stride bytes.
 

Detailed Description

"Vectorizer" is a Linearizer for vector solutions. The only difference is that linearized vertices are vector-valued. Also, regularization of the resulting mesh is not attempted. The class can handle different meshes in both X and Y components.

Definition at line 32 of file vectorizer.h.

Member Function Documentation

void Vectorizer::set_curvature_epsilon ( double  curvature_epsilon)

Sets the threshold for how fine the output for curved elements.

Parameters
[in]curvature_epsilonThe 'curvature' epsilon determining the tolerance of catching the shape of curved elements. The smaller, the finer. Default value = 1e-3.

Definition at line 368 of file vectorizer.cpp.


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