Reports and Monitors

Reports are used to query data from the simulation generally using coefficient functions available in the Coefficient Manager.

Probe Report

A Probe Report (mufem.ProbeReport) is used to query data at a specific point in the mesh. It can be used to extract scalar or vector fields at a given position.

probe_report = mufem.ProbeReport.SinglePoint(name="Probe Report", cff_name="Position" , x=0.5, y=0.2, z=0.3)

print(probe_report.evaluate())

Volume Integral Report

A Volume Integral Report (mufem.VolumeIntegralReport) is used to compute integrals over a volume defined by a coefficient function.

volume_integral_report = mufem.VolumeIntegralReport(name="Volume Integral Report", marker=1 @ Vol,  cff_name="Cell Volume")

print(volume_integral_report.evaluate())

Surface Integral Report

A Surface Integral Report (mufem.SurfaceIntegralReport) is used to compute integrals over a surface defined by a coefficient function.

surface_integral_report = mufem.SurfaceIntegralReport(name="Surface Integral Report", marker=1 @ Sur, cff_name="Cell Volume")

print(surface_integral_report.evaluate())

Surface Average Report

A Surface Average Report (mufem.SurfaceAverageReport) is used to compute the average value of a coefficient function over a surface. .. testcode:

surface_average_report = mufem.SurfaceAverageReport(name="Surface Average Report", marker=1 @ Sur, cff_name="Cell Volume")

print(surface_average_report.evaluate())

MinMax Report

A MinMax Report (mufem.MinMaxReport) is used to compute the minimum and maximum values of a coefficient function over the mesh.

Note that currently only the maximum value is returned.

minmax_report = mufem.MinMaxReport(name="MinMax Report", marker=1 @ Vol, cff_name="Cell Volume")

print(minmax_report.evaluate())

Example

The code below shows how to query data from the simulation using reports. geometry.mesh is as an example mesh file.

import mufem

from mufem import Vol, Bnd, Everywhere

sim = mufem.Simulation.New("My Case", f"data/geometry.mesh", print_only_warnings=True)

refinement_model = mufem.RefinementModel()
sim.get_model_manager().add_model(refinement_model)

volume_integral_report = mufem.VolumeIntegralReport(name="Volume Integral Report", marker=1 @ Vol,  cff_name="Cell Volume")
print(f"Volume Integral Report: {volume_integral_report.evaluate()}")

minmax_report = mufem.MinMaxReport(name="MinMax Report", marker=1 @ Vol, cff_name="Cell Volume")
print(f"MinMax Report: {minmax_report.evaluate()}")
Volume Integral Report: 5.333333333333334e-12
MinMax Report: 6.666666666921585e-07