annotate src/functionspace.h @ 14:f329fc94b1a2

Wrapper Class for dolfin::FunctionSpace
author gedeone-octave <marco.vassallo@outlook.com>
date Mon, 08 Jul 2013 21:35:44 +0200
parents
children efec39fccff3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
1 /*
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
2 Copyright (C) 2013 Marco Vassallo
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
3
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
4 This program is free software; you can redistribute it and/or modify it under
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
5 the terms of the GNU General Public License as published by the Free Software
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
6 Foundation; either version 2 of the License, or (at your option) any later
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
7 version.
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
8
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
9 This program is distributed in the hope that it will be useful, but WITHOUT
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
12 details.
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
13
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
14 You should have received a copy of the GNU General Public License along with
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
15 this program; if not, see <http://www.gnu.org/licenses/>.
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
16 */
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
17
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
18 #ifndef _FUNCTIONSPACE_OCTAVE_
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
19 #define _FUNCTIONSPACE_OCTAVE_
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
20
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
21 #include <dolfin.h>
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
22 #include <octave/oct.h>
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
23
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
24 class functionspace : public dolfin::FunctionSpace, public octave_base_value
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
25 {
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
26
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
27 public:
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
28
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
29 // Constructors
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
30
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
31 /*
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
32 Default constructor: it is necessary because it is requested by
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
33 DEFINE_OCTAVE_ALLOCATOR and DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA .
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
34 dolfin::FunctionSpace doesn't provide a default constructor, and thus
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
35 we add as private members __msh, __elm, __dfm, which are needed only for
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
36 creating our own default constructor functionspace()
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
37 for dolfin::FunctionSpace() we use the protected constructor of the class
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
38 which needs only a dolfin::Mesh
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
39 */
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
40
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
41 functionspace () :
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
42 dolfin::FunctionSpace (__msh), octave_base_value (), fsp (__msh, __elm, __dfm)
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
43 {}
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
44
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
45
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
46 functionspace (const dolfin::FunctionSpace & _fsp)
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
47 : octave_base_value (), fsp (_fsp), dolfin::FunctionSpace (_fsp) {}
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
48
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
49 //a method for printing
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
50 void print (std::ostream& os, bool pr_as_read_syntax = false) const
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
51 { os << "fsp : " << fsp.str(true) << std::endl; }
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
52
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
53 //destructor
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
54 ~functionspace(void) { };
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
55
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
56 bool is_defined (void) const { return true; }
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
57
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
58 //get the information from the private member
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
59 const dolfin::FunctionSpace & get_fsp (void) const
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
60 { return fsp; }
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
61
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
62 // set the value of the private member
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
63 void set_fsp (dolfin::FunctionSpace & _fsp)
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
64 { fsp = _fsp; }
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
65
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
66 private:
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
67
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
68 dolfin::FunctionSpace fsp;
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
69 boost::shared_ptr<const dolfin::Mesh> __msh;
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
70 boost::shared_ptr<dolfin::FiniteElement> __elm;
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
71 boost::shared_ptr<dolfin::GenericDofMap> __dfm;
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
72
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
73 DECLARE_OCTAVE_ALLOCATOR;
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
74 DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA;
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
75
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
76 };
f329fc94b1a2 Wrapper Class for dolfin::FunctionSpace
gedeone-octave <marco.vassallo@outlook.com>
parents:
diff changeset
77 #endif