From e1915a2cff6912daadaf66f1c7a652f1351e94b4 Mon Sep 17 00:00:00 2001
From: Thomas Fischer <thomas.fischer@ufz.de>
Date: Thu, 7 Mar 2019 11:38:59 +0100
Subject: [PATCH] [PL/SurfaceFlux] Divide flux per elem. by elem area.

---
 ProcessLib/SurfaceFlux/SurfaceFluxLocalAssembler.h | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/ProcessLib/SurfaceFlux/SurfaceFluxLocalAssembler.h b/ProcessLib/SurfaceFlux/SurfaceFluxLocalAssembler.h
index 6d321fa87a0..93673d46fec 100644
--- a/ProcessLib/SurfaceFlux/SurfaceFluxLocalAssembler.h
+++ b/ProcessLib/SurfaceFlux/SurfaceFluxLocalAssembler.h
@@ -129,6 +129,7 @@ public:
         // for correct results it is necessary to multiply the normal with -1
         surface_element_normal *= -1;
 
+        double element_area = 0.0;
         std::size_t const n_integration_points =
             _integration_method.getNumberOfPoints();
         // specific_flux[id_of_element] +=
@@ -158,6 +159,14 @@ public:
                     bulk_grad_times_normal * _detJ_times_integralMeasure[ip] *
                     wp.getWeight();
             }
+            element_area += _detJ_times_integralMeasure[ip] * wp.getWeight();
+        }
+        for (int component_id(0);
+             component_id < specific_flux.getNumberOfComponents();
+             ++component_id)
+        {
+            specific_flux.getComponent(element_id, component_id) /=
+                element_area;
         }
     }
 
-- 
GitLab