DOLFIN
DOLFIN C++ interface
Toggle main menu visibility
Loading...
Searching...
No Matches
dolfin
function
FunctionAXPY.h
1
// Copyright (C) 2013 Johan Hake
2
//
3
// This file is part of DOLFIN.
4
//
5
// DOLFIN is free software: you can redistribute it and/or modify
6
// it under the terms of the GNU Lesser General Public License as published by
7
// the Free Software Foundation, either version 3 of the License, or
8
// (at your option) any later version.
9
//
10
// DOLFIN is distributed in the hope that it will be useful,
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
// GNU Lesser General Public License for more details.
14
//
15
// You should have received a copy of the GNU Lesser General Public License
16
// along with DOLFIN. If not, see <http://www.gnu.org/licenses/>.
17
//
18
// First added: 2013-02-11
19
// Last changed: 2013-02-14
20
21
#ifndef __FUNCTION_AXPY_H
22
#define __FUNCTION_AXPY_H
23
24
#include <utility>
25
#include <vector>
26
27
namespace
dolfin
28
{
29
30
class
Function
;
31
35
class
FunctionAXPY
36
{
37
38
public
:
39
41
enum class
Direction
:
int
{ADD_ADD=0, SUB_ADD=1, ADD_SUB=2, SUB_SUB=3};
42
44
FunctionAXPY
(std::shared_ptr<const Function> func,
double
scalar);
45
47
FunctionAXPY
(
const
FunctionAXPY
& axpy,
double
scalar);
48
50
FunctionAXPY
(std::shared_ptr<const Function> func0,
51
std::shared_ptr<const Function> func1,
52
Direction
direction);
53
55
FunctionAXPY
(
const
FunctionAXPY
& axpy,
56
std::shared_ptr<const Function> func,
57
Direction
direction);
58
60
FunctionAXPY
(
const
FunctionAXPY
& axpy0,
61
const
FunctionAXPY
& axpy1,
62
Direction
direction);
63
65
FunctionAXPY
(
66
std::vector<std::pair<
double
, std::shared_ptr<const Function>>>
pairs
);
67
69
FunctionAXPY
(
const
FunctionAXPY
& axpy);
70
72
~FunctionAXPY
();
73
75
FunctionAXPY
operator+
(std::shared_ptr<const Function> func)
const
;
76
78
FunctionAXPY
operator+
(
const
FunctionAXPY
& axpy)
const
;
79
81
FunctionAXPY
operator-
(std::shared_ptr<const Function> func)
const
;
82
84
FunctionAXPY
operator-
(
const
FunctionAXPY
& axpy)
const
;
85
87
FunctionAXPY
operator*
(
double
scale)
const
;
88
90
FunctionAXPY
operator/
(
double
scale)
const
;
91
93
const
std::vector<std::pair<double, std::shared_ptr<const Function>>>&
94
pairs
()
const
;
95
96
private
:
97
99
void
_register(
const
FunctionAXPY
& axpy0,
double
scale);
100
101
std::vector<std::pair<double, std::shared_ptr<const Function>>> _pairs;
102
103
};
104
105
}
106
107
#endif
dolfin::FunctionAXPY
Definition
FunctionAXPY.h:36
dolfin::FunctionAXPY::operator*
FunctionAXPY operator*(double scale) const
Scale operator.
Definition
FunctionAXPY.cpp:152
dolfin::FunctionAXPY::~FunctionAXPY
~FunctionAXPY()
Destructor.
Definition
FunctionAXPY.cpp:102
dolfin::FunctionAXPY::operator/
FunctionAXPY operator/(double scale) const
Scale operator.
Definition
FunctionAXPY.cpp:157
dolfin::FunctionAXPY::pairs
const std::vector< std::pair< double, std::shared_ptr< const Function > > > & pairs() const
Return the scalar and Function pairs.
Definition
FunctionAXPY.cpp:128
dolfin::FunctionAXPY::Direction
Direction
Enum to decide what way AXPY is constructed.
Definition
FunctionAXPY.h:41
dolfin::FunctionAXPY::FunctionAXPY
FunctionAXPY(std::shared_ptr< const Function > func, double scalar)
Constructor.
Definition
FunctionAXPY.cpp:29
dolfin::FunctionAXPY::operator-
FunctionAXPY operator-(std::shared_ptr< const Function > func) const
Subtraction operator.
Definition
FunctionAXPY.cpp:117
dolfin::FunctionAXPY::operator+
FunctionAXPY operator+(std::shared_ptr< const Function > func) const
Addition operator.
Definition
FunctionAXPY.cpp:107
dolfin::Function
Definition
Function.h:66
dolfin
Definition
adapt.h:30
Generated by
1.17.0