37 #ifndef GETFEM_MAT_ELEM_TYPE_H__
38 #define GETFEM_MAT_ELEM_TYPE_H__
47 { GETFEM_BASE_, GETFEM_GRAD_, GETFEM_HESSIAN_, GETFEM_NONLINEAR_,
48 GETFEM_UNIT_NORMAL_, GETFEM_GRAD_GEOTRANS_, GETFEM_GRAD_GEOTRANS_INV_ };
51 typedef std::shared_ptr<const mat_elem_type> pmat_elem_type;
68 mutable std::set<pmat_elem_type> melt_list;
74 virtual const bgeot::multi_index &sizes(
size_type icv)
const = 0;
80 size_type &term_num(
void)
const {
return term_num_; }
81 void register_mat_elem(pmat_elem_type p)
82 { melt_list.insert(p); }
108 bgeot::multi_index mi;
110 bgeot::multi_index sizes(
size_type)
const;
111 bgeot::multi_index &get_mi(
void) {
return mi; }
112 const bgeot::multi_index &get_mi(
void)
const {
return mi; }
113 mat_elem_type() { DAL_STORED_OBJECT_DEBUG_CREATED(
this,
"Mat elem type"); }
115 : std::vector<constituant>(o), mi(o.mi)
116 { DAL_STORED_OBJECT_DEBUG_CREATED(
this,
"Mat elem type"); }
118 { DAL_STORED_OBJECT_DEBUG_DESTROYED(
this,
"Mat elem type"); }
163 std::vector<pfem> pfi);
171 pmat_elem_type mat_elem_empty();
base class for static stored objects
structure passed as the argument of fem interpolation functions.
Description of an elementary matrix.
abstract class for integration of non-linear terms into the mat_elem computations the nonlinear term ...
defines and typedefs for namespace getfem
Definition of the finite element methods.
Integration methods (exact and approximated) on convexes.
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.
pmat_elem_type mat_elem_unit_normal(void)
Give a pointer to the structure describing the elementary matrix which compute the unit normal on the...
pmat_elem_type mat_elem_hessian(pfem pfi)
Give a pointer to the structure describing the elementary matrix which compute the integral of the he...
pmat_elem_type mat_elem_nonlinear(pnonlinear_elem_term, std::vector< pfem > pfi)
Give a pointer to the structure describing the elementary matrix which compute the integral of a nonl...
pmat_elem_type mat_elem_base(pfem pfi)
Give a pointer to the structure describing the elementary matrix which compute the integral of the ba...
pmat_elem_type mat_elem_grad_geotrans(bool inverted)
Return the gradient of the geometrical transformation ("K" in the getfem++ kernel doc....
pmat_elem_type mat_elem_product(pmat_elem_type a, pmat_elem_type b)
Give a pointer to the structure describing the elementary matrix which computes the integral of produ...
pmat_elem_type mat_elem_grad(pfem pfi)
Give a pointer to the structure describing the elementary matrix which compute the integral of the gr...