Category Archives: Simulations

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.
Continue reading

dropt test of an AirPods case

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.
Continue reading

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.
Continue reading

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.
Continue reading

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.
Continue reading

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.
Continue reading