Skip to content
Snippets Groups Projects
Commit 4c8ff5a5 authored by Andreas Klöckner's avatar Andreas Klöckner
Browse files

Add PolynomialSimplexElementGroupBase.{is_orthogonal_basis,mass_matrix}

parent b5e16444
No related branches found
No related tags found
No related merge requests found
......@@ -64,11 +64,29 @@ from meshmode.discretization import ElementGroupBase
# {{{ concrete element groups
class PolynomialSimplexElementGroupBase(ElementGroupBase):
def is_orthogonal_basis(self):
return self.dim <= 3
def basis(self):
return mp.simplex_best_available_basis(self.dim, self.order)
if self.dim <= 3:
return mp.simplex_onb(self.dim, self.order)
else:
return mp.simplex_monomial_basis(self.dim, self.order)
def grad_basis(self):
return mp.grad_simplex_best_available_basis(self.dim, self.order)
if self.dim <= 3:
return mp.grad_simplex_onb(self.dim, self.order)
else:
return mp.grad_simplex_monomial_basis(self.dim, self.order)
@memoize_method
def mass_matrix(self):
assert self.is_orthogonal_basis()
import modepy as mp
return mp.mass_matrix(
self.basis(),
self.unit_nodes)
@memoize_method
def from_mesh_interp_matrix(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment