Source code for shenfun.ultraspherical.matrices
from shenfun.matrixbase import SpectralMatrix, SpectralMatDict
from shenfun.spectralbase import get_norm_sq
from . import bases
Q = bases.Orthogonal
CB = bases.CompositeBase
CD = bases.CompactDirichlet
CN = bases.CompactNeumann
UD = bases.UpperDirichlet
LD = bases.LowerDirichlet
P1 = bases.Phi1
P2 = bases.Phi2
P3 = bases.Phi3
P4 = bases.Phi4
BCG = bases.BCGeneric
[docs]
class BQQmat(SpectralMatrix):
r"""Mass matrix :math:`B=(b_{kj}) \in \mathbb{R}^{M \times N}`, where
.. math::
b_{kj}=(Q_j, Q_k)_w,
:math:`Q_k \in` :class:`.ultraspherical.bases.Orthogonal` and test and
trial spaces have dimensions of M and N, respectively.
"""
[docs]
def assemble(self, method):
test, trial = self.testfunction, self.trialfunction
assert isinstance(test[0], Q)
assert isinstance(trial[0], Q)
return {0: get_norm_sq(test[0], trial[0], method)}
mat = SpectralMatDict({
((Q, 0), (Q, 0)): BQQmat,
})