12 ASSERT_DBG(field_of_pointers_to_coordinates !=
nullptr);
16 for (
unsigned int i = 0; i < N; i++) {
17 temporary_pointers[i] = field_of_pointers_to_coordinates[i];
20 simplices_[0].set_simplices(temporary_pointers);
21 for (
unsigned int i = 1; i < N + 1; i++) {
22 temporary_pointers[N - i] = field_of_pointers_to_coordinates[N - i + 1];
23 simplices_[i].set_simplices(temporary_pointers);
36 return simplices_[face][face_edge[idx]];
42 return simplices_[idx];
47 return simplices_[idx];
52 if(idx == 2)
return simplices_[1][1];
53 else return simplices_[0][idx];
58 if(idx == 3)
return simplices_[1][1][1];
59 else return simplices_[0].node(idx);
65 os <<
"Simplex<0>(" << (*(s.coords_))[0] <<
"," << (*(s.coords_))[1] <<
"," << (*(s.coords_))[2] <<
")";
69 template<
unsigned int N> ostream& operator<<(ostream& os, const Simplex< N >& s)
71 os <<
"Simplex<" << N <<
">:" << endl;
72 for (
unsigned int i = 0; i < N + 1; i++) {
73 for (
unsigned int j = 3; N <= j; j--) {
76 os << s.simplices_[i] << endl;
template ostream & operator<< < 1 >(ostream &os, const Simplex< 1 > &s)
void set_simplices(arma::vec3 **field_of_pointers_to_coordinates)
Creating sub-simplices in lexicografic order.
ostream & operator<< < 0 >(ostream &os, const Simplex< 0 > &s)
Simplex< 0 > & node(unsigned int idx)
Simplex< 1 > & abscissa(unsigned int idx)
Get simplex of abscissa from different simplices - if it has own implementation in ...
template ostream & operator<< < 3 >(ostream &os, const Simplex< 3 > &s)
static const IdxVector< (InDim >OutDim?InDim+1:dim-InDim) > interact(TInteraction< OutDim, InDim > interaction)
template ostream & operator<< < 2 >(ostream &os, const Simplex< 2 > &s)
static const std::vector< unsigned int > face_edge
Class RefElement defines numbering of vertices, sides, calculation of normal vectors etc...