Hermes2D
2.0
|
"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>
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. | |
![]() | |
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 () |
![]() | |
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. | |
![]() | |
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 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. | |
"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.
void Vectorizer::set_curvature_epsilon | ( | double | curvature_epsilon | ) |
Sets the threshold for how fine the output for curved elements.
[in] | curvature_epsilon | The '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.