diff --git a/ProcessLib/SurfaceFlux/SurfaceFluxLocalAssembler.h b/ProcessLib/SurfaceFlux/SurfaceFluxLocalAssembler.h index 6d321fa87a0b46375be5b61e329c8e49893f4e12..93673d46feced68485043207fd4a1798b54fa3d9 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; } }