# Average value of solution across boundary of mesh

Hi everyone,

I am currently trying to find the average value of my solution `Temp` across the surface of my 2D mesh. But I am unsure how I can accomplish this.

Here is the example I have so far:

``````from __future__ import print_function
from fenics import *
import numpy as np
import matplotlib.pyplot as plt
from dolfin import *
from ufl import as_tensor
from ufl import Index
import math
from scipy.optimize import curve_fit
from mpi4py import MPI

mesh = UnitCubeMesh(16,16,16)

Space = FunctionSpace(mesh, āPā, 1)
Temp = project(Expression(ā10*x[0]+100*x[1]+ x[2]ā, degree=3), Space)

class marker(SubDomain):
def inside(self, x, on_boundary):
return near(x[2], 1) and on_boundary
``````

Is there an inbuilt function that I can use this to find the average of `Temp` across the face of my mesh at the given boundary?

How about creating a `MeshFunction` based on your marker,say tag all facets to integrate over with `1`, and do the following:

``````mf = dolfin.MeshFunction("size_t", mesh, mesh.topology().dim()-1)
marker().mark(mf, 1)
ds1 = dolfin.Measure("ds", domain=mesh, subdomain_data=mf, subdomain_id=1)
print(assemble(T*ds1)/assemble(1*ds1))``````
1 Like

How is this done using Dolfinx?

See for instance https://jsdokken.com/dolfinx-tutorial/chapter3/robin_neumann_dirichlet.html: search for the word meshtags (which replaced dolfin.MeshFunction) and assemble_scalar (which replace dolfin.assemble)