00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef FEM_UTILITIES_H
00010 #define FEM_UTILITIES_H
00011
00012 #include <fem/Grid.hpp>
00013 #include <fem/fem_2d_triangle_types.hpp>
00014 #include <fem/fem_1d_types.hpp>
00015
00016 namespace imaging
00017 {
00023 void uniform_grid(float_t lower_bound, float_t upper_bound, std::size_t n_elements, Grid<fem_1d_types> & grid, ublas::compressed_matrix<float_t> & stiffness_matrix_prototype, std::size_t system_size = 1);
00024
00031 void circle_grid(float_t radius, std::size_t n_rings, Grid<fem_2d_triangle_types> & grid, ublas::compressed_matrix<float_t> & stiffness_matrix_prototype, std::size_t system_size = 1);
00032
00039 void ellipse_grid(float_t a, float_t b, std::size_t n_rings, Grid<fem_2d_triangle_types> & grid, ublas::compressed_matrix<float_t> & stiffness_matrix_prototype, std::size_t system_size = 1);
00040
00047 void triangulate_shape(const BoundaryDiscretizer<2> & shape_discretizer, float_t max_triangle_area, Grid<fem_2d_triangle_types> & grid, ublas::compressed_matrix<float_t> & stiffness_matrix_prototype, std::size_t system_size = 1);
00048 }
00049
00050 #endif
00051