 Default es en
You are here: Foswiki>Main/Cimec Web>PETScFEMElastLDResults (08 Jul 2018, MarioStorti)

# Finite element simulation of a tube with large displacement formulation

This video shows a Finite Element simulation of the deformation of a hollow tube of a soft material with a large displacement formulation. The computation uses the PETSc-FEM code ( http://www.cimec.org.ar/petscfem ) and the visualization is done with VTK. The bottom of the tube undergoes harmonic movement along x-axis (red line). The frequency is close to the second mode of vibration. Large displacements are obtained and at a certain point the movement goes out of plane x-y. This is caused by nonlinear instability. The extreme of the tube then starts rotating in the x-z plane. The camera is rotating for visualization purposes. First a long range camera is used. The movement of the tube (approx 10 periods) is repeated many times. A wide shot camera is used in this first part. Then a close-up shows the deformation from a lateral view. Finally a close-up from the top of the tube shows more clearly the fact that the movement is initially in the plane x-y and then at a certain point starts to rotate in the x-z plane, even if the excitation (the displacement of the bottom) is always along the x-axis.

## Parameters of the simulation

• Uses the Finite Element method with 27000 tetrahedral elements
• The geometry is a hollow cylinder, `Rint=0.125, Rext=0.25, Ly=5`
• No gravity is taken into account
• Young modulus is `800*f(y)` where `f(y)>1` is almost `f=1` at the top part, and rigidizes the material up to a factor of 5 near the bottom. (This is to avoid collapse of the tube near the bottom, where the tensions are higher). Poisson ratio is 0.3. Density is 0.1
• The excitation frequency `omega` is close to the second mode (one node in the y direction) 15.3Hz approx. The amplitude of the displacement imposed at the bottom is `A=0.6.`
• The boundary conditions are: `v=w=0, u=A*sin(omega*t)*g(t),` where `(u,v,w)` is the displacement from the reference state and `g(t)` is a function that modulates gradually the amplitud f the excitement. `g(t)=1` for `t>2.` * The color on the tube skin represents deformation. Red means compression and blue elongation.

## Nonlinear instability

Since the excitation is only in the `x` direction, the movement of the tube should be confined to the `x-y` plane, but at a certain point the extreme of the tube starts rotating in the `x-z` plane.

## VTK tricks. Adding a trail

The version above is very similar but the excitation amplitude is a little larger ( `A=0.8` instead of `0.6` ). Also I added a trail of particles that helps in seeing the trajectory of the end of the tube.

To do this, a `vtkUnstructuredGrid` object is created. Then, a=vtkSphereSource= is created with a very low resolution (in OpenDX this may be done with diamonds ) and this is passed to a `vtkGlyph3D`, let say that the glyph object puts a sphere at each point of the unstructured grid object. This is a very cheap way to have a lot of smalls objects at easily controlled positions.

In the frame loop, the displacements `u` computed from the large displacement formulation for the mesh nodes of the tube are read and added to the reference position `x0` that was read at the beginning. Then the coordinates of the tube mesh are updated and the current position of the center of the upper extreme tube `x^n` is computed. This is the point of emission of particles. The history of this positions (i.e. a sequence `[x_n,x_{n-1},...,x^{n-m}` ) is stored for a certain number of time steps `m` (usually `m` is around 100). Then a certain amount of random positions `tau_j` ( `0<=j<M` ) is computed, where the particles will be positioned `[x_{n-tau_0},x_{n-tau_1},...,x^{n-tau_M}` The trick is that the `tau's` are randomly distributed in `[0,m]` and are always the same (i.e. they are computed before the time loop and are kept constant during the whole computation). This way the particles simulate a trail of particles which are kept a certain constant distance (in time) between them.

The random positioning is important because otherwise the visualization may be confusing because of the effect of coherence. For instance if the `tau's` are equally spaced and moreover `tau_j=j` then the position of the particle `j` coincides with the position of the particle `j+1` in the next step, so that the particles seem to stay fixed in a point of the space. The random displacement helps in giving a sense of movement. In addition, we add a random color to each particle for the same reason.

## Density of particles in the trail

If the density of particles in the trail is too large, then the viewer it's difficult to resolve visually the movement of the independent particles. In the video above the density was `nprtclref=5` particles per time step, i.e. at each time step of the computation (and at each frame of the animation since we used 1 frame per time step) we inject 5 particles in the trail. In the video below we reduce this number to `nprtclref=2` and it seems that the trail is better.

Topic revision: r5 - 08 Jul 2018, MarioStorti
• Log In

Main/Cimec Web