GetFEM++  5.3
getfem_mesh_fem_global_function.h
Go to the documentation of this file.
1 /* -*- c++ -*- (enables emacs c++ mode) */
2 /*===========================================================================
3 
4  Copyright (C) 2004-2017 Yves Renard
5  Copyright (C) 2016 Konstantinos Poulios
6 
7  This file is a part of GetFEM++
8 
9  GetFEM++ is free software; you can redistribute it and/or modify it
10  under the terms of the GNU Lesser General Public License as published
11  by the Free Software Foundation; either version 3 of the License, or
12  (at your option) any later version along with the GCC Runtime Library
13  Exception either version 3.1 or (at your option) any later version.
14  This program is distributed in the hope that it will be useful, but
15  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17  License and GCC Runtime Library Exception for more details.
18  You should have received a copy of the GNU Lesser General Public License
19  along with this program; if not, write to the Free Software Foundation,
20  Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
21 
22  As a special exception, you may use this file as it is a part of a free
23  software library without restriction. Specifically, if other files
24  instantiate templates or use macros or inline functions from this file,
25  or you compile this file and link it with other files to produce an
26  executable, this file does not by itself cause the resulting executable
27  to be covered by the GNU Lesser General Public License. This exception
28  does not however invalidate any other reasons why the executable file
29  might be covered by the GNU Lesser General Public License.
30 
31 ===========================================================================*/
32 
33 /**@file getfem_mesh_fem_global_function.h
34  @author Yves Renard <Yves.Renard@insa-lyon.fr>, J. Pommier
35  @date March, 2005.
36  @brief Define a mesh_fem with base functions which are global functions
37  given by the user.
38 */
39 #ifndef GETFEM_MESH_FEM_GLOBAL_FUNCTION_H__
40 #define GETFEM_MESH_FEM_GLOBAL_FUNCTION_H__
41 
43 
44 namespace getfem {
45 
46  /** this is a convenience class for defining a mesh_fem with base functions
47  which are global functions (functions defined across more than one
48  convexes of a mesh) given by the user.
49  */
51  protected :
52  getfem::pfem fem_;
53  public :
54 
55  void set_functions(const std::vector<pglobal_function>& f,
56  const mesh_im &mim=dummy_mesh_im());
57  // size_type memsize() const;
58  virtual void clear();
59 
60  mesh_fem_global_function(const mesh &me, dim_type q=1)
61  : mesh_fem(me, q), fem_(0) {}
62  virtual ~mesh_fem_global_function() { clear(); }
63  };
64 
65 
66 } /* end of namespace getfem. */
67 
68 #endif
const mesh_im & dummy_mesh_im()
Dummy mesh_im for default parameter of functions.
Describe a mesh (collection of convexes (elements) and points).
Definition: getfem_mesh.h:95
Describe an integration method linked to a mesh.
Define mesh_fem whose base functions are global function given by the user.
GEneric Tool for Finite Element Methods.
std::shared_ptr< const getfem::virtual_fem > pfem
type of pointer on a fem description
Definition: getfem_fem.h:239
Describe a finite element method linked to a mesh.
this is a convenience class for defining a mesh_fem with base functions which are global functions (f...