37 #ifndef GETFEM_REGULAR_MESHES_H__
38 #define GETFEM_REGULAR_MESHES_H__
56 void parallelepiped_regular_simplex_mesh_(mesh &me, dim_type N,
57 const base_node &org,
const base_small_vector *ivect,
const size_type *iref);
59 template<
class ITER1,
class ITER2>
60 void parallelepiped_regular_simplex_mesh(mesh &me,
62 const base_node &org, ITER1 ivect, ITER2 iref)
64 std::vector<base_small_vector> vect(N);
65 std::copy(ivect, ivect+N, vect.begin());
66 std::vector<size_type> ref(N);
67 std::copy(iref, iref+N, ref.begin());
68 parallelepiped_regular_simplex_mesh_(me, N, org, &(vect[0]),
72 void parallelepiped_regular_prism_mesh_(mesh &me, dim_type N,
73 const base_node &org,
const base_small_vector *ivect,
const size_type *iref);
75 template<
class ITER1,
class ITER2>
76 void parallelepiped_regular_prism_mesh(mesh &me,
78 const base_node &org, ITER1 ivect, ITER2 iref)
80 std::vector<base_small_vector> vect(N);
81 std::copy(ivect, ivect+N, vect.begin());
82 std::vector<size_type> ref(N);
83 std::copy(iref, iref+N, ref.begin());
84 parallelepiped_regular_prism_mesh_(me, N, org, &(vect[0]),
88 void parallelepiped_regular_mesh_(mesh &me, dim_type N,
89 const base_node &org,
const base_small_vector *ivect,
const size_type *iref,
bool linear_gt);
91 template<
class ITER1,
class ITER2>
92 void parallelepiped_regular_mesh(mesh &me,
94 const base_node &org, ITER1 ivect, ITER2 iref,
bool linear_gt=
false)
96 std::vector<base_small_vector> vect(N);
97 std::copy(ivect, ivect+N, vect.begin());
98 std::vector<size_type> ref(N);
99 std::copy(iref, iref+N, ref.begin());
100 parallelepiped_regular_mesh_(me, N, org, &(vect[0]), &(ref[0]), linear_gt);
103 void parallelepiped_regular_pyramid_mesh_(mesh &me,
const base_node &org,
104 const base_small_vector *ivect,
const size_type *iref);
106 template<
class ITER1,
class ITER2>
107 void parallelepiped_regular_pyramid_mesh(mesh &me,
108 const base_node &org, ITER1 ivect, ITER2 iref)
111 std::vector<base_small_vector> vect(N);
112 std::copy(ivect, ivect+N, vect.begin());
113 std::vector<size_type> ref(N);
114 std::copy(iref, iref+N, ref.begin());
115 parallelepiped_regular_pyramid_mesh_(me, org, &(vect[0]), &(ref[0]));
Define a getfem::getfem_mesh object.
size_t size_type
used as the common size type in the library
std::shared_ptr< const bgeot::geometric_trans > pgeometric_trans
pointer type for a geometric transformation
GEneric Tool for Finite Element Methods.
void regular_mesh(mesh &m, const std::string &st)
Build a regular mesh parametrized by the string st.
void regular_ball_mesh(mesh &m, const std::string &st)
Build a regular mesh on a ball, parametrized by the string st.
void regular_unit_mesh(mesh &m, std::vector< size_type > nsubdiv, bgeot::pgeometric_trans pgt, bool noised=false)
Build a regular mesh of the unit square/cube/, etc.
void regular_ball_shell_mesh(mesh &m, const std::string &st)
Build a regular mesh on a ball shell, parametrized by the string st.