GetFEM
5.4.2

Describe an adaptable integration method linked to a mesh cut by a level set. More...
#include <getfem_mesh_im_level_set.h>
Inherits getfem::mesh_im.
Public Member Functions  
void  update_from_context (void) const 
this function has to be defined and should update the object when the context is modified.  
void  adapt (void) 
Apply the adequate integration methods.  
void  set_simplex_im (pintegration_method reg, pintegration_method sing=0) 
Set the specific integration methods. More...  
mesh_im_level_set (mesh_level_set &me, int integrate_where_=INTEGRATE_ALL, pintegration_method reg=0, pintegration_method sing=0)  
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)  
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. More...  
Public Member Functions inherited from getfem::mesh_im  
void  set_auto_add (pintegration_method pim) 
Set the im for automatic addition of element option. More...  
const dal::bit_vector &  convex_index (void) const 
Get the set of convexes where an integration method has been assigned.  
const mesh &  linked_mesh () const 
Give a reference to the linked mesh of type mesh.  
void  set_integration_method (size_type cv, pintegration_method pim) 
Set the integration method of a convex. More...  
void  set_integration_method (const dal::bit_vector &cvs, pintegration_method pim) 
Set the integration method on all the convexes of indexes in bv, which is of type dal::bit_vector.  
void  set_integration_method (pintegration_method ppi) 
shortcut for More...  
void  set_integration_method (const dal::bit_vector &cvs, dim_type im_degree) 
Set an approximate integration method chosen to be exact for polynomials of degree 'im_degree'.  
void  set_integration_method (dim_type im_degree) 
Set an approximate integration method chosen to be exact for polynomials of degree 'im_degree' on the whole mesh.  
void  read_from_file (std::istream &ist) 
Read the mesh_im from a stream. More...  
void  read_from_file (const std::string &name) 
Read the mesh_im from a file. More...  
void  write_to_file (std::ostream &ost) const 
Write the mesh_im to a stream.  
void  write_to_file (const std::string &name, bool with_mesh=false) const 
Write the mesh_im to a file. More...  
Public Member Functions inherited from getfem::context_dependencies  
bool  context_check () const 
return true if update_from_context was called  
Describe an adaptable integration method linked to a mesh cut by a level set.
It is possible to choose to integrate over the whole mesh, or to select integration on the "inside" (the intersection of the negative parts of the levelsets, or any other union, intersection etc of the levelset negative parts), the "outside", or just the levelset boundary.
Definition at line 56 of file getfem_mesh_im_level_set.h.
getfem::mesh_im_level_set::mesh_im_level_set  (  mesh_level_set &  me, 
int  integrate_where_ = INTEGRATE_ALL , 

pintegration_method  reg = 0 , 

pintegration_method  sing = 0 

) 
me  the levelset. 
integrate_where  : choose between INTEGRATE_ALL, INTEGRATE_BOUNDARY, INTEGRATE_INSIDE and INTEGRATE_OUTSIDE. 
reg  the integration method (for simplices) that will be used on the subsimplices of convexes crossed by the levelset. 
sing  the (optional) integration method to use on the crack tips (i.e. when the levelset has a secondary level set), this is generally an IM_QUASI_POLAR method as it provides a good integration of singular XFEM functions. 
Definition at line 57 of file getfem_mesh_im_level_set.cc.

inline 
Set the specific integration methods.
see the constructor documentation for more details.
Definition at line 109 of file getfem_mesh_im_level_set.h.

inline 
Set the boolean operation which define the integration domain when there is more than one levelset.
the syntax is very simple, for example if there are 3 different levelset,
"a*b*c" is the intersection of the domains defined by each levelset (this is the default behaviour if this function is not called).
"a+b+c" is the union of their domains.
"c(a+b)" is the domain of the third levelset minus the union of the domains of the two others.
"!a" is the complementary of the domain of a (i.e. it is the domain where a(x)>0)
The first levelset is always referred to with "a", the second with "b", and so on..
Definition at line 173 of file getfem_mesh_im_level_set.h.