annotate src/femfenics_factory.h @ 268:61830a4f9ab9

Improve formatting
author Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
date Thu, 14 Aug 2014 12:26:55 +0200
parents 8f309b85bb7e
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 #ifndef __FEMFENICS_FACTORY__
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
19 #define __FEMFENICS_FACTORY__
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
20
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
21 #include "femfenics_base_factory.h"
250
8f309b85bb7e Add function to set linear algebra back-end
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 249
diff changeset
22 #include <string>
247
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
23
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
24 class femfenics_factory : public femfenics_base_factory
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
25 {
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
26 public:
247
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
27
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
28 femfenics_factory ()
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
29 { dolfin::parameters["linear_algebra_backend"] = linear_algebra_backend (); }
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
30
247
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
31 virtual ~femfenics_factory () {}
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
32
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
33 virtual inline octave_value matrix (dolfin::Matrix const & A) const
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
34 { return factory ().matrix (A); }
247
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
35
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
36 virtual inline octave_value vector (dolfin::Vector const & b) const
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
37 { return factory ().vector (b); }
247
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
38
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
39 private:
247
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
40
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
41 femfenics_factory (femfenics_factory const &);
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
42 femfenics_factory operator = (femfenics_factory const &);
248
4522d8fd9cba Make femfenics_factory non-copiable and non-assignable
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 247
diff changeset
43
250
8f309b85bb7e Add function to set linear algebra back-end
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 249
diff changeset
44 std::string linear_algebra_backend (void) const;
268
61830a4f9ab9 Improve formatting
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents: 250
diff changeset
45 femfenics_base_factory const & factory (void) const;
247
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
46 };
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
47
8ca45824938e Add factories hierarchy for matrices' and vectors' assembly
Eugenio Gianniti <eugenio.gianniti@mail.polimi.it>
parents:
diff changeset
48 #endif