Loading...
Searching...
No Matches
fekete.icc
Go to the documentation of this file.
#ifndef _RHEOLEF_FEKETE_ICC
#define _RHEOLEF_FEKETE_ICC
//
// compute the Fekete point set (see BriSomVia-2012)
//
// author: Pierre.Saramito@imag.fr
//
// date: 2 october 2017
//
#include "warburton.icc"
namespace rheolef {
template<class T>
void set_simplex_leb_gll (size_t degree, Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& pts);
// ---------------------------------------------------------------------------
// all cases
// ---------------------------------------------------------------------------
template<class T>
void
pointset_lagrange_fekete (
reference_element hat_K,
size_t degree,
Eigen::Matrix<point_basic<T>,Eigen::Dynamic,1>& hat_xnod,
bool map_on_reference_element = true)
{
hat_xnod.resize (reference_element::n_node(hat_K.variant(), degree));
if (degree == 0) {
reference_element_barycenter (hat_K, hat_xnod[0]);
return;
}
switch (hat_K.variant()) {
case reference_element::t:
set_simplex_leb_gll (degree, hat_xnod); break;
// ------------------------------------------------------------------
// others are provided with Warburton or Legendre node tensor product
// ------------------------------------------------------------------
case reference_element::p:
hat_xnod [0] = point_basic<T> (T(0)); break;
case reference_element::e:
warburton_e (degree, hat_xnod, map_on_reference_element); break;
case reference_element::q:
warburton_q (degree, hat_xnod, map_on_reference_element); break;
case reference_element::H:
warburton_H (degree, hat_xnod, map_on_reference_element); break;
case reference_element::P: // TODO: as triangle*Legendre_edge
warburton_P (degree, hat_xnod, map_on_reference_element); break;
case reference_element::T: // TODO: how to compute nodes ?
warburton_T (degree, hat_xnod, map_on_reference_element); break;
default: error_macro ("unexpected element type `"<<hat_K.name()<<"'");
}
}
} // namespace rheolef
#endif // _RHEOLEF_WARBURTON_ICC
rheolef::point_basic
Definition point.h:86
rheolef::reference_element
see the reference_element page for the full documentation
Definition reference_element.h:66
rheolef::reference_element::H
static const variant_type H
Definition reference_element.h:81
rheolef::reference_element::q
static const variant_type q
Definition reference_element.h:78
rheolef::reference_element::e
static const variant_type e
Definition reference_element.h:76
rheolef::reference_element::p
static const variant_type p
Definition reference_element.h:75
rheolef::reference_element::variant
variant_type variant() const
Definition reference_element.h:99
rheolef::reference_element::n_node
static size_type n_node(variant_type variant, size_type order)
Definition reference_element.cc:201
rheolef::reference_element::T
static const variant_type T
Definition reference_element.h:79
rheolef::reference_element::P
static const variant_type P
Definition reference_element.h:80
rheolef::reference_element::name
char name() const
Definition reference_element.h:100
rheolef::reference_element::t
static const variant_type t
Definition reference_element.h:77
error_macro
#define error_macro(message)
Definition dis_macros.h:49
T
Expr1::float_type T
Definition field_expr.h:230
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39
rheolef::warburton_T
void warburton_T(size_t degree, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &x, bool map_on_reference_element=true)
Definition warburton.icc:443
rheolef::reference_element_barycenter
void reference_element_barycenter(reference_element hat_K, point_basic< T > &c)
Definition reference_element_aux.icc:38
rheolef::set_simplex_leb_gll
void set_simplex_leb_gll(size_t degree, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &pts)
Definition set_simplex_leb_gll.cc:34
rheolef::pointset_lagrange_fekete
void pointset_lagrange_fekete(reference_element hat_K, size_t degree, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &hat_xnod, bool map_on_reference_element=true)
Definition fekete.icc:42
rheolef::warburton_H
void warburton_H(size_t degree, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &x, bool dummy=true)
Definition warburton.icc:91
rheolef::warburton_e
void warburton_e(size_t degree, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &x, bool map_on_reference_element=true)
Definition warburton.icc:45
rheolef::warburton_P
void warburton_P(size_t degree, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &x, bool map_on_reference_element=true)
Definition warburton.icc:276
rheolef::warburton_q
void warburton_q(size_t degree, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &x, bool dummy=true)
Definition warburton.icc:73
warburton.icc