1 #ifndef OMEGA_H_QUALITY_HPP
2 #define OMEGA_H_QUALITY_HPP
4 #include <Omega_h_shape.hpp>
9 OMEGA_H_INLINE Real mean_ratio(Real size, Real mean_squared_length) {
10 return power<2, dim>(size / equilateral_simplex_size(dim)) /
26 template <Int dim,
typename Metric>
27 OMEGA_H_INLINE Real metric_element_quality(
28 Few<Vector<dim>, dim + 1> p, Metric metric) {
29 auto b = simplex_basis<dim, dim>(p);
30 auto rs = simplex_size_from_basis(b);
31 auto s = metric_size<dim>(rs, metric);
33 auto ev = element_edge_vectors(p, b);
34 auto msl = mean_squared_metric_length(ev, metric);
35 return mean_ratio<dim>(s, msl);
38 template <Int space_dim, Int metric_dim>
43 : coords(mesh->coords()), metrics(metrics_in) {}
47 auto p = gather_vectors<space_dim + 1, space_dim>(coords, v);
48 auto ms = gather_symms<space_dim + 1, metric_dim>(metrics, v);
49 auto m = maxdet_metric(ms);
50 return metric_element_quality(p, m);
58 Reals get_1d_cavity_qualities(
Mesh* mesh, Int key_dim,
LOs keys2kds);
Definition: Omega_h_few.hpp:61
Definition: Omega_h_mesh.hpp:35
Definition: amr_mpi_test.cpp:6
Definition: Omega_h_quality.hpp:39