From 1140d62779b9e5f2145bb15a6364d6dee66fb724 Mon Sep 17 00:00:00 2001 From: rleu Date: Tue, 16 Jan 2024 11:18:07 +0100 Subject: [PATCH] refactor: recycle Mesh.get_directional_vectors and Mesh.get_area solvers.py --- p1afempy/solvers.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/p1afempy/solvers.py b/p1afempy/solvers.py index 5ee6b61..7b09c40 100644 --- a/p1afempy/solvers.py +++ b/p1afempy/solvers.py @@ -92,14 +92,12 @@ def get_right_hand_side(mesh: mesh.Mesh, is approximated as sum_T |T| * f(sT) * phi_i(sT), where sT denotes the center of mass of triangle T """ - c1 = mesh.coordinates[mesh.elements[:, 0], :] - d21 = mesh.coordinates[mesh.elements[:, 1], :] - c1 - d31 = mesh.coordinates[mesh.elements[:, 2], :] - c1 - # vector of element areas 4*|T| - area4 = 2 * (d21[:, 0]*d31[:, 1] - d21[:, 1] * d31[:, 0]) + area4 = 4. * mesh.get_area() + # assembly of right-hand side - fsT = f((c1+(d21+d31) / 3)) + d21, d31 = mesh.get_directional_vectors() + fsT = f((mesh.coordinates[mesh.elements[:, 0], :]+(d21+d31) / 3)) b = np.bincount( mesh.elements.flatten(order='F'), weights=np.tile(area4*fsT/12., (3, 1)).flatten(),