18 #ifndef __H2D_LINEARIZER_UTILS_H
19 #define __H2D_LINEARIZER_UTILS_H
21 #include "hermes_common.h"
40 #ifndef LINEARIZER_DATA_TYPE
41 #define LINEARIZER_DATA_TYPE double
45 #ifndef LINEARIZER_DIRECTIONAL_QUAD_REFINEMENT_REQUIREMENT
46 #define LINEARIZER_DIRECTIONAL_QUAD_REFINEMENT_REQUIREMENT 5.0
50 #define MAX_LINEARIZER_DIVISION_LEVEL 6
53 template<
typename Scalar>
62 static const int dimension = 1;
64 typedef float3x3 triangle_t;
65 typedef float2x3 edge_t;
66 typedef float3 vertex_t;
73 static const int dimension = 1;
75 typedef double3x3 triangle_t;
76 typedef double2x3 edge_t;
77 typedef double3 vertex_t;
81 template<
typename Scalar>
90 static const int dimension = 2;
92 typedef float3x4 triangle_t;
93 typedef float2x4 edge_t;
94 typedef float4 vertex_t;
101 static const int dimension = 2;
103 typedef double3x4 triangle_t;
104 typedef double2x4 edge_t;
105 typedef double4 vertex_t;
113 template<
typename LinearizerDataDimensions>
122 double error_tolerance;
123 int refinement_level;
const double HERMES_EPS_LOW
Standard "quality" defining constants.
const double HERMES_EPS_VERYLOW
Standard "quality" defining constants.
int3 internal_vertex_info_t
Typedefs used throughout the Linearizer functionality.
const double HERMES_EPS_HIGH
Standard "quality" defining constants.
int3 triangle_indices_t
Typedefs used throughout the Linearizer functionality.
const double HERMES_EPS_VERYHIGH
Standard "quality" defining constants.
Adaptive Linearizer criterion - error tolerance (see further) where the element division stops Error ...
Typedefs used throughout the Linearizer functionality.
Typedefs used throughout the Linearizer functionality.
const double HERMES_EPS_NORMAL
Standard "quality" defining constants.
Simple Linearizer criterion - every element is refined exactly the same number of times...
Abstract class for criterion according to which the linearizer stops dividing elements at some point ...