Loading...
Searching...
No Matches
reference_element.h
Go to the documentation of this file.
#ifndef _RHEOLEF_REFERENCE_ELEMENT_H
#define _RHEOLEF_REFERENCE_ELEMENT_H
//
// This file is part of Rheolef.
//
// Copyright (C) 2000-2009 Pierre Saramito <Pierre.Saramito@imag.fr>
//
// Rheolef is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// Rheolef is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Rheolef; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// =========================================================================
// AUTHOR: Pierre.Saramito@imag.fr
// DATE: 30 november 2003
namespace rheolef {
} // namespace rheolef
#include "rheolef/point.h"
#include <array>
namespace rheolef {
// [verbatim_reference_element]
class reference_element {
public:
// typedefs:
typedef std::vector<int>::size_type size_type;
typedef size_type variant_type;
static const variant_type
p = 0,
e = 1,
t = 2,
q = 3,
T = 4,
P = 5,
H = 6,
max_variant = 7;
static const size_type max_side_by_variant = 6;
// allocators/deallocators:
reference_element (variant_type x = max_variant)
: _x(x) { assert_macro (x >= 0 && x <= max_variant, "invalid type " << x); }
// initializers:
void set_variant (variant_type x) { _x = x; }
void set_variant (size_type n_vertex, size_type dim) { _x = variant (n_vertex, dim); }
void set_name (char name);
// accessors:
variant_type variant() const { return _x; }
char name() const { return _name[_x % max_variant]; }
size_type dimension() const { return _dimension[_x]; }
size_type size() const { return _n_vertex[_x]; }
size_type n_vertex() const { return _n_vertex[_x]; }
size_type n_side() const { return dimension() > 0 ? n_subgeo (variant(), dimension()-1) : 0; }
size_type n_edge() const { return n_subgeo(1); }
size_type n_face() const { return n_subgeo(2); }
size_type n_subgeo_by_variant (size_type subgeo_variant) const {
return n_subgeo_by_variant(variant(), subgeo_variant); }
size_type n_subgeo(size_type subgeo_dim) const { return n_subgeo (variant(), subgeo_dim); }
reference_element subgeo (size_type subgeo_dim, size_type loc_isid) const {
if (dimension() == 0) return reference_element(reference_element::p);
if (dimension() == subgeo_dim) return *this;
reference_element hat_S;
size_type subgeo_n_vertex = subgeo_size (subgeo_dim, loc_isid);
hat_S.set_variant (subgeo_n_vertex, subgeo_dim);
return hat_S;
}
reference_element side (size_type loc_isid) const { return subgeo (dimension()-1, loc_isid); }
size_type subgeo_size (size_type subgeo_dim, size_type loc_isid) const {
return subgeo_n_node (_x, 1, subgeo_dim, loc_isid); }
size_type subgeo_local_vertex(size_type subgeo_dim, size_type loc_isid, size_type loc_jsidvert) const {
return subgeo_local_node (_x, 1, subgeo_dim, loc_isid, loc_jsidvert); }
size_type local_subgeo_index2index_by_variant (size_type subgeo_variant, size_type i) const {
return (variant() == P && subgeo_variant == q) ? i-2 : i; }
// TODO: use template<class T> instead of Float
const point_basic<Float>& vertex (size_type iloc) const;
friend Float measure (reference_element hat_K);
Float side_measure (size_type loc_isid) const;
void side_normal (size_type loc_isid, point_basic<Float>& hat_n) const;
// helpers:
static variant_type variant (char name);
static variant_type variant (size_type n_vertex, size_type dim);
static char name (variant_type variant) { return _name [variant]; }
static size_type dimension (variant_type variant) { return _dimension[variant]; }
static size_type n_vertex (variant_type variant) { return _n_vertex [variant]; }
static size_type n_node (variant_type variant, size_type order);
static size_type n_sub_edge (variant_type variant);
static size_type n_sub_face (variant_type variant);
static size_type n_subgeo (variant_type variant, size_type subgeo_dim);
static size_type subgeo_n_node (variant_type variant, size_type order, size_type subgeo_dim, size_type loc_isid);
static size_type subgeo_local_node (variant_type variant, size_type order, size_type subgeo_dim, size_type loc_isid, size_type loc_jsidnod);
static variant_type first_variant_by_dimension (size_type dim) {
return _first_variant_by_dimension[dim]; }
static variant_type last_variant_by_dimension (size_type dim) {
return _first_variant_by_dimension[dim+1]; }
static size_type first_inod_by_variant (variant_type variant, size_type order, variant_type subgeo_variant);
static size_type last_inod_by_variant (variant_type variant, size_type order, variant_type subgeo_variant)
{ return first_inod_by_variant (variant, order, subgeo_variant+1); }
static size_type first_inod (variant_type variant, size_type order, size_type subgeo_dim)
{ return first_inod_by_variant (variant, order, first_variant_by_dimension(subgeo_dim)); }
static size_type last_inod (variant_type variant, size_type order, size_type subgeo_dim)
{ return first_inod_by_variant (variant, order, last_variant_by_dimension(subgeo_dim)); }
static void init_local_nnode_by_variant (size_type order, std::array<size_type,reference_element::max_variant>& loc_nnod_by_variant);
static size_type n_subgeo_by_variant (size_type variant, size_type subgeo_variant)
{ return _n_subgeo_by_variant [variant] [subgeo_variant]; }
// [verbatim_reference_element]
protected:
// constants:
static const char _name [max_variant];
static const size_type _dimension [max_variant];
static const size_type _n_subgeo_by_variant [max_variant][max_variant];
static const size_type _n_vertex [max_variant];
static const variant_type _first_variant_by_dimension[5];
// data:
variant_type _x;
// [verbatim_reference_element_cont]
};
// [verbatim_reference_element_cont]
class reference_element_p {
public:
// typedefs:
typedef point_basic<size_t>::size_type size_type;
// static functions:
static size_type n_subgeo (size_type side_dim);
static size_type subgeo_n_node (size_type order, size_type side_dim, size_type loc_isid);
static size_type subgeo_local_node (size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod);
static size_type ilat2loc_inod (size_type order, const point_basic<size_type>& ilat);
static size_type first_inod_by_variant (size_type order, size_type subgeo_variant);
static const point_basic<Float>& vertex (size_type iloc);
static Float side_measure (size_type loc_isid);
static void side_normal (size_type loc_isid, point_basic<Float>& hat_n);
};
class reference_element_e {
public:
// typedefs:
typedef point_basic<size_t>::size_type size_type;
// static functions:
static size_type n_subgeo (size_type side_dim);
static size_type subgeo_n_node (size_type order, size_type side_dim, size_type loc_isid);
static size_type subgeo_local_node (size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod);
static size_type ilat2loc_inod (size_type order, const point_basic<size_type>& ilat);
static size_type first_inod_by_variant (size_type order, size_type subgeo_variant);
static const point_basic<Float>& vertex (size_type iloc);
static Float side_measure (size_type loc_isid);
static void side_normal (size_type loc_isid, point_basic<Float>& hat_n);
};
class reference_element_t {
public:
// typedefs:
typedef point_basic<size_t>::size_type size_type;
// static functions:
static size_type n_subgeo (size_type side_dim);
static size_type subgeo_n_node (size_type order, size_type side_dim, size_type loc_isid);
static size_type subgeo_local_node (size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod);
static size_type ilat2loc_inod (size_type order, const point_basic<size_type>& ilat);
static size_type first_inod_by_variant (size_type order, size_type subgeo_variant);
static const point_basic<Float>& vertex (size_type iloc);
static Float side_measure (size_type loc_isid);
static void side_normal (size_type loc_isid, point_basic<Float>& hat_n);
};
class reference_element_q {
public:
// typedefs:
typedef point_basic<size_t>::size_type size_type;
// static functions:
static size_type n_subgeo (size_type side_dim);
static size_type subgeo_n_node (size_type order, size_type side_dim, size_type loc_isid);
static size_type subgeo_local_node (size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod);
static size_type ilat2loc_inod (size_type order, const point_basic<size_type>& ilat);
static size_type first_inod_by_variant (size_type order, size_type subgeo_variant);
static const point_basic<Float>& vertex (size_type iloc);
static Float side_measure (size_type loc_isid);
static void side_normal (size_type loc_isid, point_basic<Float>& hat_n);
};
class reference_element_T {
public:
// typedefs:
typedef point_basic<size_t>::size_type size_type;
// static functions:
static size_type n_subgeo (size_type side_dim);
static size_type subgeo_n_node (size_type order, size_type side_dim, size_type loc_isid);
static size_type subgeo_local_node (size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod);
static size_type ilat2loc_inod (size_type order, const point_basic<size_type>& ilat);
static size_type first_inod_by_variant (size_type order, size_type subgeo_variant);
static size_type face2edge (size_type loc_iface, size_type loc_iface_jedg);
static int face2edge_orient (size_type loc_iface, size_type loc_iface_jedg);
static const point_basic<Float>& vertex (size_type iloc);
static Float side_measure (size_type loc_isid);
static void side_normal (size_type loc_isid, point_basic<Float>& hat_n);
};
class reference_element_P {
public:
// typedefs:
typedef point_basic<size_t>::size_type size_type;
// static functions:
static size_type n_subgeo (size_type side_dim);
static size_type subgeo_n_node (size_type order, size_type side_dim, size_type loc_isid);
static size_type subgeo_local_node (size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod);
static size_type ilat2loc_inod (size_type order, const point_basic<size_type>& ilat);
static size_type first_inod_by_variant (size_type order, size_type subgeo_variant);
static size_type face2edge (size_type loc_iface, size_type loc_iface_jedg);
static int face2edge_orient (size_type loc_iface, size_type loc_iface_jedg);
static const point_basic<Float>& vertex (size_type iloc);
static Float side_measure (size_type loc_isid);
static void side_normal (size_type loc_isid, point_basic<Float>& hat_n);
};
class reference_element_H {
public:
// typedefs:
typedef point_basic<size_t>::size_type size_type;
// static functions:
static size_type n_subgeo (size_type side_dim);
static size_type subgeo_n_node (size_type order, size_type side_dim, size_type loc_isid);
static size_type subgeo_local_node (size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod);
static size_type ilat2loc_inod (size_type order, const point_basic<size_type>& ilat);
static size_type first_inod_by_variant (size_type order, size_type subgeo_variant);
static size_type face2edge (size_type loc_iface, size_type loc_iface_jedg);
static int face2edge_orient (size_type loc_iface, size_type loc_iface_jedg);
static const point_basic<Float>& vertex (size_type iloc);
static Float side_measure (size_type loc_isid);
static void side_normal (size_type loc_isid, point_basic<Float>& hat_n);
};
} // namespace rheolef
#endif // _RHEOLEF_REFERENCE_ELEMENT_H
Float
see the Float page for the full documentation
rheolef::point_basic
Definition point.h:86
rheolef::point_basic::size_type
size_t size_type
Definition point.h:91
rheolef::reference_element_H
Definition reference_element.h:300
rheolef::reference_element_H::subgeo_n_node
static size_type subgeo_n_node(size_type order, size_type side_dim, size_type loc_isid)
Definition reference_element.cc:739
rheolef::reference_element_H::size_type
point_basic< size_t >::size_type size_type
Definition reference_element.h:305
rheolef::reference_element_H::n_subgeo
static size_type n_subgeo(size_type side_dim)
Definition reference_element.cc:728
rheolef::reference_element_H::face2edge
static size_type face2edge(size_type loc_iface, size_type loc_iface_jedg)
rheolef::reference_element_H::subgeo_local_node
static size_type subgeo_local_node(size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod)
Definition reference_element.cc:750
rheolef::reference_element_H::side_measure
static Float side_measure(size_type loc_isid)
Definition reference_element.cc:802
rheolef::reference_element_H::ilat2loc_inod
static size_type ilat2loc_inod(size_type order, const point_basic< size_type > &ilat)
Definition reference_element.cc:790
rheolef::reference_element_H::side_normal
static void side_normal(size_type loc_isid, point_basic< Float > &hat_n)
Definition reference_element.cc:807
rheolef::reference_element_H::first_inod_by_variant
static size_type first_inod_by_variant(size_type order, size_type subgeo_variant)
Definition reference_element.cc:795
rheolef::reference_element_H::face2edge_orient
static int face2edge_orient(size_type loc_iface, size_type loc_iface_jedg)
rheolef::reference_element_P
Definition reference_element.h:279
rheolef::reference_element_P::subgeo_local_node
static size_type subgeo_local_node(size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod)
Definition reference_element.cc:651
rheolef::reference_element_P::size_type
point_basic< size_t >::size_type size_type
Definition reference_element.h:284
rheolef::reference_element_P::n_subgeo
static size_type n_subgeo(size_type side_dim)
Definition reference_element.cc:629
rheolef::reference_element_P::first_inod_by_variant
static size_type first_inod_by_variant(size_type order, size_type subgeo_variant)
Definition reference_element.cc:700
rheolef::reference_element_P::face2edge
static size_type face2edge(size_type loc_iface, size_type loc_iface_jedg)
rheolef::reference_element_P::side_measure
static Float side_measure(size_type loc_isid)
Definition reference_element.cc:707
rheolef::reference_element_P::ilat2loc_inod
static size_type ilat2loc_inod(size_type order, const point_basic< size_type > &ilat)
Definition reference_element.cc:695
rheolef::reference_element_P::side_normal
static void side_normal(size_type loc_isid, point_basic< Float > &hat_n)
Definition reference_element.cc:714
rheolef::reference_element_P::subgeo_n_node
static size_type subgeo_n_node(size_type order, size_type side_dim, size_type loc_isid)
Definition reference_element.cc:640
rheolef::reference_element_P::face2edge_orient
static int face2edge_orient(size_type loc_iface, size_type loc_iface_jedg)
rheolef::reference_element_T
Definition reference_element.h:258
rheolef::reference_element_T::subgeo_local_node
static size_type subgeo_local_node(size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod)
Definition reference_element.cc:539
rheolef::reference_element_T::face2edge
static size_type face2edge(size_type loc_iface, size_type loc_iface_jedg)
Definition reference_element.cc:594
rheolef::reference_element_T::n_subgeo
static size_type n_subgeo(size_type side_dim)
Definition reference_element.cc:517
rheolef::reference_element_T::ilat2loc_inod
static size_type ilat2loc_inod(size_type order, const point_basic< size_type > &ilat)
Definition reference_element.cc:582
rheolef::reference_element_T::size_type
point_basic< size_t >::size_type size_type
Definition reference_element.h:263
rheolef::reference_element_T::subgeo_n_node
static size_type subgeo_n_node(size_type order, size_type side_dim, size_type loc_isid)
Definition reference_element.cc:528
rheolef::reference_element_T::first_inod_by_variant
static size_type first_inod_by_variant(size_type order, size_type subgeo_variant)
Definition reference_element.cc:587
rheolef::reference_element_T::face2edge_orient
static int face2edge_orient(size_type loc_iface, size_type loc_iface_jedg)
Definition reference_element.cc:599
rheolef::reference_element_T::side_measure
static Float side_measure(size_type loc_isid)
Definition reference_element.cc:604
rheolef::reference_element_T::side_normal
static void side_normal(size_type loc_isid, point_basic< Float > &hat_n)
Definition reference_element.cc:609
rheolef::reference_element_e
Definition reference_element.h:201
rheolef::reference_element_e::n_subgeo
static size_type n_subgeo(size_type side_dim)
Definition reference_element.cc:321
rheolef::reference_element_e::subgeo_n_node
static size_type subgeo_n_node(size_type order, size_type side_dim, size_type loc_isid)
Definition reference_element.cc:330
rheolef::reference_element_e::subgeo_local_node
static size_type subgeo_local_node(size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod)
Definition reference_element.cc:339
rheolef::reference_element_e::size_type
point_basic< size_t >::size_type size_type
Definition reference_element.h:206
rheolef::reference_element_e::first_inod_by_variant
static size_type first_inod_by_variant(size_type order, size_type subgeo_variant)
Definition reference_element.cc:355
rheolef::reference_element_e::ilat2loc_inod
static size_type ilat2loc_inod(size_type order, const point_basic< size_type > &ilat)
Definition reference_element.cc:350
rheolef::reference_element_e::side_measure
static Float side_measure(size_type loc_isid)
Definition reference_element.cc:362
rheolef::reference_element_e::side_normal
static void side_normal(size_type loc_isid, point_basic< Float > &hat_n)
Definition reference_element.cc:367
rheolef::reference_element_p
Definition reference_element.h:182
rheolef::reference_element_p::n_subgeo
static size_type n_subgeo(size_type side_dim)
Definition reference_element.cc:274
rheolef::reference_element_p::ilat2loc_inod
static size_type ilat2loc_inod(size_type order, const point_basic< size_type > &ilat)
Definition reference_element.cc:291
rheolef::reference_element_p::first_inod_by_variant
static size_type first_inod_by_variant(size_type order, size_type subgeo_variant)
Definition reference_element.cc:296
rheolef::reference_element_p::size_type
point_basic< size_t >::size_type size_type
Definition reference_element.h:187
rheolef::reference_element_p::subgeo_local_node
static size_type subgeo_local_node(size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod)
Definition reference_element.cc:284
rheolef::reference_element_p::side_measure
static Float side_measure(size_type loc_isid)
Definition reference_element.cc:303
rheolef::reference_element_p::side_normal
static void side_normal(size_type loc_isid, point_basic< Float > &hat_n)
Definition reference_element.cc:308
rheolef::reference_element_p::subgeo_n_node
static size_type subgeo_n_node(size_type order, size_type side_dim, size_type loc_isid)
Definition reference_element.cc:279
rheolef::reference_element_q
Definition reference_element.h:239
rheolef::reference_element_q::subgeo_n_node
static size_type subgeo_n_node(size_type order, size_type side_dim, size_type loc_isid)
Definition reference_element.cc:458
rheolef::reference_element_q::n_subgeo
static size_type n_subgeo(size_type side_dim)
Definition reference_element.cc:448
rheolef::reference_element_q::first_inod_by_variant
static size_type first_inod_by_variant(size_type order, size_type subgeo_variant)
Definition reference_element.cc:486
rheolef::reference_element_q::subgeo_local_node
static size_type subgeo_local_node(size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod)
Definition reference_element.cc:468
rheolef::reference_element_q::size_type
point_basic< size_t >::size_type size_type
Definition reference_element.h:244
rheolef::reference_element_q::ilat2loc_inod
static size_type ilat2loc_inod(size_type order, const point_basic< size_type > &ilat)
Definition reference_element.cc:481
rheolef::reference_element_q::side_measure
static Float side_measure(size_type loc_isid)
Definition reference_element.cc:493
rheolef::reference_element_q::side_normal
static void side_normal(size_type loc_isid, point_basic< Float > &hat_n)
Definition reference_element.cc:498
rheolef::reference_element_t
Definition reference_element.h:220
rheolef::reference_element_t::subgeo_n_node
static size_type subgeo_n_node(size_type order, size_type side_dim, size_type loc_isid)
Definition reference_element.cc:390
rheolef::reference_element_t::first_inod_by_variant
static size_type first_inod_by_variant(size_type order, size_type subgeo_variant)
Definition reference_element.cc:418
rheolef::reference_element_t::n_subgeo
static size_type n_subgeo(size_type side_dim)
Definition reference_element.cc:380
rheolef::reference_element_t::size_type
point_basic< size_t >::size_type size_type
Definition reference_element.h:225
rheolef::reference_element_t::subgeo_local_node
static size_type subgeo_local_node(size_type order, size_type side_dim, size_type loc_isid, size_type loc_jsidnod)
Definition reference_element.cc:400
rheolef::reference_element_t::ilat2loc_inod
static size_type ilat2loc_inod(size_type order, const point_basic< size_type > &ilat)
Definition reference_element.cc:413
rheolef::reference_element_t::side_measure
static Float side_measure(size_type loc_isid)
Definition reference_element.cc:425
rheolef::reference_element_t::side_normal
static void side_normal(size_type loc_isid, point_basic< Float > &hat_n)
Definition reference_element.cc:430
rheolef::reference_element
see the reference_element page for the full documentation
Definition reference_element.h:66
rheolef::reference_element::max_side_by_variant
static const size_type max_side_by_variant
Definition reference_element.h:84
rheolef::reference_element::side_normal
void side_normal(size_type loc_isid, point_basic< Float > &hat_n) const
Definition reference_element.cc:232
rheolef::reference_element::_n_subgeo_by_variant
static const size_type _n_subgeo_by_variant[max_variant][max_variant]
Definition reference_element.h:171
rheolef::reference_element::H
static const variant_type H
Definition reference_element.h:81
rheolef::reference_element::n_vertex
size_type n_vertex() const
Definition reference_element.h:103
rheolef::reference_element::_first_variant_by_dimension
static const variant_type _first_variant_by_dimension[5]
Definition reference_element.h:173
rheolef::reference_element::last_inod_by_variant
static size_type last_inod_by_variant(variant_type variant, size_type order, variant_type subgeo_variant)
Definition reference_element.h:154
rheolef::reference_element::dimension
static size_type dimension(variant_type variant)
Definition reference_element.h:138
rheolef::reference_element::q
static const variant_type q
Definition reference_element.h:78
rheolef::reference_element::set_name
void set_name(char name)
Definition reference_element.cc:59
rheolef::reference_element::e
static const variant_type e
Definition reference_element.h:76
rheolef::reference_element::name
static char name(variant_type variant)
Definition reference_element.h:137
rheolef::reference_element::subgeo
reference_element subgeo(size_type subgeo_dim, size_type loc_isid) const
Definition reference_element.h:111
rheolef::reference_element::side
reference_element side(size_type loc_isid) const
Definition reference_element.h:119
rheolef::reference_element::set_variant
void set_variant(variant_type x)
Definition reference_element.h:93
rheolef::reference_element::n_subgeo_by_variant
static size_type n_subgeo_by_variant(size_type variant, size_type subgeo_variant)
Definition reference_element.h:162
rheolef::reference_element::subgeo_local_node
static size_type subgeo_local_node(variant_type variant, size_type order, size_type subgeo_dim, size_type loc_isid, size_type loc_jsidnod)
Definition reference_element.cc:155
rheolef::reference_element::reference_element
reference_element(variant_type x=max_variant)
Definition reference_element.h:88
rheolef::reference_element::first_inod
static size_type first_inod(variant_type variant, size_type order, size_type subgeo_dim)
Definition reference_element.h:156
rheolef::reference_element::size
size_type size() const
Definition reference_element.h:102
rheolef::reference_element::max_variant
static const variant_type max_variant
Definition reference_element.h:82
rheolef::reference_element::n_sub_edge
static size_type n_sub_edge(variant_type variant)
Definition reference_element.cc:85
rheolef::reference_element::n_edge
size_type n_edge() const
Definition reference_element.h:105
rheolef::reference_element::init_local_nnode_by_variant
static void init_local_nnode_by_variant(size_type order, std::array< size_type, reference_element::max_variant > &loc_nnod_by_variant)
Definition reference_element.cc:206
rheolef::reference_element::last_variant_by_dimension
static variant_type last_variant_by_dimension(size_type dim)
Definition reference_element.h:150
rheolef::reference_element::local_subgeo_index2index_by_variant
size_type local_subgeo_index2index_by_variant(size_type subgeo_variant, size_type i) const
Definition reference_element.h:124
rheolef::reference_element::_name
static const char _name[max_variant]
Definition reference_element.h:169
rheolef::reference_element::set_variant
void set_variant(size_type n_vertex, size_type dim)
Definition reference_element.h:94
rheolef::reference_element::_x
variant_type _x
Definition reference_element.h:177
rheolef::reference_element::dimension
size_type dimension() const
Definition reference_element.h:101
rheolef::reference_element::subgeo_size
size_type subgeo_size(size_type subgeo_dim, size_type loc_isid) const
Definition reference_element.h:120
rheolef::reference_element::n_vertex
static size_type n_vertex(variant_type variant)
Definition reference_element.h:139
rheolef::reference_element::first_variant_by_dimension
static variant_type first_variant_by_dimension(size_type dim)
Definition reference_element.h:148
rheolef::reference_element::p
static const variant_type p
Definition reference_element.h:75
rheolef::reference_element::side_measure
Float side_measure(size_type loc_isid) const
Definition reference_element.cc:213
rheolef::reference_element::n_sub_face
static size_type n_sub_face(variant_type variant)
Definition reference_element.cc:99
rheolef::reference_element::_n_vertex
static const size_type _n_vertex[max_variant]
Definition reference_element.h:172
rheolef::reference_element::n_subgeo_by_variant
size_type n_subgeo_by_variant(size_type subgeo_variant) const
Definition reference_element.h:107
rheolef::reference_element::variant
variant_type variant() const
Definition reference_element.h:99
rheolef::reference_element::subgeo_local_vertex
size_type subgeo_local_vertex(size_type subgeo_dim, size_type loc_isid, size_type loc_jsidvert) const
Definition reference_element.h:122
rheolef::reference_element::last_inod
static size_type last_inod(variant_type variant, size_type order, size_type subgeo_dim)
Definition reference_element.h:158
rheolef::reference_element::first_inod_by_variant
static size_type first_inod_by_variant(variant_type variant, size_type order, variant_type subgeo_variant)
Definition reference_element.cc:179
rheolef::reference_element::n_side
size_type n_side() const
Definition reference_element.h:104
rheolef::reference_element::variant_type
size_type variant_type
Definition reference_element.h:72
rheolef::reference_element::subgeo_n_node
static size_type subgeo_n_node(variant_type variant, size_type order, size_type subgeo_dim, size_type loc_isid)
Definition reference_element.cc:132
rheolef::reference_element::size_type
std::vector< int >::size_type size_type
Definition reference_element.h:71
rheolef::reference_element::_dimension
static const size_type _dimension[max_variant]
Definition reference_element.h:170
rheolef::reference_element::n_node
static size_type n_node(variant_type variant, size_type order)
Definition reference_element.cc:201
rheolef::reference_element::n_subgeo
size_type n_subgeo(size_type subgeo_dim) const
Definition reference_element.h:110
rheolef::reference_element::T
static const variant_type T
Definition reference_element.h:79
rheolef::reference_element::n_face
size_type n_face() const
Definition reference_element.h:106
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
rheolef::Float
double Float
see the Float page for the full documentation
Definition Float.h:143
assert_macro
#define assert_macro(ok_condition, message)
Definition dis_macros.h:113
vertex
const point vertex[n_vertex]
Definition edge.icc:67
n_vertex
const size_t n_vertex
Definition edge.icc:66
measure
const Float measure
Definition edge.icc:65
rheolef
This file is part of Rheolef.
Definition compiler_eigen.h:39