44 template<
unsigned int dim,
unsigned int spacedim>
50 template<
unsigned int dim,
unsigned int spacedim>
55 for (
unsigned int i = 0; i <= dim; i++)
57 number_of_single_dofs[i] = 0;
58 number_of_pairs[i] = 0;
59 number_of_triples[i] = 0;
60 number_of_sextuples[i] = 0;
64 template<
unsigned int dim,
unsigned int spacedim>
inline
67 return number_of_dofs;
70 template<
unsigned int dim,
unsigned int spacedim>
inline
74 ASSERT(object_dim >= 0 && object_dim <= dim,
75 "Object type number is out of range.");
79 return number_of_single_dofs[object_dim];
81 return number_of_pairs[object_dim];
83 return number_of_triples[object_dim];
85 return number_of_sextuples[object_dim];
91 template<
unsigned int dim,
unsigned int spacedim>
inline
94 ASSERT_EQUAL(get_generalized_support_points().size(), number_of_dofs);
96 arma::mat M(number_of_dofs, number_of_dofs);
98 for (
unsigned int i = 0; i < number_of_dofs; i++)
99 for (
unsigned int j = 0; j < number_of_dofs; j++) {
100 M(j, i) = basis_value(j, get_generalized_support_points()[i]);
103 node_matrix = arma::inv(M);
106 template<
unsigned int dim,
unsigned int spacedim>
113 arma::vec values(number_of_dofs);
115 for (
unsigned int i=0; i<q.
size(); i++)
117 for (
unsigned int j=0; j<number_of_dofs; j++)
118 values[j] = basis_value(j, q.
point(i));
125 arma::mat grads(number_of_dofs, dim);
127 for (
unsigned int i=0; i<q.
size(); i++)
129 for (
unsigned int j=0; j<number_of_dofs; j++)
130 grads.row(j) = arma::trans(basis_grad(j, q.
point(i)));
138 template<
unsigned int dim,
unsigned int spacedim>
inline
149 template<
unsigned int dim,
unsigned int spacedim>
inline
158 for (
unsigned int i = 0; i < q.
size(); i++)
165 for (
unsigned int i = 0; i < q.
size(); i++)
172 template<
unsigned int dim,
unsigned int spacedim>
175 if (generalized_support_points.size() > 0)
177 return generalized_support_points;
181 return unit_support_points;