### Calculating error on subregion of mesh

59

views

0

Dear all,

I need to calculate the maximum error between exact and FE solution for a problem on only a subregion of the mesh. Mesh is defined as a square and subregion is defined as a circle. Here is the part of the code I use to do this.

When I use a conditional statement I get the following error while writing max error to the resfile:

"Float is expected rather than a conditional"

Do you know how to get the max error in an efficient way inside the subregion (circle in this case)?

Thank you

Birkan

I need to calculate the maximum error between exact and FE solution for a problem on only a subregion of the mesh. Mesh is defined as a square and subregion is defined as a circle. Here is the part of the code I use to do this.

```
# Generate mesh
point=0.6
mesh = RectangleMesh(Point(-point,-point), Point(point,point), nx, nx,'crossed')
# Initial conditions
radius = 0.5
circle=sqrt(x[0]*x[0] + x[1]*x[1])-radius
# Exact solution
u_exact=Expression(someexpression, degree=2)
# Calculate error
Ve = FunctionSpace(mesh, 'Lagrange', 2)
u_e_Ve = interpolate(u_exact, Ve)
u_Ve = interpolate(u, Ve)
e_Ve = Function(Ve)
e_Ve.vector()[:] = u_e_Ve.vector().get_local() - u_Ve.vector().get_local()
# Calculate max error norm
error=e_Ve.vector().get_local()
error_max=conditional(le(circle,0.5),np.max(error),0.0)
# Write results to file
resfile=open("res_euler.csv","a")
resfile.write("%.12f"%(error_max))
resfile.close
```

When I use a conditional statement I get the following error while writing max error to the resfile:

"Float is expected rather than a conditional"

Do you know how to get the max error in an efficient way inside the subregion (circle in this case)?

Thank you

Birkan

Community: FEniCS Project

Please login to add an answer/comment or follow this question.