cashocs.geometry.measure.generate_measure#

cashocs.geometry.measure.generate_measure(idx: list[int | str], measure: ufl.Measure) ufl.Measure | _EmptyMeasure[source]#

Generates a measure based on indices.

Generates a ufl.MeasureSum or _EmptyMeasure object corresponding to measure and the subdomains / boundaries specified in idx. This is a convenient shortcut to writing dx(1) + dx(2) + dx(3) in case many measures are involved.

Parameters:
  • idx (list[int | str]) – A list of indices for the boundary / volume markers that define the (new) measure.

  • measure (ufl.Measure) – The corresponding UFL measure.

Returns:

The corresponding sum of the measures or an empty measure.

Return type:

ufl.Measure | _EmptyMeasure

Examples

Here, we create a wrapper for the surface measure on the top and bottom of the unit square:

import fenics
import cashocs

mesh, _, boundaries, dx, ds, _ = cashocs.regular_mesh(25)
top_bottom_measure = cashocs.geometry.generate_measure([3,4], ds)
fenics.assemble(1*top_bottom_measure)