DOLFIN
DOLFIN C++ interface
SpecialFacetFunction.h
1 // Copyright (C) 2010 Marie E. Rognes
2 //
3 // This file is part of DOLFIN.
4 //
5 // DOLFIN is free software: you can redistribute it and/or modify
6 // it under the terms of the GNU Lesser General Public License as published by
7 // the Free Software Foundation, either version 3 of the License, or
8 // (at your option) any later version.
9 //
10 // DOLFIN is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU Lesser General Public License for more details.
14 //
15 // You should have received a copy of the GNU Lesser General Public License
16 // along with DOLFIN. If not, see <http://www.gnu.org/licenses/>.
17 //
18 // First added: 2010-10-13
19 // Last changed: 2011-07-04
20 
21 #ifndef __SPECIAL_FACET_FUNCTION_H
22 #define __SPECIAL_FACET_FUNCTION_H
23 
24 #include <vector>
25 #include <dolfin/function/Expression.h>
26 
27 namespace ufc
28 {
29  class cell;
30 }
31 
32 namespace dolfin
33 {
34  template <typename T> class Array;
35  class Function;
36 
40 
42  {
43  public:
44 
50  explicit SpecialFacetFunction(std::vector<Function>& f_e);
51 
60  SpecialFacetFunction(std::vector<Function>& f_e, std::size_t dim);
61 
70  SpecialFacetFunction(std::vector<Function>& f_e,
71  std::vector<std::size_t> value_shape);
72 
75  void eval(Array<double>& values, const Array<double>& x,
76  const ufc::cell& cell) const;
77 
86  Function& operator[] (std::size_t i) const;
87 
88  private:
89 
90  std::vector<Function>& _f_e;
91 
92  };
93 
94 }
95 #endif
Definition: adapt.h:29
Definition: SpecialFacetFunction.h:41
Definition: Array.h:41
Definition: Extrapolation.h:34
Definition: Expression.h:49
Definition: Function.h:65