Skip to content
Snippets Groups Projects

Manifold Forms

Closed Maximilian Dechant requested to merge dechant/manifolds into main
8 files
+ 992
6
Compare changes
  • Side-by-side
  • Inline
Files
8
@@ -26,6 +26,7 @@ import sympy as sp
@@ -26,6 +26,7 @@ import sympy as sp
from hog.element_geometry import (
from hog.element_geometry import (
ElementGeometry,
ElementGeometry,
TriangleElement,
TriangleElement,
 
EmbeddedTriangle,
TetrahedronElement,
TetrahedronElement,
LineElement,
LineElement,
)
)
@@ -95,7 +96,7 @@ def select_quadrule(
@@ -95,7 +96,7 @@ def select_quadrule(
warnings.simplefilter("ignore")
warnings.simplefilter("ignore")
all_schemes = []
all_schemes = []
if isinstance(geometry, TriangleElement):
if isinstance(geometry, TriangleElement) or isinstance(geometry, EmbeddedTriangle):
schemes = quadpy.t2.schemes
schemes = quadpy.t2.schemes
elif isinstance(geometry, TetrahedronElement):
elif isinstance(geometry, TetrahedronElement):
schemes = quadpy.t3.schemes
schemes = quadpy.t3.schemes
@@ -223,6 +224,8 @@ class Quadrature:
@@ -223,6 +224,8 @@ class Quadrature:
f"Cannot apply quadrature rule to matrix of shape {f.shape}: {f}."
f"Cannot apply quadrature rule to matrix of shape {f.shape}: {f}."
)
)
ref_symbols = symbolizer.ref_coords_as_list(self._geometry.dimensions)
ref_symbols = symbolizer.ref_coords_as_list(self._geometry.dimensions)
 
if isinstance(self._geometry, EmbeddedTriangle):
 
ref_symbols = symbolizer.ref_coords_as_list(self._geometry.dimensions-1)
if self._scheme_name == "exact":
if self._scheme_name == "exact":
mat_entry = integrate_exact_over_reference(f, self._geometry, symbolizer)
mat_entry = integrate_exact_over_reference(f, self._geometry, symbolizer)
@@ -286,6 +289,9 @@ class Quadrature:
@@ -286,6 +289,9 @@ class Quadrature:
elif isinstance(geometry, LineElement):
elif isinstance(geometry, LineElement):
vertices = np.asarray([[0.0], [1.0]])
vertices = np.asarray([[0.0], [1.0]])
degree = scheme.degree
degree = scheme.degree
 
elif isinstance(geometry, EmbeddedTriangle):
 
vertices = np.asarray([[0.0, 0.0], [1.0, 0.0], [0.0, 1.0]])
 
degree = scheme.degree
else:
else:
raise HOGException("Invalid geometry for quadrature.")
raise HOGException("Invalid geometry for quadrature.")
Loading