I’m trying to define a bilinear form on a curve of a three-dimensional domain.
Doing the analogous procedure for a surface is no-problem using the “ds”-operator.
Is there a way to do the same for a curve?

Thanks for the reply!
However, I get an exception for this code:

NgException Traceback (most recent call last)
in
24 # ))
25
—> 26 a += (du * u + InnerProduct(Grad(du).Trace().Trace(), Grad(u).Trace().Trace())) * dx(mesh.BBoundaries(“front”))
27
28 f = LinearForm(fes)
NgException: don’t have a trace, primal evaluator = gradbnd

Removing one Trace()-operator leads to a different error:

NgException Traceback (most recent call last)
in
24 # ))
25
—> 26 a += (du * u + InnerProduct(Grad(du).Trace(), Grad(u).Trace())) * dx(mesh.BBoundaries(“front”))
27
28 f = LinearForm(fes)
NgException: Trialfunction does not support BBND-forms, maybe a Trace() operator is missing, type = gradbnd

a += (du * u + InnerProduct(grad(du).Trace().Trace(), grad(u).Trace().Trace())) * ds(mesh.BBoundaries("front"))

the Grad != grad thing is a bit confusing here… Internally the “natural” derivative is grad and it has also a BBND trace. Grad is an additional operator that implemented grad in a row/col consistant way since there were legacy reason differences between spaces…