From 4c8ff5a514a22715152f6542465606f09b754a29 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Sun, 19 Feb 2017 13:03:17 -0600 Subject: [PATCH] Add PolynomialSimplexElementGroupBase.{is_orthogonal_basis,mass_matrix} --- meshmode/discretization/poly_element.py | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/meshmode/discretization/poly_element.py b/meshmode/discretization/poly_element.py index f509a911..cef3d667 100644 --- a/meshmode/discretization/poly_element.py +++ b/meshmode/discretization/poly_element.py @@ -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): -- GitLab