dof_space.py 1.54 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# Copyright(C) 2013-2017 Max-Planck-Society
#
# NIFTy is being developed at the Max-Planck-Institut fuer Astrophysik
# and financially supported by the Studienstiftung des deutschen Volkes.

19
"""
20
Sample documentation for DOF space. (or any other module). This will be displayed under the module title in the docs
21
22
"""

Martin Reinecke's avatar
Martin Reinecke committed
23
import numpy as np
Martin Reinecke's avatar
Martin Reinecke committed
24
from .structured_domain import StructuredDomain
Martin Reinecke's avatar
Martin Reinecke committed
25
26


Martin Reinecke's avatar
Martin Reinecke committed
27
class DOFSpace(StructuredDomain):
Martin Reinecke's avatar
Martin Reinecke committed
28
29
30
    def __init__(self, dof_weights):
        super(DOFSpace, self).__init__()
        self._dvol = tuple(dof_weights)
Martin Reinecke's avatar
Martin Reinecke committed
31
        self._needed_for_hash += ['_dvol']
Martin Reinecke's avatar
Martin Reinecke committed
32
33
34
35
36
37
38
39
40
41

    @property
    def harmonic(self):
        return False

    @property
    def shape(self):
        return (len(self._dvol),)

    @property
Martin Reinecke's avatar
Martin Reinecke committed
42
    def size(self):
Martin Reinecke's avatar
Martin Reinecke committed
43
44
45
46
47
48
        return len(self._dvol)

    def scalar_dvol(self):
        return None

    def dvol(self):
Martin Reinecke's avatar
Martin Reinecke committed
49
        return np.array(self._dvol)
Martin Reinecke's avatar
Martin Reinecke committed
50
51
52

    def __repr__(self):
        return 'this is a dof space'