# Simulating the Drop of AirPods

Posted in Simulations and tagged on .

AirPods are my favorite consumer electronic product in recent years. This little device has had an unexpectedly significant improvement on my daily life, although through some tiny aspects of life. From the product design perspective, I think AirPods best demonstrate that right designs in key aspects of experience and incremental progresses in technology together also make a revolutionary product, especially when we are still on the way to a revolutionary breakthrough in major technologies.

# Making Spirographs in Abaqus

Posted in Simulations and tagged on .

Bumping into Nathan Friend’s spirograph simulator inspirograph today reminds me the vivid joy of making the intriguing patterns when I was a small kid. Spirograph toys first taught me vaguely the concept of periodicity, but I have to admit I never completely understand how it worked before the toy faded away. As I played it few times today, my mechanics-trained brain began to digest it itself: the complexity of the mechanism of a spirograph is far less than that of the patterns it produces. More importantly, since I’ve been sharpening my Abaqus Python scripting skill in visualization recently, I can’t help myself to realize such a good nail that I can try with the hammer. So this becomes my first Abaqus as a hammer note.

# Scripting for 360° View of Results in Abaqus

Posted in Simulations and tagged , on .

A 360° view of simulation results might help to produce an overall view of the deformed material body and the distribution of field output. This note documents the implementation of 360° view of a deployed airbag using Abaqus Python script.

# Making Annotations Follow Node Movement in Abaqus

Posted in Simulations and tagged , on .

The annotation tool in Abaqus/CAE Visualization module only supports creating annotation at canvas coordinates rather than model coordinates. If we want to annotate a node or an element with some text, for example their numbering label, during the course of their deformation, the built-in tool fails. This post documents a workaround that uses the Abaqus Python script to realize the above demand. Hope it can be helpful to analysts who meet a similar problem.

# A Workflow of Making GIFs from Abaqus

Posted in Simulations and tagged , on .

GIF may be an ancient format but occasionally animating simulation results in GIF is effective. A typical way in Abaqus to generate an animation of simulation results in GIF would be to transform the AVI format animation, by default produced, to GIF using some transformation tools, such as EZGIF. This note explores an alternative workflow that exploits Abaqus Python scripting to save a time sequence of images from Abaqus and generate animation in GIF by a Python library imageio. The benefit of this workflow is some special effects can be implemented, besides the format transformation. For example, the workflow allows us to add and change annotations or change viewpoint and view angle in the animation. I hope this workflow can overcome some limitations of Abaqus’ default animate tool and give analysts a bit more freedom to better express their visualization intentions.

# Unit Consistency in Solid Mechanics Simulations

Posted in Simulations on .

Ensuring unit consistency of input parameters in conducting a finite element analysis is critical, because mistakes in it will essentially alter the physical problem one’s trying to study, let along the rationality of outputs that would be produced. As an analyst, I always feel uncertain from multiple sources at the beginning of modeling a new problem, unit consistency is one of the first few certainties that can be built and stepped on, so I can safely move onto more essential parts of problem solving.

Taking unit consistency as a procedural step is sufficient for practicality, yet thoroughly knowing its theoretical root serves as the foundation of a good engineer because it reveals how our current framework of description of physical quantities is formed. I will review this part in the first section of this note. The second section summarizes the practical procedure to ensure unit consistency in solid mechanics simulation. You may comfortably skip to the second section directly for practical reasons.

# Abaqus Python Scripts that Extract Time History of Eulerian Results

Posted in Simulations and tagged , on .

Solid mechanics simulations are mainly based on the finite element method that adopts the Lagrangian description—in which computational mesh is carved in the material body and deforms with the body. In post-processing, analysts naturally form their interpretation from results at Lagrangian mesh, for example, displacements and reaction forces at nodes, stresses and strains at integration points, nodes, or centroids of elements. Those results are attached to specific material points through Lagrangian mesh and are called results in Lagrangian representation. Investigating Lagrangian results satisfies analysts’ needs in solid mechanics problems most of time.

But in some dynamic or quasi-static problems in which solid material behaves like a flow, we may occasionally be more curious about results at some specific spatial locations rather than material points. For example, in a roll-to-roll process where a web travels along a designed path line for some functional processing from a unwinding roll to a rewinding roll, engineers may specifically be interested in the tension, traveling speed, temperature, or other physical quantities of web at some spatial locations such as some rollers since they may serve as parameters of control system or relate to product quality. Results of material expressed at spatial points are called results in Eulerian representation.

Abaqus has the ‘probe’ function in the visualization module which enables users to approximately get results at spatial locations through Lagrangian mesh in individual solution frame. However, it does not provide a convenient way of extracting the time history of results at spatial locations throughout the whole simulation. Yet, the time history of Eulerian results in these simulation is more valuable as it reveals when and how the steady state is achieved, which some times exposes physical information about the characteristics of the problem.

This project develops two general-purpose Abaqus Python scripts based on two methods that can automatically extract the time history of field outputs at some spatial location of interest. The developer wishes the scripts can save some labor and willpower of analysts so their energy can be reserved for pure problem solving rather than tedious external processing.

# Slip and Stick in 1-D Web-Roller Contact

Posted in Mechanics and tagged on .

In the previous note we reviewed the derivation of capstan equation that solves the tension developed in a rope (web, belt) undergoing kinetic friction on a capstan (roller, pulley). We set up a problem in which a 1-D belt is tensioned, constrained statically, and in contact for a wrap angle of 90° on a cylinder that is rotating at a constant angular velocity. So the belt is in equilibrium and the belt-cylinder contact interface is in complete slip condition. This setup avoids the complication that would be introduced by slip-stick condition. However, the slip-stick condition universally exists in similar contact problems. In this note we will review the slip-stick condition, its mechanism, and its location at the contact interface in 1-D belt-roller contact problems with various boundary conditions. We will use $$\{$$rope, belt, web, string $$\}$$ and $$\{$$capstan, cylinder, roller, pulley $$\}$$ interchangeable, respectively, since in 1-D cases elements in each set are equivalent to others in the physical sense. All vector quantities are treated as scalars in computation with their direction visually shown.

# Mass Conservation of a Moving Web in Steady State

Posted in Mechanics on .

The longitudinal behavior of a moving web in steady state is like a 1-D steady state fluid. The law of the mass conservation on the steady state web relates the spatial velocity of web to its longitudinal stain. This note reviews the derivation of the relation between the longitudinal strain and spatial velocity in a continuous web traveling in steady state in space.