an efficient C++ finite element environment
|
|
Go to the documentation of this file. 1 #ifndef _RHEO_QUADRATURE_H
2 #define _RHEO_QUADRATURE_H
3 #include "rheolef/smart_pointer.h"
24 #include "rheolef/persistent_table.h"
25 #include "rheolef/reference_element.h"
26 #include "rheolef/point.h"
27 #include "rheolef/integrate_option.h"
28 #include "rheolef/reference_element_face_transformation.h"
29 #include "rheolef/compiler_eigen.h"
87 typedef std::vector<weighted_point<T> >
base;
155 std::string
name()
const;
223 {
return base::data().get_nodes(hat_K,node); }
230 return os << q.
data();
248 if (r == 0)
return 1;
250 return std::max(
size_t(1),
n);
257 return _options.get_order();
264 return _options.get_family();
271 return _options.get_family_name();
286 if (get_order() != r) {
288 _options.set_order(r);
289 std::fill (_initialized.begin(), _initialized.end(),
false);
297 if (get_family() != ft) {
299 _options.set_family(ft);
300 std::fill (_initialized.begin(), _initialized.end(),
false);
306 #endif // _RHEO_QUADRATURE_H
quadrature_on_geo(const quadrature_on_geo &q)
quadrature_rep(quadrature_option opt=quadrature_option())
void init_triangle(quadrature_option opt)
void init_edge(quadrature_option opt)
void reset(const std::string &name)
size_type size(reference_element hat_K) const
const weighted_point< T > & operator()(reference_element hat_K, size_type q) const
quadrature_on_geo & operator=(const quadrature_on_geo &q)
friend std::ostream & operator<<(std::ostream &, const quadrature_on_geo< U > &)
const weighted_point< T > & operator()(reference_element hat_K, size_type q) const
void get_nodes(reference_element hat_K, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &node) const
smart_pointer< rep > base
void get_nodes(reference_element hat_K, Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &node) const
void set_order(size_type order)
rep::const_iterator const_iterator
geo_element_indirect::orientation_type orientation_type
const quadrature_rep & operator=(const quadrature_rep< T > &q)
void initialize(reference_element hat_K, quadrature_option opt)
void get_nodes(Eigen::Matrix< point_basic< T >, Eigen::Dynamic, 1 > &node) const
const quadrature_option & get_options() const
weighted_point(const point_basic< T > &x1, const T &w1)
void init_point(quadrature_option opt)
quadrature(const std::string &name="")
family_type get_family() const
quadrature_option::family_type family_type
size_type get_order() const
const_iterator end(reference_element hat_K) const
rep::family_type family_type
const quadrature_option & get_options() const
see the persistent_table page for the full documentation
see the reference_element page for the full documentation
see the smart_pointer page for the full documentation
see the integrate_option page for the full documentation
friend std::ostream & operator<<(std::ostream &, const quadrature_rep< U > &)
void init_square(quadrature_option opt)
size_type get_order() const
void set_order(size_type order)
short int orientation_type
rep::orientation_type orientation_type
std::string get_family_name() const
std::array< quadrature_on_geo< T >, reference_element::max_variant > _quad
void set_family(family_type ft)
family_type get_family() const
void set_family(family_type ft)
This file is part of Rheolef.
base::size_type size_type
std::string get_family_name() const
size_type size(reference_element hat_K) const
std::vector< bool > _initialized
static const variant_type max_variant
void _initialize(reference_element hat_K) const
const_iterator begin(reference_element hat_K) const
void init_tetrahedron(quadrature_option opt)
void init_hexahedron(quadrature_option opt)
quadrature_option _options
field::size_type size_type
const_iterator end(reference_element hat_K) const
std::ostream & operator<<(std::ostream &os, const catchmark &m)
std::vector< weighted_point< T > > base
integrate_option quadrature_option
quadrature_on_geo< T >::size_type size_type
std::vector< weighted_point< T > >::const_iterator const_iterator
const_iterator begin(reference_element hat_K) const
static size_type n_node_gauss(size_type r)
void init_prism(quadrature_option opt)
void wx(const point_basic< T > &x, const T &w)
static quadrature_rep * make_ptr(const std::string &name)