10.014 CTD
  • Overview
  • Schedule
  • Administrative
    • Accessing Rhino remotely
    • Rhino for Mac
  • ASSIGNMENTS
    • Dates and rubrics
    • Generative design
      • Generative design
    • Parametric design
      • Parametric design
    • Simulated design
      • Simulated design
      • Simulated design
  • SESSION 1B
    • Computer Aided Design
    • Ranges and expressions 1
      • Ranges and expressions 2
      • Ranges and expressions 3
      • Ranges and expressions 4
      • Ranges and expressions 5
      • Ranges and expressions 6
  • SESSION 2A
    • Visual programming 1
      • Visual programming 2
      • Visual programming 3
      • Visual programming 4
    • Associative modelling 1
      • Associative modelling 2
      • Associative modelling 3
  • SESSION 2B
    • Logical Patterns 1
      • Logical patterns 2
      • Logical patterns 3
  • SESSION 3A
    • Spatial geometry 1
      • Spatial geometry 2
      • Spatial geometry 3
      • Spatial geometry 4
      • Spatial geometry 5
      • Spatial geometry 6
      • Spatial geometry 7
    • Curve geometry 1
      • Curve geometry 2
      • Curve geometry 3
      • Curve geometry 4
  • SESSION 3B
    • Surface geometry
    • Parametric modelling 1
      • Parametric modelling 2
      • Parametric modelling 3
      • Parametric modelling 4
  • SESSION 4A
    • Information nesting 1
      • Information nesting 2
      • Information nesting 3
    • Data landscapes 1
      • Data landscapes 2
      • Data Landscapes 3
      • Data landscapes 4
  • SESSION 4B
    • Mesh geometry 1
      • Mesh geometry 2
      • Mesh geometry 3
  • SESSION 5A
    • Space and time 1
      • Space and time 2
    • Modelling entities 1
      • Modelling entities 2
      • Modelling entities 3
  • SESSION 5B
    • Multibody dynamics 1
      • Multibody dynamics 2
    • Material elasticity 1
      • Material elasticity 2
      • Material elasticity 3
  • SESSION 6A
    • Form-finding 1
      • Form-finding 2
      • Form-finding 3
      • Form-finding 4
  • SESSION 6B
    • AI Image generation 1
      • AI Image generation 2
      • AI Image generation 3
  • APPENDIX
    • Spirograph 1
      • Spirograph 2
    • Curves
    • Swarm Intelligence 1
      • Swarm Intelligence 2
    • Hybrid programming 1
      • Hybrid programming 2
Powered by GitBook
On this page
  1. SESSION 5B
  2. Material elasticity 1

Material elasticity 2

Spring systems

PreviousMaterial elasticity 1NextMaterial elasticity 3

Last updated 9 months ago

Cables and Chains

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ā€.

Spring Force Revisited

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.

p0   p1   p2  ...  pn-3   pn-2   pn-1
   /   /       /    /    /  
  s0    s1    ...    sn-3   sn-2
 /   /   /        /    /    
f0   f1   f2  ...  fn-3   fn-2   fn-1

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.

0    s0    s1    ...     sn-3   sn-2
↓    ↓     ↓             ↓     ↓
s0   s1    s2    ...     sn-2   0
↓    ↓     ↓             ↓     ↓
f0   f1    f2    ...     fn-2   fn-1

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.

Practice

  • 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ā€.

>
>
>
117KB
5B_Hanging-Chain.gh