This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

3D stability of 2D solution in an elasticity problem

+1 vote

I am trying to analyse stability of a 2D solution of an elasticity problem (in plane (X,Y), this solution being invariant in the Z direction) under a 3D perturbation, harmonic along the Z coordinate, i.e under the following displacement :
\(\underline{u}=(u_{x}(X,Y) e ^{i k Z},u_{y}(X,Y) e ^{i k Z},u_{z}(X,Y) e ^{i k Z})\)

Is it possible to define and manipulate 3D VectorFunctions having this kind of structure on a 2D mesh ? I was thinking about using MixedFunctionSpace but I haven't figured out yet how to define \(\nabla \underline{u}\).

Any help or suggestions will be appreciated.

closed with the note: question was answered !
asked Jan 14, 2015 by Claire L FEniCS User (2,120 points)
reshown Feb 9, 2015 by chris_richardson

1 Answer

+3 votes
 
Best answer

Not a complete solution, but perhaps these snippets can help you.
Note the definition of UF3.
You have to compute $\frac{\partial \underline{u}}{\partial z}$ by hand and use it as the "up" argument of functions grad3d, epsilon and sigma. You'll also need to change the definition of the epsilon function if what you need is the Green-Lagrangian strain tensor.

def grad3d(u, up):
      "Return 3d gradient."
      g = grad(u)
      return as_tensor([[g[0,0], g[0,1], up[0]],[g[1,0], g[1,1], up[1]],[g[2,0], g[2,1], up[2]]])

def epsilon(u, up):
      "Return symmetric 3D deformation tensor."
      return 0.5*(grad3d(u, up).T + grad3d(u, up)) #

def pos3d(POS):
      return as_vector([POS[0], POS[1], 0.])

def sigma(u, up):
      "Return stress tensor."
      eps = epsilon(u, up)
      return 2.0*mu*eps + lmbda*tr(eps)*Identity(3)

mesh = UnitSquareMesh(10, 10) #2D mesh
UF3 = VectorFunctionSpace(mesh, "CG", 2, 3)
answered Jan 14, 2015 by mmorandi FEniCS Novice (990 points)
selected Mar 9, 2015 by Claire L

Thanks, I will try this.

...