19 #ifndef __H2D_THREAD_LINEARIZER_H
20 #define __H2D_THREAD_LINEARIZER_H
25 #include "../function/mesh_function.h"
33 template<
typename LinearizerDataDimensions>
34 class HERMES_API LinearizerMultidimensional;
39 template<
typename LinearizerDataDimensions>
58 void deinit_processing();
64 int hash(
int p1,
int p2);
66 int peek_vertex(
int p1,
int p2);
69 void process_edge(
int iv1,
int iv2,
int marker);
71 void add_edge(
int iv1,
int iv2,
int marker);
73 void add_triangle(
int iv0,
int iv1,
int iv2,
int marker);
78 int get_vertex(
int p1,
int p2,
double x,
double y,
double* value);
83 void process_triangle(
int iv0,
int iv1,
int iv2,
int level);
87 void process_quad(
int iv0,
int iv1,
int iv2,
int iv3,
int level);
96 void split_decision(
int& split,
int iv0,
int iv1,
int iv2,
int iv3,
ElementMode2D mode,
const double** val,
double* phx,
double* phy,
unsigned short* indices)
const;
99 bool quad_flip(
int iv0,
int iv1,
int iv2,
int iv3)
const;
103 double max_value_approx;
106 void push_transforms(
int transform);
109 void pop_transforms();
113 void reallocate(MeshSharedPtr mesh);
124 typename LinearizerDataDimensions::triangle_t* triangles;
125 typename LinearizerDataDimensions::edge_t* edges;
135 typename LinearizerDataDimensions::vertex_t* vertices;
137 int* triangle_markers;
144 int vertex_count, triangle_count, edges_count;
146 int vertex_size, triangle_size, edges_size;
149 double midval[LinearizerDataDimensions::dimension + 2][5];
151 const double* val[LinearizerDataDimensions::dimension];
161 int item[LinearizerDataDimensions::dimension], component[LinearizerDataDimensions::dimension], value_type[LinearizerDataDimensions::dimension];
163 bool user_xdisp, user_ydisp;
167 double curvature_epsilon;
Stores one element of a mesh.
int3 internal_vertex_info_t
Typedefs used throughout the Linearizer functionality.
File containing LinearizerMultidimensional class.
File containing utilities for class.
int3 triangle_indices_t
Typedefs used throughout the Linearizer functionality.
Abstract class for criterion according to which the linearizer stops dividing elements at some point ...