Mercurial > fem-fenics-eugenio
annotate src/SubSpace.cc @ 168:67944f307560
Remove the verbose debug output
author | gedeone-octave <marcovass89@hotmail.it> |
---|---|
date | Sun, 06 Oct 2013 22:31:48 +0100 |
parents | 5fe2a157f4eb |
children | 9e944b0d0fc8 |
rev | line source |
---|---|
106
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
1 /* |
151 | 2 Copyright (C) 2013 Marco Vassallo <gedeone-octave@users.sourceforge.net> |
106
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
3 |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
4 This program is free software; you can redistribute it and/or modify it under |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
5 the terms of the GNU General Public License as published by the Free Software |
151 | 6 Foundation; either version 3 of the License, or (at your option) any later |
106
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
7 version. |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
8 |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
9 This program is distributed in the hope that it will be useful, but WITHOUT |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
12 details. |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
13 |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
14 You should have received a copy of the GNU General Public License along with |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
15 this program; if not, see <http://www.gnu.org/licenses/>. |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
16 */ |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
17 #include "functionspace.h" |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
18 |
118
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
19 DEFUN_DLD (SubSpace, args, , "-*- texinfo -*-\n\ |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
20 @deftypefn {Function File} {[@var{V1}]} = \ |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
21 SubSpace (@var{Space V}, @var{index}(Optional)) \n\ |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
22 The input arguments are\n\ |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
23 @itemize @bullet\n\ |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
24 @item @var{Space V} which is a mixed FunctionalSpace\n\ |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
25 @item @var{index} represents the subSpace which you want to extract; index\ |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
26 should be a positive integer.\n\ |
126
5608ba9237d4
Fix error in texinfo
gedeone-octave <marcovass89@hotmail.it>
parents:
118
diff
changeset
|
27 @end itemize \n\ |
118
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
28 The output @var{V0} is the SubSpace you need\n\ |
143
9486cbdc0a2e
Maint: update the documentation
gedeone-octave <marcovass89@hotmail.it>
parents:
126
diff
changeset
|
29 @seealso{FunctionSpace}\n\ |
118
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
30 @end deftypefn") |
106
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
31 { |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
32 int nargin = args.length (); |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
33 octave_value retval; |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
34 |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
35 if (nargin < 2 || nargin > 2) |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
36 print_usage (); |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
37 else |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
38 { |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
39 if (! functionspace_type_loaded) |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
40 { |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
41 functionspace::register_type (); |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
42 functionspace_type_loaded = true; |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
43 mlock (); |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
44 } |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
45 |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
46 if (args(0).type_id () == functionspace::static_type_id ()) |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
47 { |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
48 const functionspace & fspo |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
49 = static_cast<const functionspace&> (args(0).get_rep ()); |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
50 const octave_idx_type idx = args(1).int_value (); |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
51 |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
52 if (! error_state) |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
53 { |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
54 const dolfin::FunctionSpace & V = fspo.get_fsp (); |
118
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
55 |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
56 if (idx < 1 || idx > V.dim ()) |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
57 error ("SubSpace: index out of bounds"); |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
58 |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
59 else |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
60 { |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
61 boost::shared_ptr <const dolfin::FunctionSpace> g (new dolfin::SubSpace (V, idx - 1)); |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
62 retval = new functionspace (g); |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
63 } |
ee608d1bffca
Index start from 1 following Octave convention.
gedeone-octave <marcovass89@hotmail.it>
parents:
106
diff
changeset
|
64 |
106
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
65 } |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
66 } |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
67 } |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
68 return retval; |
6b4a77dc734f
New wrapper function for dolfin::SubSpace
gedeone-octave <marcovass89@hotmail.it>
parents:
diff
changeset
|
69 } |