Source code for festim.exports.average_volume
from dolfinx import fem
from festim.exports.volume_quantity import VolumeQuantity
[docs]
class AverageVolume(VolumeQuantity):
"""Computes the average value of a field in a given volume
Args:
field (festim.Species): species for which the average volume is computed
volume (festim.VolumeSubdomain): volume subdomain
filename (str, optional): name of the file to which the average volume is exported
Attributes:
see `festim.VolumeQuantity`
"""
@property
def title(self):
return f"Average {self.field.name} volume {self.volume.id}"
[docs]
def compute(self, dx):
"""
Computes the average value of solution function within the defined volume
subdomain, and appends it to the data list
"""
self.value = fem.assemble_scalar(
fem.form(self.field.solution * dx(self.volume.id))
) / fem.assemble_scalar(fem.form(1 * dx(self.volume.id)))
self.data.append(self.value)