6 """Base class for block matrix storage format, defining the interface"""
11 :arg basis: nodal basis
27 """Return list L_C defining the cell function spaces"""
32 """Return list L_F defining the facet function spaces"""
37 """Return list of cell function space labels"""
42 """Return list of facet function space labels"""
46 """number of unknowns per cell for the ell-th cell function space
47 :arg ell: index of function space
49 return (self.
_L_C[ell] + 1) ** self.
dim
52 """number of unknowns per cell for the ell-th facet function space
53 :arg ell: index of function space
55 return (self.
_L_F[ell] + 1) ** (self.
dim - 1)
57 def A_CC(self, k, ell, gamma):
58 """Return matrix hat(A)_CC^{(k,ell); gamma}
59 :arg ell: second function space (from-space)
60 :arg k: first function space (to-space)
61 :arg gamma: power gamma, tuple of size dim
63 return self.
_A_CC[(k, ell)][gamma]
65 def A_CF(self, k, ell, beta_ref, gamma):
66 """Return matrix hat(A)_CF^{(k,ell); beta_ref; gamma}
67 :arg ell: second function space (from-space)
68 :arg k: first function space (to-space)
69 :arg beta_ref: type of facet
70 :arg gamma: power gamma, tuple of size dim
72 return self.
_A_CF[(k, ell)][beta_ref][gamma]
74 def A_FC(self, k, ell, beta_ref, gamma):
75 """Return matrix hat(A)_FC^{(k,ell); beta_ref; gamma}
76 :arg ell: second function space (from-space)
77 :arg k: first function space (to-space)
78 :arg beta_ref: type of facet
79 :arg gamma: power gamma, tuple of size dim
81 return self.
_A_FC[(k, ell)][beta_ref][gamma]
83 def A_FF(self, k, ell, beta_ref, gamma):
84 """Return matrix hat(A)_FF^{(k,ell); beta_ref; gamma}
85 :arg ell: second function space (from-space)
86 :arg k: first function space (to-space)
87 :arg beta_ref: type of facet
88 :arg gamma: power gamma, tuple of size dim
90 return self.
_A_FF[(k, ell)][beta_ref][gamma]
93 """return nodal points of ell-th cell function space
94 :arg ell: index of function space
96 return self.
_Xi_C[ell]
98 def Xi_F(self, ell, orientation):
99 """return nodal points of ell-th cell function space
100 :arg ell: index of function space
101 :arg orientation: orientation of reference element
103 return self.
_Xi_F[ell][orientation]
108 Visualise nested dictionary
111 if type(input) == dict:
112 for k, v
in input.items():
113 print(
" "*indent + f
"{k}:")
116 assert type(input) == np.ndarray
118 print(
" "*indent + f
"{repr(input)}")
Base class for block matrix storage format, defining the interface.
L_C(self)
Return list L_C defining the cell function spaces.
print_dictionary(self, input, indent=0)
Visualise nested dictionary.
fs_labels_C(self)
Return list of cell function space labels.
A_FC(self, k, ell, beta_ref, gamma)
Return matrix hat(A)_FC^{(k,ell); beta_ref; gamma} :arg ell: second function space (from-space) :arg ...
n_F(self, ell)
number of unknowns per cell for the ell-th facet function space :arg ell: index of function space
L_F(self)
Return list L_F defining the facet function spaces.
__init__(self, dim, basis)
Initialise instance :arg dim: dimension :arg basis: nodal basis.
A_FF(self, k, ell, beta_ref, gamma)
Return matrix hat(A)_FF^{(k,ell); beta_ref; gamma} :arg ell: second function space (from-space) :arg ...
Xi_C(self, ell)
return nodal points of ell-th cell function space :arg ell: index of function space
Xi_F(self, ell, orientation)
return nodal points of ell-th cell function space :arg ell: index of function space :arg orientation:...
A_CC(self, k, ell, gamma)
Return matrix hat(A)_CC^{(k,ell); gamma} :arg ell: second function space (from-space) :arg k: first f...
A_CF(self, k, ell, beta_ref, gamma)
Return matrix hat(A)_CF^{(k,ell); beta_ref; gamma} :arg ell: second function space (from-space) :arg ...
fs_labels_F(self)
Return list of facet function space labels.
n_C(self, ell)
number of unknowns per cell for the ell-th cell function space :arg ell: index of function space