getfem  5.4.1
About: The Getfem++ project focuses on the development of a generic and efficient C++ library for finite element methods elementary computations.
  Fossies Dox: getfem-5.4.1.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

Finite element description
Collaboration diagram for Finite element description:

Classes

class  getfem::virtual_fem
 Base class for finite element description. More...
 
class  getfem::fem< FUNC >
 
class  getfem::fem_precomp_
 
class  getfem::fem_precomp_pool
 
class  getfem::fem_interpolation_context
 

Typedefs

typedef std::shared_ptr< const getfem::virtual_femgetfem::pfem
 
typedef std::shared_ptr< const getfem::fem_precomp_getfem::pfem_precomp
 
typedef const fem< bgeot::base_poly > * getfem::ppolyfem
 
typedef const fem< bgeot::polynomial_composite > * getfem::ppolycompfem
 
typedef const fem< bgeot::base_rational_fraction > * getfem::prationalfracfem
 
typedef dal::naming_system< virtual_fem >::param_list getfem::fem_param_list
 

Enumerations

enum  getfem::virtual_fem::vec_type { getfem::virtual_fem::VECTORIAL_NOTRANSFORM_TYPE, getfem::virtual_fem::VECTORIAL_PRIMAL_TYPE, getfem::virtual_fem::VECTORIAL_DUAL_TYPE }
 

Functions

virtual size_type getfem::virtual_fem::nb_dof (size_type) const
 
virtual size_type getfem::virtual_fem::nb_base (size_type cv) const
 Number of basis functions. More...
 
size_type getfem::virtual_fem::nb_base_components (size_type cv) const
 Number of components (nb_dof() * dimension of the target space). More...
 
size_type getfem::virtual_fem::nb_components (size_type cv) const
 
const std::vector< pdof_description > & getfem::virtual_fem::dof_types () const
 Get the array of pointer on dof description. More...
 
short_type getfem::virtual_fem::hierarchical_raff () const
 
dim_type getfem::virtual_fem::dim () const
 dimension of the reference element. More...
 
dim_type & getfem::virtual_fem::dim ()
 
dim_type getfem::virtual_fem::target_dim () const
 dimension of the target space. More...
 
vec_type getfem::virtual_fem::vectorial_type () const
 Type of vectorial element. More...
 
virtual bgeot::pconvex_ref getfem::virtual_fem::ref_convex (size_type) const
 Return the convex of the reference element. More...
 
bgeot::pconvex_refgetfem::virtual_fem::mref_convex ()
 
bgeot::pconvex_structure getfem::virtual_fem::basic_structure (size_type cv) const
 Gives the convex of the reference element. More...
 
virtual const bgeot::convex< base_node > & getfem::virtual_fem::node_convex (size_type) const
 Gives the convex representing the nodes on the reference element. More...
 
bgeot::pconvex_structure getfem::virtual_fem::structure (size_type cv) const
 Gives the convex structure of the reference element nodes. More...
 
const std::string & getfem::virtual_fem::debug_name () const
 
std::string & getfem::virtual_fem::debug_name ()
 
virtual bgeot::pstored_point_tab getfem::virtual_fem::node_tab (size_type) const
 
const base_node & getfem::virtual_fem::node_of_dof (size_type cv, size_type i) const
 
virtual const std::vector< short_type > & getfem::virtual_fem::faces_of_dof (size_type, size_type i) const
 
bool getfem::virtual_fem::is_on_real_element () const
 
bool getfem::virtual_fem::is_equivalent () const
 
bool getfem::virtual_fem::need_G () const
 
bool getfem::virtual_fem::is_lagrange () const
 true if the base functions are such that $ \varphi_i(\textrm{node\_of\_dof(j)}) = \delta_{ij} $ More...
 
bool getfem::virtual_fem::is_polynomial () const
 true if the base functions are polynomials More...
 
bool getfem::virtual_fem::is_polynomialcomp () const
 
bool getfem::virtual_fem::is_standard () const
 
bool & getfem::virtual_fem::is_polynomialcomp ()
 
bool & getfem::virtual_fem::is_equivalent ()
 
bool & getfem::virtual_fem::is_lagrange ()
 
bool & getfem::virtual_fem::is_polynomial ()
 
bool & getfem::virtual_fem::is_standard ()
 
short_type getfem::virtual_fem::estimated_degree () const
 
short_type & getfem::virtual_fem::estimated_degree ()
 
virtual void getfem::virtual_fem::mat_trans (base_matrix &, const base_matrix &, bgeot::pgeometric_trans) const
 
template<typename CVEC , typename VVEC >
void getfem::virtual_fem::interpolation (const fem_interpolation_context &c, const CVEC &coeff, VVEC &val, dim_type Qdim) const
 
template<typename MAT >
void getfem::virtual_fem::interpolation (const fem_interpolation_context &c, MAT &M, dim_type Qdim) const
 
template<typename CVEC , typename VMAT >
void getfem::virtual_fem::interpolation_grad (const fem_interpolation_context &c, const CVEC &coeff, VMAT &val, dim_type Qdim=1) const
 
template<typename CVEC , typename VMAT >
void getfem::virtual_fem::interpolation_hess (const fem_interpolation_context &c, const CVEC &coeff, VMAT &val, dim_type Qdim) const
 
template<typename CVEC >
void getfem::virtual_fem::interpolation_diverg (const fem_interpolation_context &c, const CVEC &coeff, typename gmm::linalg_traits< CVEC >::value_type &val) const
 
virtual void getfem::virtual_fem::base_value (const base_node &x, base_tensor &t) const =0
 
virtual void getfem::virtual_fem::grad_base_value (const base_node &x, base_tensor &t) const =0
 
virtual void getfem::virtual_fem::hess_base_value (const base_node &x, base_tensor &t) const =0
 
virtual void getfem::virtual_fem::real_base_value (const fem_interpolation_context &c, base_tensor &t, bool withM=true) const
 
virtual void getfem::virtual_fem::real_grad_base_value (const fem_interpolation_context &c, base_tensor &t, bool withM=true) const
 
virtual void getfem::virtual_fem::real_hess_base_value (const fem_interpolation_context &c, base_tensor &t, bool withM=true) const
 
virtual size_type getfem::virtual_fem::index_of_global_dof (size_type, size_type) const
 
void getfem::virtual_fem::add_node (const pdof_description &d, const base_node &pt, const dal::bit_vector &faces)
 
void getfem::virtual_fem::add_node (const pdof_description &d, const base_node &pt)
 
void getfem::virtual_fem::init_cvs_node ()
 
void getfem::virtual_fem::unfreeze_cvs_node ()
 
virtual_femgetfem::virtual_fem::operator= (const virtual_fem &f)
 
 getfem::virtual_fem::virtual_fem ()
 
 getfem::virtual_fem::virtual_fem (const virtual_fem &f)
 
virtual getfem::virtual_fem::~virtual_fem ()
 
void getfem::virtual_fem::copy (const virtual_fem &f)
 
void getfem::fem< FUNC >::compute_grad_ () const
 
void getfem::fem< FUNC >::compute_hess_ () const
 
const std::vector< FUNC > & getfem::fem< FUNC >::base () const
 Gives the array of basic functions (components). More...
 
std::vector< FUNC > & getfem::fem< FUNC >::base ()
 
void getfem::fem< FUNC >::base_value (const base_node &x, base_tensor &t) const
 
void getfem::fem< FUNC >::grad_base_value (const base_node &x, base_tensor &t) const
 
void getfem::fem< FUNC >::hess_base_value (const base_node &x, base_tensor &t) const
 
pfem getfem::classical_fem (bgeot::pgeometric_trans pgt, short_type k, bool complete=false)
 
pfem getfem::classical_discontinuous_fem (bgeot::pgeometric_trans pg, short_type k, scalar_type alpha=0, bool complete=false)
 
pfem getfem::fem_descriptor (const std::string &name)
 
std::string getfem::name_of_fem (pfem p)
 
pfem getfem::PK_fem (size_type n, short_type k)
 
pfem getfem::QK_fem (size_type n, short_type k)
 
pfem getfem::PK_prism_fem (size_type n, short_type k)
 
const base_tensor & getfem::fem_precomp_::val (size_type i) const
 returns values of the base functions More...
 
const base_tensor & getfem::fem_precomp_::grad (size_type i) const
 returns gradients of the base functions More...
 
const base_tensor & getfem::fem_precomp_::hess (size_type i) const
 returns hessians of the base functions More...
 
pfem getfem::fem_precomp_::get_pfem () const
 
bgeot::pstored_point_tab getfem::fem_precomp_::get_ppoint_tab () const
 
 getfem::fem_precomp_::fem_precomp_ (const pfem, const bgeot::pstored_point_tab)
 
 getfem::fem_precomp_::~fem_precomp_ ()
 
void getfem::fem_precomp_::init_val () const
 
void getfem::fem_precomp_::init_grad () const
 
void getfem::fem_precomp_::init_hess () const
 
pfem_precomp getfem::fem_precomp (pfem pf, bgeot::pstored_point_tab pspt, dal::pstatic_stored_object dep)
 Handles precomputations for FEM. statically allocates a fem-precomputation object, and returns a pointer to it. The fem_precomp_ objects are "cached", i.e. they are stored in a global pool and if this function is called two times with the same arguments, a pointer to the same object will be returned. More...
 
void getfem::delete_fem_precomp (pfem_precomp pfp)
 
pfem_precomp getfem::fem_precomp_pool::operator() (pfem pf, bgeot::pstored_point_tab pspt)
 
void getfem::fem_precomp_pool::clear ()
 
 getfem::fem_precomp_pool::~fem_precomp_pool ()
 
bool getfem::fem_interpolation_context::have_pfp () const
 true if a fem_precomp_ has been supplied. More...
 
bool getfem::fem_interpolation_context::have_pf () const
 true if the pfem is available. More...
 
const base_matrix & getfem::fem_interpolation_context::M () const
 non tau-equivalent transformation matrix. More...
 
void getfem::fem_interpolation_context::base_value (base_tensor &t, bool withM=true) const
 
void getfem::fem_interpolation_context::pfp_base_value (base_tensor &t, const pfem_precomp &pfp__)
 
void getfem::fem_interpolation_context::grad_base_value (base_tensor &t, bool withM=true) const
 
void getfem::fem_interpolation_context::pfp_grad_base_value (base_tensor &t, const pfem_precomp &pfp__)
 
void getfem::fem_interpolation_context::hess_base_value (base_tensor &t, bool withM=true) const
 
const pfem getfem::fem_interpolation_context::pf () const
 
size_type getfem::fem_interpolation_context::convex_num () const
 
bool getfem::fem_interpolation_context::is_convex_num_valid () const
 
void getfem::fem_interpolation_context::invalid_convex_num ()
 
void getfem::fem_interpolation_context::set_face_num (short_type f)
 
short_type getfem::fem_interpolation_context::face_num () const
 
bool getfem::fem_interpolation_context::is_on_face () const
 
pfem_precomp getfem::fem_interpolation_context::pfp () const
 
void getfem::fem_interpolation_context::set_pfp (pfem_precomp newpfp)
 
void getfem::fem_interpolation_context::set_pf (pfem newpf)
 
int getfem::fem_interpolation_context::xfem_side () const
 
void getfem::fem_interpolation_context::set_xfem_side (int side)
 
void getfem::fem_interpolation_context::change (bgeot::pgeotrans_precomp pgp__, pfem_precomp pfp__, size_type ii__, const base_matrix &G__, size_type convex_num__, short_type face_num__=short_type(-1))
 
void getfem::fem_interpolation_context::change (bgeot::pgeometric_trans pgt__, pfem_precomp pfp__, size_type ii__, const base_matrix &G__, size_type convex_num__, short_type face_num__=short_type(-1))
 
void getfem::fem_interpolation_context::change (bgeot::pgeometric_trans pgt__, pfem pf__, const base_node &xref__, const base_matrix &G__, size_type convex_num__, short_type face_num__=short_type(-1))
 
 getfem::fem_interpolation_context::fem_interpolation_context ()
 
 getfem::fem_interpolation_context::fem_interpolation_context (bgeot::pgeotrans_precomp pgp__, pfem_precomp pfp__, size_type ii__, const base_matrix &G__, size_type convex_num__, short_type face_num__=short_type(-1))
 
 getfem::fem_interpolation_context::fem_interpolation_context (bgeot::pgeometric_trans pgt__, pfem_precomp pfp__, size_type ii__, const base_matrix &G__, size_type convex_num__, short_type face_num__=short_type(-1))
 
 getfem::fem_interpolation_context::fem_interpolation_context (bgeot::pgeometric_trans pgt__, pfem pf__, const base_node &xref__, const base_matrix &G__, size_type convex_num__, short_type face_num__=short_type(-1))
 
pfem getfem::interior_fem_of_hho_method (pfem hho_method)
 
void getfem::read_poly (bgeot::base_poly &p, int d, const char *s)
 
void getfem::add_fem_name (std::string name, dal::naming_system< virtual_fem >::pfunction f)
 

Variables

std::vector< pdof_descriptiongetfem::virtual_fem::dof_types_
 
std::shared_ptr< bgeot::convex_structuregetfem::virtual_fem::cvs_node
 
std::vector< std::vector< short_type > > getfem::virtual_fem::face_tab
 
bgeot::convex< base_node > getfem::virtual_fem::cv_node
 
bgeot::pstored_point_tab getfem::virtual_fem::pspt
 
bool getfem::virtual_fem::pspt_valid
 
bgeot::pconvex_ref getfem::virtual_fem::cvr
 
dim_type getfem::virtual_fem::ntarget_dim
 
dim_type getfem::virtual_fem::dim_
 
bool getfem::virtual_fem::is_equiv
 
bool getfem::virtual_fem::is_lag
 
bool getfem::virtual_fem::is_pol
 
bool getfem::virtual_fem::is_polycomp
 
bool getfem::virtual_fem::real_element_defined
 
bool getfem::virtual_fem::is_standard_fem
 
short_type getfem::virtual_fem::es_degree
 
short_type getfem::virtual_fem::hier_raff
 
vec_type getfem::virtual_fem::vtype
 
std::string getfem::virtual_fem::debug_name_
 
std::vector< FUNC > getfem::fem< FUNC >::base_
 
std::vector< std::vector< FUNC > > getfem::fem< FUNC >::grad_
 
std::vector< std::vector< FUNC > > getfem::fem< FUNC >::hess_
 
bool getfem::fem< FUNC >::grad_computed_ = false
 
bool getfem::fem< FUNC >::hess_computed_ = false
 
const pfem getfem::fem_precomp_::pf
 
const bgeot::pstored_point_tab getfem::fem_precomp_::pspt
 
std::vector< base_tensor > getfem::fem_precomp_::c
 
std::vector< base_tensor > getfem::fem_precomp_::pc
 
std::vector< base_tensor > getfem::fem_precomp_::hpc
 
std::set< pfem_precompgetfem::fem_precomp_pool::precomps
 
base_matrix getfem::fem_interpolation_context::M_
 
pfem getfem::fem_interpolation_context::pf_
 
pfem_precomp getfem::fem_interpolation_context::pfp_
 
size_type getfem::fem_interpolation_context::convex_num_
 
short_type getfem::fem_interpolation_context::face_num_
 
int getfem::fem_interpolation_context::xfem_side_
 

Detailed Description

Typedef Documentation

◆ fem_param_list

Definition at line 1001 of file getfem_fem.h.

◆ pfem

typedef std::shared_ptr<const getfem::virtual_fem> getfem::pfem

type of pointer on a fem description

See also
getfem::virtual_fem

Definition at line 247 of file getfem_fem.h.

◆ pfem_precomp

Definition at line 250 of file getfem_fem.h.

◆ ppolycompfem

Polynomial composite FEM

Definition at line 601 of file getfem_fem.h.

◆ ppolyfem

Classical polynomial FEM.

Definition at line 599 of file getfem_fem.h.

◆ prationalfracfem

Rational fration FEM

Definition at line 603 of file getfem_fem.h.

Enumeration Type Documentation

◆ vec_type

Enumerator
VECTORIAL_NOTRANSFORM_TYPE 
VECTORIAL_PRIMAL_TYPE 
VECTORIAL_DUAL_TYPE 

Definition at line 258 of file getfem_fem.h.

Function Documentation

◆ add_fem_name()

void getfem::add_fem_name ( std::string  name,
dal::naming_system< virtual_fem >::pfunction  f 
)

Definition at line 4253 of file getfem_fem.cc.

References dal::singleton< T, LEV >::instance().

◆ add_node() [1/2]

void getfem::virtual_fem::add_node ( const pdof_description d,
const base_node &  pt 
)

◆ add_node() [2/2]

void getfem::virtual_fem::add_node ( const pdof_description d,
const base_node &  pt,
const dal::bit_vector &  faces 
)

internal function adding a node to an element for the creation of a finite element method. Important : the faces should be the faces on which the corresponding base function is non zero.

Definition at line 648 of file getfem_fem.cc.

References getfem::virtual_fem::cv_node, getfem::virtual_fem::cvs_node, getfem::virtual_fem::dof_types_, getfem::virtual_fem::face_tab, bgeot::convex< PT, PT_TAB >::nb_points(), bgeot::convex< PT, PT_TAB >::points(), and getfem::virtual_fem::pspt_valid.

Referenced by getfem::virtual_fem::add_node(), getfem::argyris_triangle__::argyris_triangle__(), getfem::CIPK_SQUARE_::CIPK_SQUARE_(), getfem::HCT_triangle__::HCT_triangle__(), getfem::hermite_segment__::hermite_segment__(), getfem::hermite_tetrahedron__::hermite_tetrahedron__(), getfem::hermite_triangle__::hermite_triangle__(), getfem::fem_level_set::init(), getfem::fem_product::init(), getfem::fem_sum::init(), getfem::torus_fem::init(), getfem::morley_triangle__::morley_triangle__(), getfem::P1_nedelec_::P1_nedelec_(), getfem::P1_RT0_::P1_RT0_(), getfem::P1_RT0Q_::P1_RT0Q_(), getfem::P1_wabbfoaf_::P1_wabbfoaf_(), getfem::P1_wabbfoafla_::P1_wabbfoafla_(), getfem::P1bubbletriangle__::P1bubbletriangle__(), getfem::PK_fem_::PK_fem_(), getfem::PK_GL_fem_::PK_GL_fem_(), getfem::PK_with_cubic_bubble_::PK_with_cubic_bubble_(), getfem::quadc1p3__::quadc1p3__(), getfem::reduced_HCT_triangle__::reduced_HCT_triangle__(), getfem::reduced_quadc1p3__::reduced_quadc1p3__(), getfem::torus_fem::set_to_scalar(), getfem::thierach_femi::thierach_femi(), getfem::thierach_femi_comp::thierach_femi_comp(), and getfem::tproduct_femi::tproduct_femi().

◆ base() [1/2]

template<class FUNC >
std::vector<FUNC>& getfem::fem< FUNC >::base ( )
inline

Definition at line 551 of file getfem_fem.h.

◆ base() [2/2]

◆ base_value() [1/3]

void getfem::fem_interpolation_context::base_value ( base_tensor &  t,
bool  withM = true 
) const

fill the tensor with the values of the base functions (taken at point this->xref())

Definition at line 120 of file getfem_fem.cc.

References bgeot::geotrans_interpolation_context::B(), bgeot::geotrans_interpolation_context::ii(), bgeot::geotrans_interpolation_context::ii_, bgeot::geotrans_interpolation_context::K(), getfem::fem_interpolation_context::M(), getfem::fem_interpolation_context::pf_, getfem::fem_interpolation_context::pfp_, t, getfem::virtual_fem::VECTORIAL_DUAL_TYPE, getfem::virtual_fem::VECTORIAL_NOTRANSFORM_TYPE, getfem::virtual_fem::VECTORIAL_PRIMAL_TYPE, and bgeot::geotrans_interpolation_context::xref().

Referenced by getfem::ga_instruction_val_base::exec(), getfem::ga_instruction_xfem_plus_val_base::exec(), getfem::ga_instruction_xfem_minus_val_base::exec(), getfem::_HHO_reconstructed_gradient::give_transformation(), getfem::_HHO_reconstructed_sym_gradient::give_transformation(), getfem::_HHO_reconstructed_value::give_transformation(), getfem::_HHO_reconstructed_sym_value::give_transformation(), getfem::_HHO_stabilization::give_transformation(), getfem::_HHO_symmetrized_stabilization::give_transformation(), getfem::fem_level_set::real_base_value(), getfem::fem_product::real_base_value(), getfem::fem_sum::real_base_value(), getfem::fem_product::real_grad_base_value(), getfem::fem_product::real_hess_base_value(), getfem::raytracing_interpolate_transformation::transform(), getfem::projection_interpolate_transformation::transform(), getfem::gauss_point_precomp::vbase_lx(), getfem::gauss_point_precomp::vbase_ly(), getfem::gauss_point_precomp::vbase_ux(), and getfem::gauss_point_precomp::vbase_uy().

◆ base_value() [2/3]

template<class FUNC >
void getfem::fem< FUNC >::base_value ( const base_node &  x,
base_tensor &  t 
) const
inlinevirtual

Evaluates at point x, all base functions and returns the result in t(nb_base,target_dim)

Implements getfem::virtual_fem.

Definition at line 554 of file getfem_fem.h.

◆ base_value() [3/3]

virtual void getfem::virtual_fem::base_value ( const base_node &  x,
base_tensor &  t 
) const
pure virtual

Give the value of all components of the base functions at the point x of the reference element. Basic function used essentially by fem_precomp.

Implemented in getfem::fem_sum, getfem::fem_product, getfem::fem_level_set, getfem::fem< FUNC >, getfem::fem< base_poly >, getfem::fem< bgeot::polynomial_composite >, getfem::torus_fem, getfem::projected_fem, getfem::interpolated_fem, and getfem::fem_global_function.

◆ basic_structure()

bgeot::pconvex_structure getfem::virtual_fem::basic_structure ( size_type  cv) const
inline

Gives the convex of the reference element.

Definition at line 322 of file getfem_fem.h.

References getfem::virtual_fem::ref_convex().

Referenced by getfem::thierach_femi::thierach_femi(), and getfem::thierach_femi_comp::thierach_femi_comp().

◆ change() [1/3]

void getfem::fem_interpolation_context::change ( bgeot::pgeometric_trans  pgt__,
pfem  pf__,
const base_node &  xref__,
const base_matrix &  G__,
size_type  convex_num__,
short_type  face_num__ = short_type(-1) 
)
inline

◆ change() [2/3]

void getfem::fem_interpolation_context::change ( bgeot::pgeometric_trans  pgt__,
pfem_precomp  pfp__,
size_type  ii__,
const base_matrix &  G__,
size_type  convex_num__,
short_type  face_num__ = short_type(-1) 
)
inline

◆ change() [3/3]

◆ classical_discontinuous_fem()

pfem getfem::classical_discontinuous_fem ( bgeot::pgeometric_trans  pgt,
short_type  k,
scalar_type  alpha = 0,
bool  complete = false 
)

Give a pointer on the structures describing the classical polynomial discontinuous fem of degree k on a given convex type.

Parameters
pgtthe geometric transformation (which defines the convex type).
kthe degree of the fem.
alphathe "inset" factor for the dof nodes: with alpha = 0, the nodes are located as usual (i.e. with node on the convex border), and for 0 < alpha < 1, they converge to the center of gravity of the convex.
completea flag which requests complete Langrange polynomial elements even if the provided pgt is an incomplete one (e.g. 8-node quadrilateral or 20-node hexahedral).
Returns
a ppolyfem.

Definition at line 4146 of file getfem_fem.cc.

References alpha, getfem::classical_fem_(), and gmm::k().

Referenced by getfem::vtk_export::exporting(), getfem::pos_export::exporting(), getfem::dx_export::exporting(), and getfem::mesh_fem::set_classical_discontinuous_finite_element().

◆ classical_fem()

pfem getfem::classical_fem ( bgeot::pgeometric_trans  pgt,
short_type  k,
bool  complete = false 
)

Give a pointer on the structures describing the classical polynomial fem of degree k on a given convex type.

Parameters
pgtthe geometric transformation (which defines the convex type).
kthe degree of the fem.
completea flag which requests complete Langrange polynomial elements even if the provided pgt is an incomplete one (e.g. 8-node quadrilateral or 20-node hexahedral).
Returns
a ppolyfem.

Definition at line 4141 of file getfem_fem.cc.

References getfem::classical_fem_(), and gmm::k().

Referenced by bilaplacian_crack_problem::compute_H2_error_field(), getfem::vtk_export::exporting(), getfem::pos_export::exporting(), getfem::dx_export::exporting(), getfem::_HHO_stabilization::give_transformation(), getfem::_HHO_symmetrized_stabilization::give_transformation(), getfem::mesh_fem::set_classical_finite_element(), and bilaplacian_crack_problem::solve().

◆ clear()

void getfem::fem_precomp_pool::clear ( void  )

◆ compute_grad_()

template<class FUNC >
void getfem::fem< FUNC >::compute_grad_ ( ) const
inlineprotected

◆ compute_hess_()

template<class FUNC >
void getfem::fem< FUNC >::compute_hess_ ( ) const
inlineprotected

◆ convex_num()

size_type getfem::fem_interpolation_context::convex_num ( ) const

get the current convex number

Definition at line 52 of file getfem_fem.cc.

References getfem::fem_interpolation_context::convex_num_, and GMM_ASSERT3.

Referenced by getfem::emelem_comp_structure_::add_elem(), getfem::improved_non_reflective_bc_nonlinear_term< VECT1 >::compute(), level_set_unit_normal< VECT1 >::compute(), nonlin_h< VECT1 >::compute(), level_set_unit_tang< VECT1 >::compute(), level_set_contact::NormalTerm::compute(), level_set_contact::HFunction::compute(), getfem::elasticity_nonlinear_term< VECT1, VECT2 >::compute(), getfem::incomp_nonlinear_term< VECT1 >::compute(), getfem::mesh_im_level_set::compute_normal_vector(), getfem::ga_instruction_elementary_trans::do_transformation(), getfem::ga_instruction_elementary_trans_base::do_transformation(), getfem::ga_instruction_extract_local_im_data::exec(), getfem::ga_instruction_slice_local_dofs::exec(), getfem::ga_instruction_update_pfp::exec(), getfem::ga_instruction_first_ind_tensor::exec(), getfem::ga_instruction_second_ind_tensor::exec(), getfem::ga_instruction_two_first_ind_tensor::exec(), getfem::ga_instruction_val_base::exec(), getfem::ga_instruction_xfem_plus_val_base::exec(), getfem::ga_instruction_xfem_minus_val_base::exec(), getfem::ga_instruction_grad_base::exec(), getfem::ga_instruction_xfem_plus_grad_base::exec(), getfem::ga_instruction_xfem_minus_grad_base::exec(), getfem::ga_instruction_hess_base::exec(), getfem::ga_instruction_xfem_plus_hess_base::exec(), getfem::ga_instruction_xfem_minus_hess_base::exec(), getfem::ga_instruction_interpolate::exec(), getfem::ga_instruction_interpolate_base::exec(), getfem::ga_instruction_print_tensor::exec(), getfem::ga_instruction_neighbor_transformation_call::exec(), getfem::ga_instruction_vector_assembly_mf::exec(), getfem::ga_instruction_vector_assembly_imd::exec(), getfem::ga_instruction_assignment::exec(), getfem::ga_instruction_extract_residual_on_imd_dofs::exec(), getfem::ga_instruction_matrix_assembly_mf_mf::exec(), getfem::ga_instruction_matrix_assembly_imd_mf::exec(), getfem::ga_instruction_matrix_assembly_mf_imd::exec(), getfem::ga_instruction_matrix_assembly_imd_imd::exec(), getfem::ga_instruction_matrix_assembly_standard_scalar::exec(), getfem::ga_instruction_matrix_assembly_standard_vector::exec(), getfem::ga_instruction_matrix_assembly_standard_vector_opt10< QQ >::exec(), getfem::fem_interpolation_context::M(), getfem::contact_rigid_obstacle_nonlinear_term::prepare(), getfem::contact_nonmatching_meshes_nonlinear_term::prepare(), getfem::elasticity_nonlinear_term< VECT1, VECT2 >::prepare(), getfem::interpolate_transformation_neighbor::transform(), getfem::interpolate_transformation_element_extrapolation::transform(), getfem::raytracing_interpolate_transformation::transform(), and getfem::projection_interpolate_transformation::transform().

◆ copy()

◆ debug_name() [1/2]

std::string& getfem::virtual_fem::debug_name ( )
inline

Definition at line 331 of file getfem_fem.h.

References getfem::virtual_fem::debug_name_.

◆ debug_name() [2/2]

const std::string& getfem::virtual_fem::debug_name ( ) const
inline

Definition at line 330 of file getfem_fem.h.

References getfem::virtual_fem::debug_name_.

Referenced by getfem::fem_descriptor(), and getfem::fem_sum::init().

◆ delete_fem_precomp()

void getfem::delete_fem_precomp ( pfem_precomp  pfp)
inline

Request for the removal of a pfem_precomp

Definition at line 706 of file getfem_fem.h.

References dal::del_stored_object().

◆ dim() [1/2]

dim_type& getfem::virtual_fem::dim ( void  )
inline

Definition at line 312 of file getfem_fem.h.

References getfem::virtual_fem::dim_.

◆ dim() [2/2]

◆ dof_types()

const std::vector<pdof_description>& getfem::virtual_fem::dof_types ( ) const
inline

◆ estimated_degree() [1/2]

short_type& getfem::virtual_fem::estimated_degree ( )
inline

Definition at line 365 of file getfem_fem.h.

References getfem::virtual_fem::es_degree.

◆ estimated_degree() [2/2]

◆ face_num()

◆ faces_of_dof()

const std::vector< short_type > & getfem::virtual_fem::faces_of_dof ( size_type  ,
size_type  i 
) const
virtual

Definition at line 686 of file getfem_fem.cc.

References getfem::virtual_fem::face_tab, and i.

◆ fem_descriptor()

◆ fem_interpolation_context() [1/4]

getfem::fem_interpolation_context::fem_interpolation_context ( )
inline

Definition at line 823 of file getfem_fem.h.

◆ fem_interpolation_context() [2/4]

getfem::fem_interpolation_context::fem_interpolation_context ( bgeot::pgeometric_trans  pgt__,
pfem  pf__,
const base_node &  xref__,
const base_matrix &  G__,
size_type  convex_num__,
short_type  face_num__ = short_type(-1) 
)
inline

Definition at line 843 of file getfem_fem.h.

◆ fem_interpolation_context() [3/4]

getfem::fem_interpolation_context::fem_interpolation_context ( bgeot::pgeometric_trans  pgt__,
pfem_precomp  pfp__,
size_type  ii__,
const base_matrix &  G__,
size_type  convex_num__,
short_type  face_num__ = short_type(-1) 
)
inline

Definition at line 834 of file getfem_fem.h.

References getfem::fem_interpolation_context::set_pfp().

◆ fem_interpolation_context() [4/4]

getfem::fem_interpolation_context::fem_interpolation_context ( bgeot::pgeotrans_precomp  pgp__,
pfem_precomp  pfp__,
size_type  ii__,
const base_matrix &  G__,
size_type  convex_num__,
short_type  face_num__ = short_type(-1) 
)
inline

Definition at line 826 of file getfem_fem.h.

References getfem::fem_interpolation_context::set_pfp().

◆ fem_precomp()

pfem_precomp getfem::fem_precomp ( pfem  pf,
bgeot::pstored_point_tab  pspt,
dal::pstatic_stored_object  dep 
)

Handles precomputations for FEM. statically allocates a fem-precomputation object, and returns a pointer to it. The fem_precomp_ objects are "cached", i.e. they are stored in a global pool and if this function is called two times with the same arguments, a pointer to the same object will be returned.

Parameters
pfa pointer to the fem object.
pspta pointer to a list of points in the reference convex.CAUTION: this array must not be destroyed as long as the fem_precomp is used!!.

Moreover pspt is supposed to identify uniquely the set of points. This means that you should NOT alter its content at any time after using this function.

If you need a set of "temporary" getfem::fem_precomp_, create them via a getfem::fem_precomp_pool structure. All memory will be freed when this structure will be destroyed.

Definition at line 4333 of file getfem_fem.cc.

References dal::add_dependency(), dal::add_stored_object(), dal::AUTODELETE_STATIC_OBJECT, dal::exists_stored_object(), o, gmm::p(), and dal::search_stored_object().

Referenced by getfem::compute_gradient(), getfem::compute_hessian(), compute_mass_matrix_extra_element(), getfem::emelem_comp_structure_::emelem_comp_structure_(), getfem::P1_nedelec_::mat_trans(), getfem::argyris_triangle__::mat_trans(), getfem::morley_triangle__::mat_trans(), getfem::HCT_triangle__::mat_trans(), getfem::quadc1p3__::mat_trans(), getfem::fem_precomp_pool::operator()(), getfem::fem_level_set::real_base_value(), getfem::fem_product::real_base_value(), getfem::fem_sum::real_base_value(), getfem::fem_level_set::real_grad_base_value(), getfem::fem_product::real_grad_base_value(), getfem::fem_sum::real_grad_base_value(), getfem::torus_fem::real_grad_base_value(), getfem::fem_level_set::real_hess_base_value(), getfem::fem_product::real_hess_base_value(), getfem::fem_sum::real_hess_base_value(), and getfem::select_dofs_from_im().

◆ fem_precomp_()

getfem::fem_precomp_::fem_precomp_ ( const pfem  pff,
const bgeot::pstored_point_tab  ps 
)

◆ get_pfem()

pfem getfem::fem_precomp_::get_pfem ( ) const
inline

Definition at line 671 of file getfem_fem.h.

References getfem::fem_precomp_::pf.

◆ get_ppoint_tab()

bgeot::pstored_point_tab getfem::fem_precomp_::get_ppoint_tab ( ) const
inline

Definition at line 674 of file getfem_fem.h.

References getfem::fem_precomp_::pspt.

◆ grad()

const base_tensor& getfem::fem_precomp_::grad ( size_type  i) const
inline

returns gradients of the base functions

Definition at line 666 of file getfem_fem.h.

References i, getfem::fem_precomp_::init_grad(), and getfem::fem_precomp_::pc.

◆ grad_base_value() [1/3]

void getfem::fem_interpolation_context::grad_base_value ( base_tensor &  t,
bool  withM = true 
) const

fill the tensor with the gradient of the base functions (taken at point this->xref())

Definition at line 202 of file getfem_fem.cc.

References bgeot::geotrans_interpolation_context::B(), getfem::fem_interpolation_context::have_pfp(), bgeot::geotrans_interpolation_context::ii(), bgeot::geotrans_interpolation_context::ii_, bgeot::geotrans_interpolation_context::K(), getfem::fem_interpolation_context::M(), getfem::fem_interpolation_context::pf(), getfem::fem_interpolation_context::pf_, getfem::fem_interpolation_context::pfp_, getfem::spec_mat_tmult_(), t, getfem::virtual_fem::VECTORIAL_DUAL_TYPE, getfem::virtual_fem::VECTORIAL_PRIMAL_TYPE, and bgeot::geotrans_interpolation_context::xref().

Referenced by getfem::ga_instruction_grad_base::exec(), getfem::ga_instruction_xfem_plus_grad_base::exec(), getfem::ga_instruction_xfem_minus_grad_base::exec(), getfem::_HHO_reconstructed_gradient::give_transformation(), getfem::_HHO_reconstructed_sym_gradient::give_transformation(), getfem::_HHO_reconstructed_value::give_transformation(), getfem::_HHO_reconstructed_sym_value::give_transformation(), getfem::_HHO_stabilization::give_transformation(), getfem::_HHO_symmetrized_stabilization::give_transformation(), getfem::fem_level_set::real_grad_base_value(), getfem::fem_product::real_grad_base_value(), getfem::fem_sum::real_grad_base_value(), getfem::fem_product::real_hess_base_value(), getfem::raytracing_interpolate_transformation::transform(), getfem::projection_interpolate_transformation::transform(), getfem::gauss_point_precomp::vgrad_base_ux(), and getfem::gauss_point_precomp::vgrad_base_uy().

◆ grad_base_value() [2/3]

template<class FUNC >
void getfem::fem< FUNC >::grad_base_value ( const base_node &  x,
base_tensor &  t 
) const
inlinevirtual

Evaluates at point x, the gradient of all base functions w.r.t. the reference element directions 0,..,dim-1 and returns the result in t(nb_base,target_dim,dim)

Implements getfem::virtual_fem.

Definition at line 566 of file getfem_fem.h.

◆ grad_base_value() [3/3]

virtual void getfem::virtual_fem::grad_base_value ( const base_node &  x,
base_tensor &  t 
) const
pure virtual

Give the value of all gradients (on ref. element) of the components of the base functions at the point x of the reference element. Basic function used essentially by fem_precomp.

Implemented in getfem::fem_sum, getfem::fem_product, getfem::fem_level_set, getfem::fem< FUNC >, getfem::fem< base_poly >, getfem::fem< bgeot::polynomial_composite >, getfem::torus_fem, getfem::projected_fem, getfem::interpolated_fem, and getfem::fem_global_function.

◆ have_pf()

bool getfem::fem_interpolation_context::have_pf ( ) const
inline

true if the pfem is available.

Definition at line 762 of file getfem_fem.h.

References getfem::fem_interpolation_context::pf_.

Referenced by getfem::fem_interpolation_context::M().

◆ have_pfp()

◆ hess()

const base_tensor& getfem::fem_precomp_::hess ( size_type  i) const
inline

returns hessians of the base functions

Definition at line 669 of file getfem_fem.h.

References getfem::fem_precomp_::hpc, i, and getfem::fem_precomp_::init_hess().

◆ hess_base_value() [1/3]

◆ hess_base_value() [2/3]

template<class FUNC >
void getfem::fem< FUNC >::hess_base_value ( const base_node &  x,
base_tensor &  t 
) const
inlinevirtual

Evaluates at point x, the hessian of all base functions w.r.t. the reference element directions 0,..,dim-1 and returns the result in t(nb_base,target_dim,dim,dim)

Implements getfem::virtual_fem.

Definition at line 581 of file getfem_fem.h.

◆ hess_base_value() [3/3]

virtual void getfem::virtual_fem::hess_base_value ( const base_node &  x,
base_tensor &  t 
) const
pure virtual

Give the value of all hessians (on ref. element) of the components of the base functions at the point x of the reference element. Basic function used essentially by fem_precomp.

Implemented in getfem::fem_sum, getfem::fem_product, getfem::fem_level_set, getfem::fem< FUNC >, getfem::fem< base_poly >, getfem::fem< bgeot::polynomial_composite >, getfem::torus_fem, getfem::projected_fem, getfem::interpolated_fem, and getfem::fem_global_function.

◆ hierarchical_raff()

short_type getfem::virtual_fem::hierarchical_raff ( ) const
inline

◆ index_of_global_dof()

virtual size_type getfem::virtual_fem::index_of_global_dof ( size_type  ,
size_type   
) const
inlinevirtual

◆ init_cvs_node()

◆ init_grad()

void getfem::fem_precomp_::init_grad ( ) const
private

◆ init_hess()

void getfem::fem_precomp_::init_hess ( ) const
private

◆ init_val()

void getfem::fem_precomp_::init_val ( ) const
private

◆ interior_fem_of_hho_method()

◆ interpolation() [1/2]

template<typename CVEC , typename VVEC >
void getfem::virtual_fem::interpolation ( const fem_interpolation_context c,
const CVEC &  coeff,
VVEC &  val,
dim_type  Qdim 
) const

Interpolate at an arbitrary point x given on the reference element.

Parameters
cthe fem_interpolation_context, should have been suitably initialized for the point of evaluation.
coeffis the vector of coefficient relatively to the base functions, its length should be Qdim*this->nb_dof().
valcontains the interpolated value, on output (its size should be Qdim*this->target_dim()).
Qdimis the optional Q dimension, if the FEM is considered as a "vectorized" one.

Definition at line 858 of file getfem_fem.h.

References c, gmm::clear(), GMM_ASSERT1, j, getfem::virtual_fem::nb_dof(), nbdof, q, r, getfem::virtual_fem::real_base_value(), getfem::virtual_fem::target_dim(), gmm::vect_size(), and Z.

◆ interpolation() [2/2]

template<typename MAT >
void getfem::virtual_fem::interpolation ( const fem_interpolation_context c,
MAT M,
dim_type  Qdim 
) const

Build the interpolation matrix for the interpolation at a fixed point x, given on the reference element.

The matrix M is filled, such that for a given coeff vector, the interpolation is given by M*coeff.

Definition at line 880 of file getfem_fem.h.

References c, gmm::clear(), GMM_ASSERT1, j, static_contact_planetary::M, gmm::mat_ncols(), gmm::mat_nrows(), getfem::virtual_fem::nb_dof(), nbdof, q, r, getfem::virtual_fem::real_base_value(), getfem::virtual_fem::target_dim(), and Z.

◆ interpolation_diverg()

template<typename CVEC >
void getfem::virtual_fem::interpolation_diverg ( const fem_interpolation_context c,
const CVEC &  coeff,
typename gmm::linalg_traits< CVEC >::value_type &  val 
) const

Interpolation of the divergence. The output is stored in the scalar val.

Definition at line 956 of file getfem_fem.h.

References c, GMM_ASSERT1, j, gmm::k(), N, getfem::virtual_fem::nb_dof(), nbdof, getfem::virtual_fem::real_grad_base_value(), t, getfem::virtual_fem::target_dim(), and gmm::vect_size().

◆ interpolation_grad()

template<typename CVEC , typename VMAT >
void getfem::virtual_fem::interpolation_grad ( const fem_interpolation_context c,
const CVEC &  coeff,
VMAT &  val,
dim_type  Qdim = 1 
) const

Interpolation of the gradient. The output is stored in the $ Q\times N$ matrix val.

Definition at line 902 of file getfem_fem.h.

References c, gmm::clear(), GMM_ASSERT1, j, gmm::k(), gmm::mat_ncols(), gmm::mat_nrows(), N, getfem::virtual_fem::nb_dof(), nbdof, q, r, getfem::virtual_fem::real_grad_base_value(), t, getfem::virtual_fem::target_dim(), and gmm::vect_size().

◆ interpolation_hess()

template<typename CVEC , typename VMAT >
void getfem::virtual_fem::interpolation_hess ( const fem_interpolation_context c,
const CVEC &  coeff,
VMAT &  val,
dim_type  Qdim 
) const

Interpolation of the hessian. The output is stored in the $ Q\times (N^2)$ matrix val.

Definition at line 929 of file getfem_fem.h.

References c, gmm::clear(), GMM_ASSERT1, j, gmm::k(), gmm::mat_ncols(), gmm::mat_nrows(), N, getfem::virtual_fem::nb_dof(), nbdof, q, r, getfem::virtual_fem::real_hess_base_value(), t, and getfem::virtual_fem::target_dim().

◆ invalid_convex_num()

void getfem::fem_interpolation_context::invalid_convex_num ( )
inline

◆ is_convex_num_valid()

◆ is_equivalent() [1/2]

bool& getfem::virtual_fem::is_equivalent ( )
inline

Definition at line 360 of file getfem_fem.h.

References getfem::virtual_fem::is_equiv.

◆ is_equivalent() [2/2]

◆ is_lagrange() [1/2]

bool& getfem::virtual_fem::is_lagrange ( )
inline

Definition at line 361 of file getfem_fem.h.

References getfem::virtual_fem::is_lag.

◆ is_lagrange() [2/2]

◆ is_on_face()

bool getfem::fem_interpolation_context::is_on_face ( ) const

On a face ?

Definition at line 67 of file getfem_fem.cc.

References getfem::fem_interpolation_context::face_num_.

◆ is_on_real_element()

bool getfem::virtual_fem::is_on_real_element ( ) const
inline

Definition at line 349 of file getfem_fem.h.

References getfem::virtual_fem::real_element_defined.

◆ is_polynomial() [1/2]

bool& getfem::virtual_fem::is_polynomial ( )
inline

Definition at line 362 of file getfem_fem.h.

References getfem::virtual_fem::is_pol.

◆ is_polynomial() [2/2]

◆ is_polynomialcomp() [1/2]

bool& getfem::virtual_fem::is_polynomialcomp ( )
inline

Definition at line 359 of file getfem_fem.h.

References getfem::virtual_fem::is_polycomp.

◆ is_polynomialcomp() [2/2]

◆ is_standard() [1/2]

bool& getfem::virtual_fem::is_standard ( )
inline

Definition at line 363 of file getfem_fem.h.

References getfem::virtual_fem::is_standard_fem.

◆ is_standard() [2/2]

◆ M()

◆ mat_trans()

◆ mref_convex()

◆ name_of_fem()

std::string getfem::name_of_fem ( pfem  p)

◆ nb_base()

◆ nb_base_components()

◆ nb_components()

size_type getfem::virtual_fem::nb_components ( size_type  cv) const
inline

◆ nb_dof()

◆ need_G()

bool getfem::virtual_fem::need_G ( ) const
inline

◆ node_convex()

virtual const bgeot::convex<base_node>& getfem::virtual_fem::node_convex ( size_type  ) const
inlinevirtual

Gives the convex representing the nodes on the reference element.

Reimplemented in getfem::projected_fem, getfem::interpolated_fem, and getfem::fem_global_function.

Definition at line 325 of file getfem_fem.h.

References getfem::virtual_fem::cv_node.

Referenced by getfem::virtual_fem::structure(), and getfem::tproduct_femi::tproduct_femi().

◆ node_of_dof()

const base_node& getfem::virtual_fem::node_of_dof ( size_type  cv,
size_type  i 
) const
inline

Gives the node corresponding to the dof i.

Parameters
cvthe convex number for this FEM. This information is rarely used, by is needed by some "special" FEMs, such as getfem::interpolated_fem.
ithe local dof number (i < nb_dof(cv))

Definition at line 345 of file getfem_fem.h.

References i, and getfem::virtual_fem::node_tab().

Referenced by getfem::fem_product::init(), getfem::fem_sum::init(), getfem::thierach_femi::thierach_femi(), and getfem::thierach_femi_comp::thierach_femi_comp().

◆ node_tab()

◆ operator()()

pfem_precomp getfem::fem_precomp_pool::operator() ( pfem  pf,
bgeot::pstored_point_tab  pspt 
)
inline

Request a pfem_precomp. If not already in the pool, the pfem_precomp is computed, and added to the pool.

Parameters
pfa pointer to the fem object.
pspta pointer to a list of points in the reference convex.

CAUTION: this array must not be destroyed as long as the fem_precomp is used!!

Moreover pspt is supposed to identify uniquely the set of points. This means that you should NOT alter its content until the fem_precomp_pool is destroyed.

Definition at line 735 of file getfem_fem.h.

References getfem::fem_precomp(), gmm::p(), and getfem::fem_precomp_pool::precomps.

◆ operator=()

virtual_fem& getfem::virtual_fem::operator= ( const virtual_fem f)
inline

Definition at line 478 of file getfem_fem.h.

References getfem::virtual_fem::copy().

◆ pf()

const pfem getfem::fem_interpolation_context::pf ( ) const
inline

get the current FEM descriptor

Definition at line 782 of file getfem_fem.h.

References getfem::fem_interpolation_context::pf_.

Referenced by getfem::improved_non_reflective_bc_nonlinear_term< VECT1 >::compute(), level_set_unit_normal< VECT1 >::compute(), level_set_unit_tang< VECT1 >::compute(), level_set_contact::HFunction::compute(), getfem::elasticity_nonlinear_term< VECT1, VECT2 >::compute(), getfem::incomp_nonlinear_term< VECT1 >::compute(), getfem::multi_contact_frame::compute_contact_pairs(), getfem::compute_normal(), getfem::ga_instruction_val_base::exec(), getfem::ga_instruction_xfem_plus_val_base::exec(), getfem::ga_instruction_xfem_minus_val_base::exec(), getfem::ga_instruction_grad_base::exec(), getfem::ga_instruction_xfem_plus_grad_base::exec(), getfem::ga_instruction_xfem_minus_grad_base::exec(), getfem::ga_instruction_hess_base::exec(), getfem::ga_instruction_xfem_plus_hess_base::exec(), getfem::ga_instruction_xfem_minus_hess_base::exec(), getfem::ga_instruction_interpolate_val::exec(), getfem::ga_instruction_interpolate_grad::exec(), getfem::ga_instruction_interpolate_hess::exec(), getfem::ga_instruction_interpolate_diverg::exec(), getfem::ga_instruction_interpolate_val_base::exec(), getfem::ga_instruction_interpolate_grad_base::exec(), getfem::ga_instruction_interpolate_hess_base::exec(), getfem::ga_instruction_interpolate_diverg_base::exec(), getfem::fem_interpolation_context::grad_base_value(), getfem::gauss_point_precomp::grad_phix(), getfem::gauss_point_precomp::grad_phiy(), getfem::gauss_point_precomp::grad_phiy0(), getfem::fem_interpolation_context::hess_base_value(), getfem::interpolation_to_im_data(), getfem::gauss_point_precomp::lx(), getfem::gauss_point_precomp::ly(), getfem::gauss_point_precomp::nx0(), getfem::proj_pt_surf_cost_function_object::operator()(), getfem::raytrace_pt_surf_cost_function_object::operator()(), getfem::contact_rigid_obstacle_nonlinear_term::prepare(), getfem::contact_nonmatching_meshes_nonlinear_term::prepare(), getfem::elasticity_nonlinear_term< VECT1, VECT2 >::prepare(), getfem::raytracing_interpolate_transformation::transform(), getfem::projection_interpolate_transformation::transform(), getfem::gauss_point_precomp::x0(), and getfem::gauss_point_precomp::y0().

◆ pfp()

◆ pfp_base_value()

◆ pfp_grad_base_value()

◆ PK_fem()

pfem getfem::PK_fem ( size_type  n,
short_type  k 
)

◆ PK_prism_fem()

pfem getfem::PK_prism_fem ( size_type  n,
short_type  k 
)

◆ QK_fem()

pfem getfem::QK_fem ( size_type  n,
short_type  k 
)

◆ read_poly()

◆ real_base_value()

void getfem::virtual_fem::real_base_value ( const fem_interpolation_context c,
base_tensor &  t,
bool  withM = true 
) const
virtual

Give the value of all components of the base functions at the current point of the fem_interpolation_context. Used by elementary computations. if withM is false the matrix M for non tau-equivalent elements is not taken into account.

Reimplemented in getfem::torus_fem, getfem::projected_fem, getfem::fem_sum, getfem::fem_product, getfem::interpolated_fem, getfem::fem_level_set, and getfem::fem_global_function.

Definition at line 309 of file getfem_fem.cc.

References c, and t.

Referenced by getfem::virtual_fem::interpolation().

◆ real_grad_base_value()

void getfem::virtual_fem::real_grad_base_value ( const fem_interpolation_context c,
base_tensor &  t,
bool  withM = true 
) const
virtual

Give the gradient of all components of the base functions at the current point of the fem_interpolation_context. Used by elementary computations. if withM is false the matrix M for non tau-equivalent elements is not taken into account.

Reimplemented in getfem::torus_fem, getfem::projected_fem, getfem::fem_sum, getfem::fem_product, getfem::interpolated_fem, getfem::fem_level_set, and getfem::fem_global_function.

Definition at line 313 of file getfem_fem.cc.

References c, and t.

Referenced by getfem::virtual_fem::interpolation_diverg(), and getfem::virtual_fem::interpolation_grad().

◆ real_hess_base_value()

void getfem::virtual_fem::real_hess_base_value ( const fem_interpolation_context c,
base_tensor &  t,
bool  withM = true 
) const
virtual

Give the hessian of all components of the base functions at the current point of the fem_interpolation_context. Used by elementary computations. if withM is false the matrix M for non tau-equivalent elements is not taken into account.

Reimplemented in getfem::fem_sum, getfem::fem_product, getfem::fem_level_set, getfem::torus_fem, getfem::projected_fem, getfem::interpolated_fem, and getfem::fem_global_function.

Definition at line 317 of file getfem_fem.cc.

References c, and t.

Referenced by getfem::virtual_fem::interpolation_hess().

◆ ref_convex()

virtual bgeot::pconvex_ref getfem::virtual_fem::ref_convex ( size_type  ) const
inlinevirtual

Return the convex of the reference element.

Reimplemented in getfem::projected_fem, getfem::interpolated_fem, and getfem::fem_global_function.

Definition at line 318 of file getfem_fem.h.

References getfem::virtual_fem::cvr.

Referenced by getfem::virtual_fem::basic_structure(), and getfem::tproduct_femi::tproduct_femi().

◆ set_face_num()

◆ set_pf()

◆ set_pfp()

◆ set_xfem_side()

◆ structure()

bgeot::pconvex_structure getfem::virtual_fem::structure ( size_type  cv) const
inline

Gives the convex structure of the reference element nodes.

Definition at line 328 of file getfem_fem.h.

References getfem::virtual_fem::node_convex(), and bgeot::convex< PT, PT_TAB >::structure().

◆ target_dim()

dim_type getfem::virtual_fem::target_dim ( ) const
inline

◆ unfreeze_cvs_node()

◆ val()

const base_tensor& getfem::fem_precomp_::val ( size_type  i) const
inline

returns values of the base functions

Definition at line 663 of file getfem_fem.h.

References getfem::fem_precomp_::c, i, and getfem::fem_precomp_::init_val().

◆ vectorial_type()

vec_type getfem::virtual_fem::vectorial_type ( ) const
inline

Type of vectorial element.

Definition at line 316 of file getfem_fem.h.

References getfem::virtual_fem::vtype.

◆ virtual_fem() [1/2]

◆ virtual_fem() [2/2]

getfem::virtual_fem::virtual_fem ( const virtual_fem f)
inline

Definition at line 491 of file getfem_fem.h.

References getfem::virtual_fem::copy(), and DAL_STORED_OBJECT_DEBUG_CREATED.

◆ xfem_side()

◆ ~fem_precomp_()

getfem::fem_precomp_::~fem_precomp_ ( )
inline

Definition at line 677 of file getfem_fem.h.

References DAL_STORED_OBJECT_DEBUG_DESTROYED.

◆ ~fem_precomp_pool()

getfem::fem_precomp_pool::~fem_precomp_pool ( )
inline

Definition at line 741 of file getfem_fem.h.

References getfem::fem_precomp_pool::clear().

◆ ~virtual_fem()

virtual getfem::virtual_fem::~virtual_fem ( )
inlinevirtual

Definition at line 495 of file getfem_fem.h.

References DAL_STORED_OBJECT_DEBUG_DESTROYED.

Variable Documentation

◆ base_

◆ c

std::vector<base_tensor> getfem::fem_precomp_::c
mutableprotected

Definition at line 658 of file getfem_fem.h.

Referenced by getfem::fem_precomp_::init_val(), and getfem::fem_precomp_::val().

◆ convex_num_

◆ cv_node

◆ cvr

◆ cvs_node

◆ debug_name_

◆ dim_

◆ dof_types_

◆ es_degree

◆ face_num_

◆ face_tab

std::vector<std::vector<short_type> > getfem::virtual_fem::face_tab
protected

◆ grad_

template<class FUNC >
std::vector<std::vector<FUNC> > getfem::fem< FUNC >::grad_
mutableprotected

◆ grad_computed_

template<class FUNC >
bool getfem::fem< FUNC >::grad_computed_ = false
mutableprotected

◆ hess_

template<class FUNC >
std::vector<std::vector<FUNC> > getfem::fem< FUNC >::hess_
protected

◆ hess_computed_

template<class FUNC >
bool getfem::fem< FUNC >::hess_computed_ = false
mutableprotected

◆ hier_raff

◆ hpc

std::vector<base_tensor> getfem::fem_precomp_::hpc
mutableprotected

Definition at line 660 of file getfem_fem.h.

Referenced by getfem::fem_precomp_::hess(), and getfem::fem_precomp_::init_hess().

◆ is_equiv

◆ is_lag

◆ is_pol

◆ is_polycomp

◆ is_standard_fem

◆ M_

base_matrix getfem::fem_interpolation_context::M_
mutableprivate

◆ ntarget_dim

◆ pc

std::vector<base_tensor> getfem::fem_precomp_::pc
mutableprotected

Definition at line 659 of file getfem_fem.h.

Referenced by getfem::fem_precomp_::grad(), and getfem::fem_precomp_::init_grad().

◆ pf

◆ pf_

◆ pfp_

◆ precomps

std::set<pfem_precomp> getfem::fem_precomp_pool::precomps
private

◆ pspt [1/2]

bgeot::pstored_point_tab getfem::virtual_fem::pspt
mutableprotected

Definition at line 272 of file getfem_fem.h.

Referenced by getfem::virtual_fem::copy(), and getfem::virtual_fem::node_tab().

◆ pspt [2/2]

◆ pspt_valid

◆ real_element_defined

◆ vtype

◆ xfem_side_

int getfem::fem_interpolation_context::xfem_side_
private