HNY (Marathi). Also, a bit about modern maths.

Happy New (Marathi) Year!

OK.

I will speak in “aaeechee bhaashaa”  (lit.: mother’s language).

“gudhi-paaDawyaachyaa haardik shubhechchhaa.” (lit.: hearty compliments [on the occasion] of “gudhi-paaDawaa” [i.e. the first day of the Marathi new year  [^]].)


I am still writing up my notes on scalars, vectors, tensors, and CFD (cf. my last post). The speed is good. I am making sure that I remain below the RSI [^] detection levels.


BTW, do you know how difficult it can get to explain even the simplest of concepts once mathematicians have had a field day about it? (And especially after Americans have praised them for their efforts?) For instance, even a simple idea like, say, the “dual space”?

Did any one ever give you a hint (or even a hint of a hint) that the idea of “dual space” is nothing but a bloody stupid formalization based on nothing but the idea of taking the transpose of a vector and using it in the dot product? Or the fact that the idea of the transpose of a vector essentially means nothing than more than taking the same old three (or n number of) scalar components, but interpreting them to mean a (directed) planar area instead of an arrow (i.e. a directed line segment)? Or the fact that this entire late 19th–early 20th century intellectual enterprise springs from no grounds more complex than the fact that the equation to the line is linear, and so is the equation to the plane?

[Yes, dear American, it’s the equation not an equation, and the equation is not of a line, but to the line. Ditto, for the case of the plane.]

Oh, but no. You go ask any mathematician worth his salt to explain the idea (say of the dual space), and this modern intellectual idiot would immediately launch himself into blabbering endlessly about “fields” (by which he means something other than what either a farmer or an engineer means; he also knows that he means something else; further, he also knows that not knowing this fact, you are getting confused; but, he doesn’t care to even mention this fact to you let alone explain it (and if you catch him, he ignores you and turns his face towards that other modern intellectual idiot aka the theoretical physicist (who is all ears to the mathematician, BTW))), “space” (ditto), “functionals” (by which term he means two different things even while strictly within the context of his own art: one thing in linear algebra and quite another thing in the calculus of variations), “modules,” (neither a software module nor the lunar one of Apollo 11—and generally speaking, most any modern mathematical idiot would have become far too generally incompetent to be able to design either), “ring” (no, he means neither an engagement nor a bell), “linear forms,” (no, neither Picasso nor sticks), “homomorphism” (no, not not a gay in the course of adding on or shedding body-weight), etc. etc. etc.

What is more, the idiot would even express surprise at the fact that the way he speaks about his work, it makes you feel as if you are far too incompetent to understand his art and will always be. And that’s what he wants, so that his means of livelihood is protected.

(No jokes. Just search for any of the quoted terms on the Wiki/Google. Or, actually talk to an actual mathematician about it. Just ask him this one question: Essentially speaking, is there something more to the idea of a dual space than transposing—going from an arrow to a plane?)

So, it’s not just that no one has written about these ideas before. The trouble is that they have, including the extent to which they have and the way they did.

And therefore, writing about the same ideas but in plain(er) language (but sufficiently accurately) gets tough, extraordinarily tough.

But I am trying. … Don’t keep too high a set of hopes… but well, at least, I am trying…


BTW, talking of fields and all, here are a few interesting stories (starting from today’s ToI, and after a bit of a Google search)[^][^] [^][^].


A Song I Like:

(Marathi) “maajhyaa re preeti phulaa”
Music: Sudhir Phadake
Lyrics: Ga. Di. Madgulkar
Singers: Asha Bhosale, Sudhir Phadke

 

 

Advertisements

Some suggested time-pass (including ideas for Python scripts involving vectors and tensors)

Actually, I am busy writing down some notes on scalars, vectors and tensors, which I will share once they are complete. No, nothing great or very systematic; these are just a few notings here and there taken down mainly for myself. More like a formulae cheat-sheet, but the topic is complicated enough that it was necessary that I have them in one place. Once ready, I will share them. (They may get distributed as extra material on my upcoming FDP (faculty development program) on CFD, too.)

While I remain busy in this activity, and thus stay away from blogging, you can do a few things:


1.

Think about it: You can always build a unique tensor field from any given vector field, say by taking its gradient. (Or, you can build yet another unique tensor field, by taking the Kronecker product of the vector field variable with itself. Or, yet another one by taking the Kronecker product with some other vector field, even just the position field!). And, of course, as you know, you can always build a unique vector field from any scalar field, say by taking its gradient.

So, you can write a Python script to load a B&W image file (or load a color .PNG/.BMP/even .JPEG, and convert it into a gray-scale image). You can then interpret the gray-scale intensities of the individual pixels as the local scalar field values existing at the centers of cells of a structured (squares) mesh, and numerically compute the corresponding gradient vector and tensor fields.

Alternatively, you can also interpret the RGB (or HSL/HSV) values of a color image as the x-, y-, and z-components of a vector field, and then proceed to calculate the corresponding gradient tensor field.

Write the output in XML format.


2.

Think about it: You can always build a unique vector field from a given tensor field, say by taking its divergence. Similarly, you can always build a unique scalar field from a vector field, say by taking its divergence.

So, you can write a Python script to load a color image, and interpret the RGB (or HSL/HSV) values now as the xx-, xy-, and yy-components of a symmetrical 2D tensor, and go on to write the code to produce the corresponding vector and scalar fields.


Yes, as my resume shows, I was going to write a paper on a simple, interactive, pedagogical, software tool called “ToyDNS” (from Toy + Displacements, Strains, Stresses). I had written an extended abstract, and it had even got accepted in a renowned international conference. However, at that time, I was in an industrial job, and didn’t get the time to write the software or the paper. Even later on, the matter kept slipping.

I now plan to surely take this up on priority, as soon as I am done with (i) the notes currently in progress, and immediately thereafter, (ii) my upcoming stress-definition paper (see my last couple of posts here and the related discussion at iMechanica).

Anyway, the ideas in the points 1. and 2. above were, originally, a part of my planned “ToyDNS” paper.


3.

You can induce a “zen-like” state in you, or if not that, then at least a “TV-watching” state (actually, something better than that), simply by pursuing this URL [^], and pouring in all your valuable hours into it. … Or who knows, you might also turn into a closet meteorologist, just like me. [And don’t tell anyone, but what they show here is actually a vector field.]


4.

You can listen to this song in the next section…. It’s one of those flowy things which have come to us from that great old Grand-Master, viz., SD Burman himself! … Other songs falling in this same sub-sub-genre include, “yeh kisine geet chheDaa,” and “ThanDi hawaaein,” both of which I have run before. So, now, you go enjoy yet another one of the same kind—and quality. …


A Song I Like:

[It’s impossible to figure out whose contribution is greater here: SD’s, Sahir’s, or Lata’s. So, this is one of those happy circumstances in which the order of the listing of the credits is purely incidental … Also recommended is the video of this song. Mona Singh (aka Kalpana Kartik (i.e. Dev Anand’s wife, for the new generation)) is sooooo magical here, simply because she is so… natural here…]

(Hindi) “phailee huyi hai sapanon ki baahen”
Music: S. D. Burman
Lyrics: Sahir
Singer: Lata Mangeshkar


But don’t forget to write those Python scripts….

Take care, and bye for now…

 

Exactly what does this script show?

Update on 02 March 2018, 15:34 IST: I have now added another, hopefully better, version of the script (but also kept the old one intact); see in the post below. The new script too comes without comments.


Here is a small little Python script which helps you visualize something about a state of stress in 2D.

If interested in understanding the concept of stress, then do run it, read it, try to understand what it does, and then, if still interested in the concept of stress, try to answer this “simple” little question:

Exactly what does this script show? Exactly what it is that you are visualizing, here?


I had written a few more notes and inline comments in the script, but have deliberately deleted most of them—or at least the ones which might have given you a clue towards answering the above question. I didn’t want to spoil your fun, that’s why.

Once you all finish giving it a try, I will then post another blog-entry here, giving my answer to that question (and in the process, bringing back all the deleted notes and comments).

Anyway, here is the script:


'''
A simple script to help visualize *something* about
a 2D stress tensor.

--Ajit R. Jadhav. Version: 01 March 2018, 21:39 HRS IST.
'''

import math
import numpy as np
import matplotlib.pyplot as plt

# Specifying the input stress
# Note:
# While plotting, we set the x- and y-limits to -150 to +150,
# and enforce the aspect ratio of 1. That is to say, we do not
# allow MatPlotLib to automatically scale the axes, because we
# want to appreciate the changes in the shapes as well sizes in
# the plot.
#
# Therefore, all the input stress-components should be kept
# to within the -100 to +100 (both inclusive) range.
#
# Specify the stress state in this order: xx, xy; yx, yy
# The commas and the semicolon are necessary.

sStress = "-100, 45; 90, 25"

axes = plt.axes()
axes.set_xlim((-150, 150))
axes.set_ylim((-150, 150))
plt.axes().set_aspect('equal', 'datalim')
plt.title(
    "A visualization of *something* about\n" \
    "the 2D stress-state [xx, xy; yx, yy] = [%s]" \
    % sStress)

mStress = np.matrix(sStress)
mStressT = np.transpose(mStress)

mUnitNormal = np.zeros((2, 1))
mTraction = np.zeros((2, 1))

nOrientations = 18
dIncrement = 360.0 / float(nOrientations)
for i in range(0, nOrientations):
    dThetaDegrees = float(i) * dIncrement
    dThetaRads = dThetaDegrees * math.pi / 180.0
    mUnitNormal = [round(math.cos(dThetaRads), 6), round(math.sin(dThetaRads), 6)]
    mTraction = mStressT.dot(mUnitNormal)
    if i == 0:
        plt.plot((0, mTraction[0, 0]), (0, mTraction[0, 1]), 'black', linewidth=1.0)
    else:
        plt.plot((0, mTraction[0, 0]), (0, mTraction[0, 1]), 'gray', linewidth=0.5)
    plt.plot(mTraction[0, 0], mTraction[0, 1], marker='.',
             markeredgecolor='gray', markerfacecolor='gray', markersize=5)
    plt.text(mTraction[0, 0], mTraction[0, 1], '%d' % dThetaDegrees)
    plt.pause(0.05)

plt.show()


Update on 02 March 2018, 15:34 IST:

Here is a second version of a script that does something similar (but continues to lack explanatory comments). One advantage with this version is that you can copy-paste the script to some file, say, MyScript.py, and invoke it from command line, giving the stress components and the number of orientations as command-line inputs, e.g.,

python MyScript.py "100, 0; 0, 50" 12

which makes it easier to try out different states of stress.

The revised code is here:


'''
A simple script to help visualize *something* about
a 2D stress tensor.

--Ajit R. Jadhav. 
History: 
06 March 2018, 10:43 IST: 
In computeTraction(), changed the mUnitNormal code to make it np.matrix() rather than python array
02 March 2018, 15:39 IST; Published the code
'''

import sys
import math
import numpy as np
import matplotlib.pyplot as plt

# Specifying the input stress
# Note:
# While plotting, we set the x- and y-limits to -150 to +150,
# and enforce the aspect ratio of 1. That is to say, we do not
# allow MatPlotLib to automatically scale the axes, because we
# want to appreciate the changes in the shapes as well sizes in
# the plot.
#
# Therefore, all the input stress-components should be kept
# to within the -100 to +100 (both inclusive) range.
#
# Specify the stress state in this order: xx, xy; yx, yy
# The commas and the semicolon are necessary.
# If you run the program from a command-line, you can also
# specify the input stress string in quotes as the first
# command-line argument, and no. of orientations, as the
# second. e.g.:
# python MyScript.py "100, 50; 50, 0" 12
##################################################

gsStress = "-100, 45; 90, 25"
gnOrientations = 18


##################################################

def plotArrow(vTraction, dThetaDegs, clr, axes):
    dx = round(vTraction[0], 6)
    dy = round(vTraction[1], 6)
    if not (math.fabs(dx) < 10e-6 and math.fabs(dy) < 10e-6):
        axes.arrow(0, 0, dx, dy, head_width=3, head_length=9.0, length_includes_head=True, fc=clr, ec=clr)
    axes.annotate(xy=(dx, dy), s='%d' % dThetaDegs, color=clr)


##################################################

def computeTraction(mStressT, dThetaRads):
    vUnitNormal = [round(math.cos(dThetaRads), 6), round(math.sin(dThetaRads), 6)]
    mUnitNormal = np.reshape(vUnitNormal, (2,1))
    mTraction = mStressT.dot(mUnitNormal)
    vTraction = np.squeeze(np.asarray(mTraction))
    return vTraction


##################################################

def main():
    axes = plt.axes()
    axes.set_label("label")
    axes.set_xlim((-150, 150))
    axes.set_ylim((-150, 150))
    axes.set_aspect('equal', 'datalim')
    plt.title(
        "A visualization of *something* about\n" \
        "the 2D stress-state [xx, xy; yx, yy] = [%s]" \
        % gsStress)

    mStress = np.matrix(gsStress)
    mStressT = np.transpose(mStress)
    vTraction = computeTraction(mStressT, 0)
    plotArrow(vTraction, 0, 'red', axes)
    dIncrement = 360.0 / float(gnOrientations)
    for i in range(1, gnOrientations):
        dThetaDegrees = float(i) * dIncrement
        dThetaRads = dThetaDegrees * math.pi / 180.0
        vTraction = computeTraction(mStressT, dThetaRads)
        plotArrow(vTraction, dThetaDegrees, 'gray', axes)
        plt.pause(0.05)
    plt.show()


##################################################

if __name__ == "__main__":
    nArgs = len(sys.argv)
    if nArgs > 1:
        gsStress = sys.argv[1]
    if nArgs > 2:
        gnOrientations = int(sys.argv[2])
    main()



OK, have fun, and if you care to, let me know your answers, guess-works, etc…..


Oh, BTW, I have already taken a version of my last post also to iMechanica, which led to a bit of an interaction there too… However, I had to abruptly cut short all the discussions on the topic because I unexpectedly got way too busy in the affiliation- and accreditation-related work. It was only today that I’ve got a bit of a breather, and so could write this script and this post. Anyway, if you are interested in the concept of stress—issues like what it actually means and all that—then do check out my post at iMechanica, too, here [^].


… Happy Holi, take care to use only safe colors—and also take care not to bother those people who do not want to be bothered by you—by your “play”, esp. the complete strangers…

OK, take care and bye for now. ….


A Song I Like:

(Marathi [Am I right?]) “rang he nave nave…”
Music: Aditya Bedekar
Singer: Shasha Tirupati
Lyrics: Yogesh Damle

 

Stress is defined as the quantity equal to … what?

Update on 01 March 2018, 21:27, IST: I had posted a version of this post also at iMechanica, which led to a bit of a very interesting interaction there [^] too. Check it out, if you want… Also see my today’s post concerning the idea of stress, here [^].


In this post, I am going to note a bit from my personal learning history. I am going to note what had happened when a clueless young engineering student that was me, was trying hard to understand the idea of tensors, during my UG years, and then for quite some time even after my UG days. May be for a decade or even more….

There certainly were, and are likely to be even today, many students like [the past] me. So, in the further description, I will use the term “we.” Obviously, the “we” here is the collegial “we,” perhaps even the pedagogical “we,” but certainly neither the pedestrian nor the royal “we.”


What we would like to understand is the idea of tensors; the question of what these beasts are really, really like.

As with developing an understanding of any new concept, we first go over some usage examples involving that idea, some instances of that concept.

Here, there is not much of a problem; our mind easily picks up the stress as a “simple” and familiar example of a tensor. So, we try to understand the idea of tensors via the example of the stress tensor. [Turns out that it becomes far more difficult this way… But read on, anyway!]

Not a bad decision, we think.

After all, even if the tensor algebra (and tensor calculus) was an achievement wrought only in the closing decade(s) of the 19th century, Cauchy was already been up and running with the essential idea of the stress tensor right by 1822—i.e., more than half a century earlier. We come to know of this fact, say via James Rice’s article on the history of solid mechanics. Given this bit of history, we become confident that we are on the right track. After all, if the stress tensor could not only be conceived of, but even a divergence theorem for it could be spelt out, and the theorem even used in applications of engineering importance, all some half a century before any other tensors were even conceived of, then developing a good understanding of the stress tensor ought to provide a sound pathway to understanding tensors in general.

So, we begin with the stress tensor, and try [very hard] to understand it.


We recall what we have already been taught: stress is defined as force per unit area. In symbolic terms, read for the very first time in our XI standard physics texts, the equation reads:

\sigma \equiv \dfrac{F}{A}               … Eq. (1)

Admittedly, we had been made aware, that Eq. (1) holds only for the 1D case.

But given this way of putting things as the starting point, the only direction which we could at all possibly be pursuing, would be nothing but the following:

The 3D representation ought to be just a simple generalization of Eq. (1), i.e., it must look something like this:

\overline{\overline{\sigma}} = \dfrac{\vec{F}}{\vec{A}}                … Eq. (2)

where the two overlines over \sigma represents the idea that it is to be taken as a tensor quantity.

But obviously, there is some trouble with the Eq. (2). This way of putting things can only be wrong, we suspect.

The reason behind our suspicion, well-founded in our knowledge, is this: The operation of a division by a vector is not well-defined, at least, it is not at all noted in the UG vector-algebra texts. [And, our UG maths teachers would happily fail us in examinations if we tried an expression of that sort in our answer-books.]

For that matter, from what we already know, even the idea of “multiplication” of two vectors is not uniquely defined: We have at least two “product”s: the dot product [or the inner product], and the cross product [a case of the outer or the tensor product]. The absence of divisions and unique multiplications is what distinguishes vectors from complex numbers (including phasors, which are often noted as “vectors” in the EE texts).

Now, even if you attempt to “generalize” the idea of divisions, just the way you have “generalized” the idea of multiplications, it still doesn’t help a lot.

[To speak of a tensor object as representing the result of a division is nothing but to make an indirect reference to the very operation [viz. that of taking a tensor product], and the very mathematical structure [viz. the tensor structure] which itself is the object we are trying to understand. … “Circles in the sand, round and round… .” In any case, the student is just as clueless about divisions by vectors, as he is about tensor products.]

But, still being under the spell of what had been taught to us during our XI-XII physics courses, and later on, also in the UG engineering courses— their line and method of developing these concepts—we then make the following valiant attempt. We courageously rearrange the same equation, obtain the following, and try to base our “thinking” in reference to the rearrangement it represents:

\overline{\overline{\sigma}} \vec{A} = \vec{F}                  … Eq (3)

It takes a bit of time and energy, but then, very soon, we come to suspect that this too could be a wrong way of understanding the stress tensor. How can a mere rearrangement lead from an invalid equation to a valid equation? That’s for the starters.

But a more important consideration is this one: Any quantity must be definable via an equation that follows the following format:

the quantiy being defined, and nothing else but that quantity, as appearing on the left hand-side
=
some expression involving some other quantities, as appearing on the right hand-side.

Let’s call this format Eq. (4).

Clearly, Eq. (3) does not follow the format of Eq. (4).

So, despite the rearrangement from Eq. (2) to Eq. (3), the question remains:

How can we define the stress tensor (or for that matter, any tensors of similar kind, say the second-order tensors of strain, conductivity, etc.) such that its defining expression follows the format given in Eq. (4)?


Can you answer the above question?

If yes, I would love to hear from you… If not, I will post the answer by way of an update/reply/another blog post, after some time. …

Happy thinking…


A Song I Like:
(Hindi) “ye bholaa bhaalaa man meraa kahin re…”
Singers: Kishore Kumar, Asha Bhosale
Music: Kishore Kumar
Lyrics: Majrooh Sultanpuri


[I should also be posting this question at iMechanica, though I don’t expect that they would be interested too much in it… Who knows, someone, say some student somewhere, may be interested in knowing more about it, just may be…

Anyway, take care, and bye for now…]

Errors in my CFD notes for the lecture no. 3

I have taken off the slides for the Lecture # 3 of my introductory course on CFD, because it contained some serious errors. (….Yes, those were the serious errors—not just typos.)

I had caught the errors right the next day after posting it (about 10 days ago), but it so happened that in the meanwhile, I ended up (literally) wasting my time (and money) attending to certain highly promising promises of interviews for a professor’s job, as well as also actually attending a couple of highly promising interviews for promising positions of a professor, and subsequently, also trying to interact with the  “management”s of these colleges.

I therefore couldn’t find the frame of the mind (and in fact also the necessary time at one stretch) to write down those lengthy equations in LaTeX, by way of rectifying the mistakes. I in fact was also traveling for these job-related matters. During these last 10 days, I visited some 4 places out of town, with two of them being more than a hundred km away. … No, I haven’t landed a professor’s job yet.

Anyway, back to the mistakes in the uploaded notes.

The mistakes in particular were concerned with the tensor calculus part of the slides. I caught the mistakes when I went a bit further in my notes, to the point of preparing the slides for the next couple of lectures—which would be: on the Navier-Stokes equations.

I had never worked out the full derivation of the Navier-Stokes equations in this way, i.e., for an infinitesimal CV, but using the Eulerian approach right from the beginning. … In the past, I had always relied on books, and never worked out my own derivations without referring to the proofs given in them. Many of these books are excellent. However, for the infinitesmal CV, they all always derive it only in the Lagrangian frame, and only later on do they use the vector calculus manipulations (or identities) to map the end-result to the Eulerian frame. Every one proceeds only that way. None does what I had unwittingly ended up attempting. …

… In fact, most of them use only the Reynolds’ Transport Theorem or RTT for short. (BTW, Reynolds had never himself stated this theorem in his entire life-time; the entire RTT movement was started only later, by an MIT professor.) Now, RTT is an integral approach, not differential. Usually, the books do the derivation using the RTT, and then proceed to get the differential form from this initial integral form. In the rare cases that they at all try to use an infinitesimal CV in an ab initio manner, they invariably use only the Lagrangian i.e. the non-conservative form.

Indeed, see the unanswered query on the Physics StackExchange here: [^]. … The first part of the question has gone unanswered for 3.5 years by now, after 10,000+ views. So, you know what I was getting at, here. And how, my errors, caught by me before engaging a single class based on these notes, therefore, might perhaps be excusable.

Anyway, what is more important is to note down the references which I found useful in working out this entire issue. These are the following two. (No, they of course don’t give you the derivation; they just deal with the basics of tensors and their calculus):

  • “A brief introduction to tensors and their properties,” by Prof. Allan Bower of Brown (a fellow iMechanician!) [^]
  • “Tensor derivative (continuum mechanics,” Wiki, section on divergence of a tensor [^] (and Prof. Piaras Kelly’s notes that it refers to, here [ (.PDF) ^] )

I then worked out the tensors appearing in the Navier-Stokes equations, in fully expanded components form. In this way, my path-way to the final Navier-Stokes equations now seems OK.

In other words, yes, I am now getting ready to answer that Physics StackExchange question, in my upcoming notes. … Give me a few days’ time, and both the components-wise worked out results, as well as the relevant portion excerpted for the slides of the Lecture # 3 of my CFD course, should be online.

But, also, please note, I haven’t run my work by anyone so far. So, it’s still an easy possibility that there are some elementary mistakes in it, too. At least, it would be easy enough for some unwarranted assumptions to creep in. (For instance, it was only during this recent phase of working out these things that I gathered for the first time in my life that there are some subtle pre-suppositions going into the Helmholtz decomposition theorem for the vector fields, too—assumptions like the field having to approach zero as distance tends to infinity—assumptions that I wasn’t at all aware of….) Therefore, I do plan to privately run my notes through a few mechanician friends/blogging acquaintances—even as I simultaneously post them here, within a few days’ time.

BTW, no, coming to those earlier errors in the Lecture #3 slides, even if someone had caught my errors (IMO, a low probability), none had pointed it out to me. None. I found it on my own. But only after publishing something else, in the first place!!

* * * * *   * * * * *   * * * * *

A Song I Like:

You are (or at least should be) well-familiar with the well-worn out story by now.

[E&OE]

An introductory course on CFD—3

The Beamer slides for Lecture # 3 are uploaded; see here [^].

This lecture is not directly concerned with CFD, or for that matter, even with fluid dynamics proper. It instead concerns itself with some material that is pre-requisite to both. Namely, the topic of tensors. However, Indian universities don’t cover this topic very well during the earlier, pre-requisite courses—esp. at the UG level. So, I decided to throw in some formulae and a few points concerning vectors and tensors, that’s all.

The material for this lecture, thus, is totally “extra” (at least in a course on CFD). The treatment here is, therefore, very cursory. The idea was to give students at least some background into these topics, by way of a rapid review.

As usual, feel free to point out errors and offer criticism.

Further, this topic being challenging to present to a newcomer in a brief manner, this lecture is the one where I am confident in the least. (At least, it’s the first lecture of this kind.) So, any suggestions for a better presentation would be highly appreciated (though, given my experience of this blog, really speaking, I don’t expect any comments to come in, anyway.)

All the same, I am happy that so much of typing in of these equations is, finally, out of the way!

“Enjoy”!

* * * * *   * * * * *   * * * * *

A Song I Like:

I still have not yet reviewed and taken a decision as to the song I like, also for this time round.

So, this section will continue to remain suspended.

[E&OE]

 

Understanding tensors (of engineering sciences)—part 2: yet another DIY experiment

I continue from my last post.

There is another simple DIY experiment that you can perform at home. The idea of this experiment had occurred quite some time back, but I had completely forgotten it. (I had forgotten it even while delivering lectures for the FEM courses which I taught in 2009 and 2012). Last night, I happened to recall the idea once again, and thought of immediately sharing it with you via this blog post.

A Fun DIY Experiment # 2:

Get that piece of men’s innerware which is known in India as the “banian” or “banyan,” and in American English as the “vest” [^].  (If not sure, check out the “aaraam kaa maamla” ads.) Basically, a banyan (at least these days) is a cotton garment like a T-shirt, but it’s bit smaller in size, and as an inner-ware, it is also meant to be more closely fitting to the body. That also makes it more easily stretchable, and therefore, better suited to our purposes. It’s also very inexpensive.

Start with a new (i.e. unused and never washed (i.e. never stretched/wrinkled)) banyan. The cloth should be easily stretchable. The fabric should be plain and simple, and without any special knitting pattern; e.g. no “self-stripes” etc. Cut it open and lay the cloth flat on a table. Mark a set of regular Cartesian grid-points on it with the help of an ink pen. You can easily make a bigger grid (say of the size 15 cm X 15 cm) at a regular spacing, say of 1 cm.

Lay the cloth flat and unstretched on the glass surface of a computer scanner (or even a Xerox machine), and obtain an image, say PH1. Next, with the help of a friend, stretch the cloth non-uniformly, by pulling unevenly along many directions. Make sure that the stretch is non-uniform but completely planar, and, of course, that there are no wrinkles. Scan it in this stretched state, and thus obtain the second image, PH2.

Advantages of this second experiment are easy to see: (i) As compared to the balloon rubber, is easier to lay the banyan cloth flat and without wrinkles. (ii) It is easier to stretch it in many directions. (iii) It is easier to mark out a regular grid—the regularity of the fabric of the cloth actually helps in ensuring regularity.

Also, even if you manage to get a good piece of a large rubber balloon, it should anyway be easier to obtain the image of a grid on it using an image scanner/Xerox machine rather than using a digital camera—the issues of having to maintain the same zoom and distance don’t arise.

Process the images as mentioned in the previous post, and keep them ready.

In the meanwhile, also consult the references mentioned in the last post, and make sure to go through the following concepts in particular: (i) position vector for a point-particle; (ii) displacement vector for a point-particle; (iii) the position vectors for an infinity of points in a continuum—i.e. the position vector field; (iv) the line segment, i.e., the relative position vector (i.e., the difference between two position vectors); (v) the translation and rotation of a line segment; (vi) the relative displacement vector of a line segment (i.e., the relative displacement vector of a relative position vector!); (vii) the rigid-body translation and rotation vs. the change of size and shape of a continuum body; (viii) the displacement gradient tensor at a point in a continuum; (ix) the rotation tensor at a point in a continuum body vs. its rigid-body rotation as a whole; (viii) the strain tensor at a point in a continuum body; etc. …

We will of course look into all these concepts—in fact, we will calculate the particular values that all these quantities assume in our simple experiment, using the basic data of the two images that our simple experiment generates. That will be our topic in the next post.

But before coming to it, let’s take a pause for a moment to recall what the purpose of this whole exercise is. It is: to know the physical meanings/correspondents of the mathematical concepts; to try and develop a proper hierarchical order the concepts; to develop a physical “feel” for the more abstract concepts involved. And, as far as the last is concerned (developing a physical feel for abstract concepts), there’s no substitute to realizing what the more concrete context of a given more abstract concept is. In understanding the proper context of mathematical concepts, there is no substitute to physical observation. That’s why, no matter how ridiculously simple these experiments might look like, do not skip the step of actually performing one of these two experiments.

And, BTW, in this series, more DIY experiments and fun ideas are going to follow.

More, later.

* * * * *   * * * * *   * * * * *

A Song I Like:

(Hindi) “ek ghar banaoonga, tere ghar ke saamane…”
Singers: Mohammad Rafi and Lata Mangeshkar
Music: S. D. Burman
Lyrics: Hasrat Jaipuri

[E&OE]