I have completed a problem on linear elasticity of a square with a circular cutout. The stress around the circle is correct, however my displacement values are unsymmetrical which is unusual. When using the displacement mode it shows a rotation that is occurring and the actual case should just be that the circle flattens evenly on the left and right side. I am wondering if this is due to my boundary conditions as there are no Dirichlet for this problem and all sides of the square have neumann. I am confused as to why this is happening and I would appreciate any help on solving this issue. I have attached references below.
V = VectorFunctionSpace(mesh, āCGā, 1)
G = BoundarySource(mesh, degree=2)
# Define Boundary Conditions
bc = MeshFunction("size_t", mesh, mesh.topology().dim() - 1)
bc.set_all(0)
left = AutoSubDomain(lambda x: near(x[0], -l))
right = AutoSubDomain(lambda x: near(x[0], l))
top = AutoSubDomain(lambda x: near(x[1], l))
bottom = AutoSubDomain(lambda x: near(x[1], -l))
left.mark(bc, 1)
right.mark(bc, 2)
top.mark(bc, 3)
bottom.mark(bc, 4)
ds = ds(subdomain_data=bc)
# Define Variational Problem
u = TrialFunction(V)
d = u.geometric_dimension()
v = TestFunction(V)
f = Constant((0, 0))
a = inner(fullFunctions.sigma(u, lambda_, d, mu), fullFunctions.epsilon(v))*dx
L = dot(f, v)*dx + dot(G, v)*ds(1) + dot(G, v)*ds(2) + dot(G, v)*ds(3) + dot(G, v)*ds(4)
Displacement:
Stress: