Source code for WaveBlocksND.Quadrature
"""The WaveBlocks Project
@author: R. Bourquin
@copyright: Copyright (C) 2013 R. Bourquin
@license: Modified BSD License
"""
__all__ = ["Quadrature"]
[docs]class Quadrature(object):
r"""This class is an abstract interface to quadratures in general.
"""
def __init__(self):
r"""General interface for quadratures.
:raise: :py:class:`NotImplementedError` Abstract interface.
"""
raise NotImplementedError("'Quadrature' is an abstract interface.")
def __str__(self):
raise NotImplementedError("'Quadrature' is an abstract interface.")
[docs] def get_description(self):
r"""Return a description of this quadrature object.
A description is a ``dict`` containing all key-value pairs
necessary to reconstruct the current instance. A description
never contains any data.
"""
raise NotImplementedError("'Quadrature' is an abstract interface.")
[docs] def set_qr(self, QR):
r"""Set the :py:class:`QuadratureRule` subclass instance used for quadrature.
:param QR: The new :py:class:`QuadratureRule` instance.
"""
# TODO: Allow a list of QRs, one QR for each component of Psi
self._QR = QR
[docs] def get_qr(self):
r"""Return the :py:class:`QuadratureRule` subclass instance used for quadrature.
:return: The current instance of the quadrature rule.
"""
return self._QR
def initialize_packet(self):
raise NotImplementedError("'Quadrature' is an abstract interface.")
def initialize_operator(self):
raise NotImplementedError("'Quadrature' is an abstract interface.")
def prepare(self, rows, cols):
raise NotImplementedError("'Quadrature' is an abstract interface.")
def prepare_for_row(self, row, col):
raise NotImplementedError("'Quadrature' is an abstract interface.")
def preprare_for_col(self, row, col):
raise NotImplementedError("'Quadrature' is an abstract interface.")
def perform_quadrature(self, row, col):
raise NotImplementedError("'Quadrature' is an abstract interface.")
def perform_build_matrix(self, row, col):
raise NotImplementedError("'Quadrature' is an abstract interface.")