Skip to content

MEMS 005 - Viscoelasticity benchmark

In this MEMS example case, vertical strain is simulated for a rectangular viscoelastic rod. The simulated vertical strain is compared against analytical results.

The model consists of a single 0.1 mm×0.1 mm×2 mm0.1 ~ \rm mm \times 0.1 ~ \rm mm \times 2 ~ \rm mm box.

Example case image

Simulation setup guide

Here you’ll find a simplified, example case level guide for setting up a transient viscoelasticity simulation in Quanscient Allsolve.

Step 1 - Define shared expressions

Create a new project. Select Box as a starting point and leave model editing for now.

Go to the Properties section and define shared expressions:

NameDescriptionExpression
LRod length [m]0.002
E0Long-term Young’s modulus [N/m^2]70e9
E1Prony Young’s modulus [N/m^2]20e9
tauRelaxation time [s]5e-2

Step 2 - Set rod dimensions

Now back in the Model section, edit dimensions of your Box:

NameElement typeCenter point [m]Size [m]Rotation [deg]
boxBoxX: 0X: L/20X: 0
Y: 0Y: L/20Y: 0
Z: 0Z: LZ: 0

Apply the new dimensions and build. The box is now tiny, so use Reset view in model view controls to zoom it back into view. Confirm model changes before moving on.

Step 3 - Define the material

In the Properties section, define a new material:

NameAbbreviationTarget
Benchmark materialbmThe box volume 1
  • Add the material target as a shared region.

Add material properties:

DensityElasticity matrixProny series
2700Poisson’s ratio: 0Prony Poisson’s ratio: 0
Young’s modulus: E0Prony relaxation time: [0, tau]
Prony Young’s modulus: [E0, E1]

Example case image

Step 4 - Define the physics

Go to the Physics section.

Add the Elastic waves physics and let it’s target default to the whole geometry.

Define Elastic waves interactions:

  • Add Viscoelastic material model.
    • Select the box volume (1) as target.
  • Add Clamp.
    • Select the Z-bottom surface (5) as target.
    • Example case image
  • Add Load.
    • As Target, select the Z-top surface (6).
    • As Force, input the value [0; 0; E0].
    • Example case image

Before moving on, check that your physics tree looks like in the image below.

Example case image

Step 5 - Generate the mesh

Go to the Simulations section and create a new mesh:

  1. Set Mesh quality to Expert settings.
  2. Add a structured meshing entity targeting the box volume 1.
    • Set Segment counts to 25 for the long side and 3 for the short sides.
    • Example case image
  3. Apply settings and mesh.
  4. Check the preview:

Example case image

Step 6 - Simulate

In the Simulations section, create a new simulation:

  • Set Analysis type to Transient.
    • Set Timestep algorithm to Generalized alpha.
    • Set Start time (seconds) to 0.
    • Set End time (seconds) to 0.5.
    • Set Timestep size (seconds) to 0.0005.
  • As Mesh, select the mesh you made earlier.
  • Add Outputs:
    • Simulated vertical strain custom value output:
      • Name: Ezz [%]
      • Output expression: integrate(reg.benchmark_material_target, compz(grad(compz(u))), 5) / integrate(reg.benchmark_material_target, 1.0, 5)*100
    • Analytical vertical strain custom value output:
      • Name: Analytical Ezz [%]
      • Output expression: 100*(1 - E1/(E0 + E1)*exp(-t * E0/tau/(E0 + E1)))

Your simulation is ready to run.

Step 7 - Plot results

In the Simulations section, add plots to see value output results.

To compare the Ezz [%] and Analytical Ezz [%] results:

  • Create a new plot.
  • Add both Ezz [%] and Analytical Ezz [%] as series on the Y axis.
  • Customize Y axis Min and Max to 77 and 101, respectively.

Example case image

The expected error compared to the analytical result is 0.1%0.1 \%. At t=0.4 st = 0.4 ~ \rm s, Ezz [%] error compared to Analytical Ezz [%] is about 0.08 %0.08 ~ \%.