annotate src/meshfunction.h @ 258:ab35a8b0deef

Support storage of mesh markers via meshfunction
author Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
date Fri, 01 Aug 2014 18:59:18 +0200
parents
children 598c5e9e0a9e
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
258
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
1 /*
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
2 Copyright (C) 2014 Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
3
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
4 This program is free software; you can redistribute it and/or modify it under
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
5 the terms of the GNU General Public License as published by the Free Software
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
6 Foundation; either version 3 of the License, or (at your option) any later
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
7 version.
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
8
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful, but WITHOUT
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
12 details.
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
13
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
14 You should have received a copy of the GNU General Public License along with
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
15 this program; if not, see <http://www.gnu.org/licenses/>.
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
16 */
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
17
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
18 #ifndef _MESHFUNCTION_OCTAVE_
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
19 #define _MESHFUNCTION_OCTAVE_
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
20
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
21 #include <dolfin.h>
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
22 #include <octave/oct.h>
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
23 #include "dolfin_compat.h"
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
24
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
25 class meshfunction : public octave_base_value
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
26 {
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
27 public:
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
28
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
29 meshfunction (void)
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
30 : octave_base_value () {}
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
31
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
32 meshfunction (dolfin::MeshFunction <std::size_t> const & _mf)
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
33 : octave_base_value (), pmf (new dolfin::MeshFunction <std::size_t> (_mf)) {}
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
34
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
35 bool
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
36 is_defined (void) const
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
37 { return true; }
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
38
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
39 dolfin::MeshFunction <std::size_t> const &
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
40 get_mf (void) const
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
41 { return *pmf; }
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
42
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
43 SHARED_PTR <dolfin::MeshFunction <std::size_t> const> const &
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
44 get_pmf (void) const
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
45 { return pmf; }
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
46
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
47 private:
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
48
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
49 SHARED_PTR <dolfin::MeshFunction <std::size_t> const> pmf;
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
50
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
51 DECLARE_OCTAVE_ALLOCATOR;
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
52 DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA;
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
53 };
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
54
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
55 static bool meshfunction_type_loaded = false;
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
56
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
57 DEFINE_OCTAVE_ALLOCATOR (meshfunction);
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
58 DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (meshfunction, "meshfunction", "meshfunction");
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
59
ab35a8b0deef Support storage of mesh markers via meshfunction
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
60 #endif