41 #ifndef GETFEM_MESH_FEM_PRODUCT_H__ 
   42 #define GETFEM_MESH_FEM_PRODUCT_H__ 
   48   class fem_product : 
public virtual_fem {
 
   51     dal::bit_vector enriched_dof1;
 
   56                 const dal::bit_vector &nn)
 
   57       : cv(i), xfem_index(xfi),  enriched_dof1(nn)
 
   58     { pfems[0] = pf1_; pfems[1] = pf2_; init(); }
 
   61     void base_value(
const base_node &x, base_tensor &t) 
const;
 
   62     void grad_base_value(
const base_node &x, base_tensor &t) 
const;
 
   63     void hess_base_value(
const base_node &x, base_tensor &t) 
const;
 
   65     void real_base_value(
const fem_interpolation_context& c, 
 
   66                          base_tensor &t, 
bool = 
true) 
const;    
 
   67     void real_grad_base_value(
const fem_interpolation_context& c, 
 
   68                               base_tensor &t, 
bool = 
true) 
const;
 
   69     void real_hess_base_value(
const fem_interpolation_context& c, 
 
   70                               base_tensor &t, 
bool = 
true) 
const;
 
   75   class mesh_fem_product : 
public mesh_fem {
 
   79     mutable std::vector<pfem> build_methods;
 
   80     mutable bool is_adapted;
 
   82     dal::bit_vector enriched_dof;
 
   83     void clear_build_methods();
 
   87     void update_from_context(
void)
 const { is_adapted = 
false; touch(); }
 
   91     { 
return mesh_fem::memsize();  }
 
   93     mesh_fem_product(
const mesh_fem &me1, 
const mesh_fem &me2)
 
   95     { is_adapted = 
false; xfem_index = reserve_xfem_index(); }
 
   96     void set_enrichment(
const dal::bit_vector &nn)
 
   97     { enriched_dof = nn; adapt(); }
 
   99     ~mesh_fem_product() { clear_build_methods(); }
 
const mesh & linked_mesh() const
Return a reference to the underlying mesh.
 
mesh_fem(const mesh &me, dim_type Q=1)
Build a new mesh_fem.
 
Define the getfem::mesh_fem class.
 
void clear(L &l)
clear (fill with zeros) a vector or matrix.
 
std::shared_ptr< const getfem::virtual_fem > pfem
type of pointer on a fem description
 
size_t size_type
used as the common size type in the library
 
GEneric Tool for Finite Element Methods.