36 #ifndef GETFEM_REGULAR_MESHES_H__
37 #define GETFEM_REGULAR_MESHES_H__
55 void parallelepiped_regular_simplex_mesh_(mesh &me, dim_type N,
56 const base_node &org,
const base_small_vector *ivect,
const size_type *iref);
58 template<
class ITER1,
class ITER2>
59 void parallelepiped_regular_simplex_mesh(mesh &me,
61 const base_node &org, ITER1 ivect, ITER2 iref)
63 std::vector<base_small_vector> vect(N);
64 std::copy(ivect, ivect+N, vect.begin());
65 std::vector<size_type> ref(N);
66 std::copy(iref, iref+N, ref.begin());
67 parallelepiped_regular_simplex_mesh_(me, N, org, &(vect[0]),
71 void parallelepiped_regular_prism_mesh_(mesh &me, dim_type N,
72 const base_node &org,
const base_small_vector *ivect,
const size_type *iref);
74 template<
class ITER1,
class ITER2>
75 void parallelepiped_regular_prism_mesh(mesh &me,
77 const base_node &org, ITER1 ivect, ITER2 iref)
79 std::vector<base_small_vector> vect(N);
80 std::copy(ivect, ivect+N, vect.begin());
81 std::vector<size_type> ref(N);
82 std::copy(iref, iref+N, ref.begin());
83 parallelepiped_regular_prism_mesh_(me, N, org, &(vect[0]),
87 void parallelepiped_regular_mesh_(mesh &me, dim_type N,
88 const base_node &org,
const base_small_vector *ivect,
const size_type *iref,
bool linear_gt);
90 template<
class ITER1,
class ITER2>
91 void parallelepiped_regular_mesh(mesh &me,
93 const base_node &org, ITER1 ivect, ITER2 iref,
bool linear_gt=
false)
95 std::vector<base_small_vector> vect(N);
96 std::copy(ivect, ivect+N, vect.begin());
97 std::vector<size_type> ref(N);
98 std::copy(iref, iref+N, ref.begin());
99 parallelepiped_regular_mesh_(me, N, org, &(vect[0]), &(ref[0]), linear_gt);
102 void parallelepiped_regular_pyramid_mesh_(mesh &me,
const base_node &org,
103 const base_small_vector *ivect,
const size_type *iref);
105 template<
class ITER1,
class ITER2>
106 void parallelepiped_regular_pyramid_mesh(mesh &me,
107 const base_node &org, ITER1 ivect, ITER2 iref)
110 std::vector<base_small_vector> vect(N);
111 std::copy(ivect, ivect+N, vect.begin());
112 std::vector<size_type> ref(N);
113 std::copy(iref, iref+N, ref.begin());
114 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.