38 #ifndef GETFEM_MESH_IM_LEVEL_SET_H__ 39 #define GETFEM_MESH_IM_LEVEL_SET_H__ 58 pintegration_method regular_simplex_pim;
59 pintegration_method base_singular_pim;
65 dal::bit_vector ignored_im;
69 std::vector<pintegration_method> build_methods;
71 mutable bool is_adapted;
74 void clear_build_methods();
75 void build_method_of_convex(
size_type cv);
80 std::string ls_csg_description;
91 bool2 is_point_in_selected_area
92 (
const std::vector<pmesher_signed_distance> &mesherls0,
93 const std::vector<pmesher_signed_distance> &mesherls1,
const base_node& P);
94 bool2 is_point_in_selected_area2
95 (
const std::vector<pmesher_signed_distance> &mesherls0,
96 const std::vector<pmesher_signed_distance> &mesherls1,
const base_node& P);
99 enum { INTEGRATE_INSIDE = 1, INTEGRATE_OUTSIDE = 2, INTEGRATE_ALL = 2+1,
100 INTEGRATE_BOUNDARY = 4};
110 pintegration_method sing = 0) {
111 regular_simplex_pim = reg;
112 base_singular_pim = sing;
115 int location()
const {
return integrate_where; }
118 return mesh_im::memsize();
122 int integrate_where_ = INTEGRATE_ALL,
123 pintegration_method reg = 0,
124 pintegration_method sing = 0);
141 int integrate_where_ = INTEGRATE_ALL,
142 pintegration_method reg = 0,
143 pintegration_method sing = 0);
174 ls_csg_description = description;
177 base_small_vector &vec)
const;
188 pintegration_method segment_pim;
194 dal::bit_vector ignored_im;
198 std::vector<pintegration_method> build_methods;
200 mutable bool is_adapted;
203 void clear_build_methods();
204 void build_method_of_convex(
size_type cv,
mesh &global_intersection,
209 enum { INTEGRATE_INSIDE = 1, INTEGRATE_OUTSIDE = 2, INTEGRATE_ALL = 2+1,
210 INTEGRATE_BOUNDARY = 4};
220 { segment_pim = pim; }
223 return mesh_im::memsize();
228 pintegration_method pim = 0);
232 pintegration_method pim = 0);
Keep informations about a mesh crossed by level-sets.
Define the getfem::mesh_im class (integration of getfem::mesh_fem).
Describe a mesh (collection of convexes (elements) and points).
Describe an integration method linked to a mesh.
void set_simplex_im(pintegration_method reg, pintegration_method sing=0)
Set the specific integration methods.
void set_segment_im(pintegration_method pim)
Set the specific integration methods.
virtual pintegration_method int_method_of_element(size_type cv) const
return the integration method associated with an element (in no integration is associated, the function will crash! use the convex_index() of the mesh_im to check that a fem is associated to a given convex)
size_t size_type
used as the common size type in the library
Describe an adaptable integration method linked to a mesh cut by a level set.
void update_from_context(void) const
this function has to be defined and should update the object when the context is modified.
structure passed as the argument of fem interpolation functions.
GEneric Tool for Finite Element Methods.
Describe an adaptable integration method linked to a mesh cut by at least two level sets on the inter...
void adapt(void)
Apply the adequate integration methods.
Balanced tree of n-dimensional rectangles.
void set_level_set_boolean_operations(const std::string description)
Set the boolean operation which define the integration domain when there is more than one levelset...
Keep informations about a mesh crossed by level-sets.