Material elasticity 2
Spring systems
Last updated
Spring systems
Last updated
The next setup involves linking multiple springs together to form a chain or rope like assembly. This produces an approximation of special kind of curve known as catenary []. Catenaries are common in nature and also used in architecture, civil and structure engineering for bridge and building designs.
What is interesting to observe about this animation is how both forces and velocities of interim spring particles zero over time. This represents a sense of balance between gravity and spring forces, we call equilibrium. The forces at the terminal particles are indicative of the stresses concentrated at those support points which need to carry the load of all interim masses.
The setup for the hanging chain model requires the input of a ācountā parameter indicating the number of particles produced. The initial velocities are all zero so we multiply particleās positions by zero and convert the result to vectors. For masses we need to produce two zero masses for the terminal fixed in space points and ācount ā 2ā non-zero masses for interim particles. Here we duplicate the non-zero mass value a number of times and sandwich the list with two zeros with the āentwineā.
We can come back now to the spring force definition and clarify the logic before and after the spring force computation. The reason it got a bit complicated is to allow for chained springs; the single spring scenario is the simplest instance of a chain using only two particles and one link.
Here we assume that the supplied particles form a sequence i.e. their order in the list is significant. The entry logic group decomposes the list into pairs of adjacent items, using the ālist itemā component, so as to perform the spring force computation, seen in the middle group, to pairs of neighbouring particles.
For ānā particles, we have ān ā 1ā springs, so we need a series with one less item than the particleās list length. The diagram captures this indexing logic with āpā used for particles, āsā spring forces and āfā the sum of springs forces affecting each particle.
After computing the consecutive spring forces we need to package them such that for each particle we emit one force vector. This gets a bit tricky because for the first and last particles we have one force applied but for all interim we need to account for two lateral forces.
To harmonize the logic into a rule that applied to both extreme as well as the interim particles we will use a data alignment idiom. We create two copies of the spring force list. In the first we prepend a zero and in the second list we append a zero. Now both lists have ānā force items ie. as many as the particles.
Finally, we will subtract the two lists to obtain the partial sums of forces per particle. We need to subtract instead of adding forces to account for the fact that spring force direction change between particles i.e. they are pulling one another. In the graph seen below, the vector input parameter is just the zero ā[0, 0, 0]ā vector.
Update the setup logic such that you can input a spline curve and the number of particles. Subdivide the curve and emit the particles such that you can āhangā any type of curve.
Release the last particle from being fixed by setting its mass to non-zero value and observe the chaotic behaviour of a complex pendulum [] by tracing its trajectory.
For visualization of the hanging chain we used a polyline curve. You may instead draw a more elaborate spring geometry per segment. In addition, you may colour code each segment based on the amount of elongation or engineering strain [] i.e. the percent stretched ā( L ā d ) / Lā.