annotate src/femfenics_factory.cc @ 268:61830a4f9ab9

Improve formatting
author Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
date Thu, 14 Aug 2014 12:26:55 +0200
parents 2b51546a28f7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
247
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
1 /*
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
2 Copyright (C) 2014 Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
3
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
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
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
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
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
6 Foundation; either version 3 of the License, or (at your option) any later
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
7 version.
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
8
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
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
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
11 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
12 details.
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
13
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
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
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
15 this program; if not, see <http://www.gnu.org/licenses/>.
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
16 */
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
17
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
18 #include "femfenics_factory.h"
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
19 #include "uBLAS_factory.h"
251
b1dc98050634 Add support for PETSc algebra back-end
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
20 #include "PETSc_factory.h"
250
8f309b85bb7e Add function to set linear algebra back-end
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 247
diff changeset
21 #include <octave/parse.h>
247
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
22
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
23 femfenics_base_factory const &
247
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
24 femfenics_factory::factory (void) const
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
25 {
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
26 std::string backend = linear_algebra_backend ();
251
b1dc98050634 Add support for PETSc algebra back-end
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
27
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
28 if (backend == "uBLAS")
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
29 { return uBLAS_factory::instance (); }
250
8f309b85bb7e Add function to set linear algebra back-end
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 247
diff changeset
30
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
31 // Default back-end
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
32 return PETSc_factory::instance ();
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
33 }
250
8f309b85bb7e Add function to set linear algebra back-end
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 247
diff changeset
34
8f309b85bb7e Add function to set linear algebra back-end
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 247
diff changeset
35 std::string
8f309b85bb7e Add function to set linear algebra back-end
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 247
diff changeset
36 femfenics_factory::linear_algebra_backend (void) const
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
37 {
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
38 octave_value_list ovl = feval ("linear_algebra_backend");
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
39 std::string retval = ovl (0).string_value ();
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
40 return retval;
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 254
diff changeset
41 }