General update: Will be away from blogging for a while

I won’t come back for some 2–3 weeks or more. The reason is this.

As you know, I had started writing some notes on FVM. I would then convert my earlier, simple, CFD code snippets, from FDM to FVM. Then, I would pursue modeling Schrodinger’s equation using FVM. That was the plan.

But before getting to the nitty-gritties of FVM itself, I thought of jotting down a note, once and for all, putting in writing my thoughts thus far on the concept of flux.

If you remember, it was several years ago that I had mentioned on this blog that I had sort of succeeded in deriving the Navier-Stokes equation in the Eulerian but differential form (d + E for short).

… Not an achievement by any stretch of imagination—there are tomes written on say, differentiable manifolds and whatnot. I feel sure that deriving the NS equations in the (d + E) form would be less than peanuts for them.

Yet, the fact of the matter is: They actually don’t do that!

Show me a single textbook or a paper that does that. If not at the UG level, then at least at the PG level, but one that is written using the language of only plain calculus, as used by engineers—not that of advanced analysis.

And as to the UG/PG books from engineering:

What people normally do is to derive these equations in its integral form, whether using the Lagrangian or the Eulerian approach. That is, they adopt either the (i + L) approach or the (i + D) approach.

At some rare times, if they at all begin fluid dynamics with a differential form of the NS equations, then they invariably follow the Lagrangian approach, never the Eulerian. That is, they invariably begin with only (d + L)—even in those cases when their objective is to obtain (d + E). Then, after having derived (d +L) , they simply invoke some arbitrary-looking vector calculus identities to “transform” those equations from (d + L) to (d +E).

And, worse:

They never discuss the context, meaning, or proofs of those identities. None from fluid dynamics or CFD side does that. And neither do the books on maths written for scientists and engineers.

The physical bases of the “transformation” process must remain a mystery.

When I started working through it a few years ago, I realized that the one probable reason why they don’t use the (d +E) form right from the beginning is because: forget the NS equations, no one understands even the much simpler idea of the flux—if it is to be couched entirely in the settings of (d+E). You see, the idea of the flux too always remains couched in the integral form, never the differential. For example, see Narasimhan [^]. Or, any other continuum mechanics books that impresses you.

It’s no accident that the Wiki article on Flux [^] says that it

needs attention from an expert in Physics.

And then, more important for us, the text of the article itself admits that the formula it notes, for a definition of flux in differential terms, is

an abuse of notation

See the section here [^].

Also, ask yourself, why is a formula that is free of the abuse of notation not being made available? In spite of all those tomes having been written on higher mathematics?

Further, there were also other related things I wanted to write about, like an easy pathway to the idea of tensors in general, and to that of the stress tensor in particular.

So, I thought of writing it down it for once and for all, in one note. I possibly could convert some parts of it into a paper later on, perhaps. For the time being though, the note would be more in the nature of a tutorial.

I started writing down the note, I guess, from 17 August 2018. However, it kept on growing, and with growth came reorganization of material for a better hierarchy or presentation. It has already gone through some 4–5 thorough re-orgs (meaning: discarding the earlier LaTeX file entirely and starting completely afresh), and it has already become more than 10 LaTeX pages. Even then, I am nowhere near finishing it. I may be just about half-way through—even though I have been working on it for some 7–8 hours every day for the past fortnight.

Yes, writing something in original is a lot of hard work. I mean “original” not in the sense of discovery, but in the sense of a lack of any directly citable material whatsoever, on the topic. Forget copy-pasting. You can’t even just gather a gist of the issue so that you could cite it.

And, the trouble here is, this topic is otherwise so very mature. (It is some 150+ years old.) So, you know that if you go even partly wrong, the whole world is going to pile on you.

And that way, in my experience, when you write originally, there is at least 5–10 pages of material you typically end up throwing away for every page that makes it to the final, published, version. Yes, the garbage thrown out is some 5–10 times the material retained in—no matter how “simple” and “straightforward” the published material might look.

Indeed, I could even make a case that the simpler and the more straight-forward the published material looks, if it also happens to be original, then the more strenuous it has been, on the part of the author.

Few come to grasp this simple an observation, ever, in their entire life.

As a case in point, I wish to recall here my conference paper on diffusion. [To be added here soon enough.]

I have many times silently watched people as they were going through this paper for the first time.

Typically, when engineers read it, they invariably come out with a mild expression which suggests that they probably were thinking of something like: “isn’t it all so simple and straight-forward?” Sometimes they even explicitly ask: “And, what do you say was the new contribution here?” [Even after having gone through both the abstract and the conclusion part of it, that is.]

On the other hand, on the four-five rare occasions when I have had the opportunity to watch professional mathematicians go through this paper of mine, in each case, the expression they invariably gave at the end of finishing it was as if they still were very intently absorbed in it. In particular, they never do ask me what was new about it—they just remain deeply engaged in what looks like an exercise in “fault-finding”, i.e., in checking if any proof, theorem or lemma they had ever had come across could be used in order to demolish the new idea that has been presented. Invariably, they give the same argument by way of an objection. Invariably, I explain why their argument does not address the issue I have raised in the paper. Invariably they chuckle and then go back to the paper and to their intent thinking mode, to see if there is any other weakness to my basic argument…

Till date (even after more than a decade), they haven’t come back.

But in all cases, they were very ready to admit that they were coming across this argument for the first time. I didn’t have to explain it to them that though the language and the tone of the paper looked simple enough, the argument itself was not easy to derive originally.

No, the notes which I am currently working on are nowhere near as original as that. [But yes, original, these are.]

Yet, let me confess, even as I keep prodding through it for the better part of the day the way I have done over the past fortnight or so, I find myself dealing with a certain doubt: wouldn’t they just dismiss it all as being too obvious? as if all the time and effort I spent on it was, more or less, ill spent? that it was all meaningless to begin with?

Anyway, I want to finish this task before resuming blogging—simply because I’ve got a groove about it by now… I am in a complete and pure state of anti-procrastination.

… Well, as they say: Make the hay while the Sun shines…

A Song I Like:
(Marathi) “dnyaandev baaL maajhaa…”
Singer: Asha Bhosale
Lyrics: P. Savalaram
Music: Vasant Prabhu



Where are those other equations?

Multiple header images, and the problem with them:

As noted in my last post, I have made quite a few changes to the layout of this blog, including adding a “Less transient” page [^].

Another important change was that now, there were header images too, at the top.

Actually, initially, there was only one image. For the record, it was this: [^] However, there weren’t enough equations in it. So, I made another image. It was this [^]. But as I had already noted in the last post, this image was already crowded, and even then, it left out some other equations that I wanted to include.

Then, knowing that WordPress allows multiple images that can be shown at random, I created three images, and uploaded them. These are what is being displayed currently.

However, randomizing means that even after re-loading a page a couple of times, there still is a good chance that you will miss some or the other image, out of those three.

Ummm… OK.

A quick question:

Here is the problem statement:

There are three different header images for this blog. The server shows you only one of them during a single visit. Refreshing the page in the browser also counts as a separate visit. In each visit, the server will once again select an image completely at random.

Assume also that the PDF for the random sequence is uniform. That is to say, there is no greater probability for any of the three images during any visit. Cookies, e.g., play no role.

Now, suppose you make only three visits to this blog. For instance, suppose you visit some page on this blog, and then refresh the same page twice in the browser. The problem is to estimate the chances that you will get to see:

  • all of the three different images, but in only three visits
  • one and the same image, each time, during exactly three visits
  • exactly two different images, during exactly three visits

Don’t read further until you solve this problem, right now: right on-the-fly and right in your head (i.e. without using paper and pencil).

(Hint [LOL!]: There are three balls of different colors (say Red, Green, and Blue) in a box, and \dots.)


…No, really!


Ummm… Still with me?

OK. That tells me that you are now qualified to read further.

Just in case you were wondering what was there in the “other” header images, here is a little document I am uploading for you. Go, see it (.PDF [^]), but also note the caveat below.

Caveats: It is a work in progress. If you spot a mistake or even just a typo, then please do let me know. Also, don’t rely on this work.

For example, the definition of stress given in the document is what I have not so far read in any book. So, take it with a pinch of the salt—even if I feel confident that it is correct. Similarly, there might be some other changes, especially those related to the definition of the flux and its usage in the generic equation. Also, I am not sure if the product ansatz for the separation of variables technique began with d’Alembert or not. I vaguely remember its invention being attributed to him, but it was a long time ago, and I am no longer sure. May be it was before him. May be it was much later, at the hands of Fourier, or, even still later, by Lame. … Anyway let it be…

…BTW, the equations in the images currently being shown are slightly different—the PDF document is the latest thing there is.

Also, let me have your suggestions for any further inclusions, too, if any. (As to me: Yes, I would like to add a bit on the finite volume method, too.)

As usual, I may change the PDF document at any time in future. However, the document will always carry the date of compilation as the “version number”.

General update:

These days, I am also busy converting my already posted CFD snippets [^] into an FVM-based code.

The earlier posted code was done using FDM, not FVM, but it was not my choice—SPPU (Pune University) had thrust it upon me.

Writing an illustrative code for teaching purposes is fairly simple and straight-forward, esp. in Python—and especially if you treat the numpy arrays exactly as if they were Python arrays!! (That is, very inefficiently.) But I also thought of writing some notes on at least some initial parts of FVM (in a PDF document) to go with the code. That’s why, it is going to take a bit of time.

Once all this work is over, I will also try to model the Schrodinger equation using FVM. … Let’s see how it all goes…

…Alright, time to sign off, already! So, OK, take care and bye for now. …


A Song I Like:
(Hindi) “baharon, mera jeevan bhee savaron…”
Music: Khayyam
Singer: Lata Mangeshkar
Lyrics: Kaifi Aazmi

[The obligatory PS: In all probability, I won’t make any changes to the text of this post. However, the linked PDF document is bound to undergo changes, including addition of new material, reorganization, etc. When I do revise that document, I will note the updates in the post, too.]


Changes at this blog…

The changes at this blog:

In case you haven’t noticed it already, notice [what else?] that the layout of this blog has undergone a change. Hopefully for the better!

In particular, I’ve made the following changes:

  1. This blog is now concerned not only with the more transient writings of mine, but also with the less transient ones! … Accordingly, I have made a new page which holds links to my less transient writings, too, whether the write-ups were published here or elsewhere. See that page here [^].
  2. The tagline too now reflects the change in the purpose of this blog.
  3. I have added a header image, too. As of now, it holds some of the equations that have come to grab my attention for a long while. This may change in future. (See the separate section below.)
  4. A more minor change is the one made to the font.

A note for reading on the mobile:

In case you read this blog on a mobile phone, then to see the “less transient” page, you will have to press the menu button appearing at the top to get to the new page. On a desktop, however, the menu is by default seen as expanded.

The image at the top:

Just for the record, the equations in the top image, as of today (13 August 2018, 11:31 hrs), are the following:

  • The inner product and the outer product of two vectors, expressed using the more familiar notation of matrices.
  • Definitions of the grad of scalars and vectors, and the div of vectors and tensors.
  • The Taylor series expansion
  • The Fourier series expansion
  • The generic conservation equation for a scalar quantity, in the Eulerian form
  • The conservation equation for momentum, in the Eulerian form. (NB: The source term is in terms of \Phi i.e. the conserved quantity itself, whereas the rest of the terms have the mass-specific term \phi in them. This is correct.)
  • Definition of stress. (See the note for this equation below.)
  • Definitions of the displacement gradient tensor, the strain tensor, and the rotation tensor.
  • Cauchy’s formula (the relation between stress and the net force)
  • The Planck-Einstein relations
  • The most general form of the Schrodinger equation
  • The time-dependent Schrodinger equation in 1D
  • The inner product defined over a Hilbert space, and expansion of a function in terms of its basis set defined in a Hilbert space

An important note on the definition of stress as given in the header image:

I haven’t yet seen this definition in any solid/fluid/continuum mechanics text. So, please treat it with caution.

Also, please do drop me a line if you find it erroneous, problematic, or simply not general enough.

On the other hand, if you run into this definition anywhere, then please do bring the reference to my attention; thanks in advance. [This definition is a part of my planned paper on stress and strain.]

Some of the equations that got left out:

The equations which I would have liked to have in the header, but which got left out for a lack of space, are the following (in no particular order):

  • Newton’s second law defining force
  • Definitions of action (as momentum-dot-displacement and energy-times-time); action as an integral; action as a functional
  • The general equation for the methods of the weighted residuals, and the particular equations for the commonly used test functions (i.e., the Galerkin, the pseudospectral, the least-squares, the method of moments, and the collocation)
  • The Euler identity

Perhaps also, things like:

  • The wavefunction normalization principle, and the Born equation for finding probabilities
  • Structure of probability: simultaneous vs. subsequent events
  • The wave, diffusion and potential equations (juxtaposed with the Schrodinger equation)

On the other hand, some of the equations that are generally of great importance, but which have not come to preoccupy me a lot, are the following:

  • The Euler-Lagrange equations for classical mechanics
  • The Maxwell equations of electrodynamics, supplemented with the “fifth” (i.e. the Lorentz) force equation
  • Boltzmann’s equation, and other equations from statistical mechanics

I must have left out quite a few more in both the lists.

However, I am sure that the three laws of thermodynamics probably would not make it to the header image, despite all their grandeur, their all-encompassing scope.

The reason is this: a computational modeler like me seldom works in a very direct manner with the laws of thermodynamics themselves. These laws do inform his theory; the derivation of the equations he uses indeed are based on them, even if only indirectly. However, the equations he works with happen to be much more detailed (and of far more delimited scope). For instance: the Navier-Stokes system (CFD)—an expression of the first law; the stress-strain fields (FEM)—which makes for merely a part of the internal energy; or the Maxwell system (FDTD)—ditto. Etc.

Further change may be coming:

All in all, I am not quite happy with the top image as it exists right now. … It is too crowded, and speaking from a visual aesthetics point of view, its layout is not well-balanced.

So, on both these counts (too much crowding already, and too many good equations being left out), I am thinking of a further idea: may be I should create a sequence of images, each containing only a few equations, and let the server show you one of them at random. Whaddaya think?

Do check out the “less transient” page:

But yes, if you are interested, check out the “less transient” page too, and let me know if something I wrote in the past should be there or not.

So… does that mean that I’ve gone “mathy”?

Though I exclusively include only equations in the header image—no pictures or visualizations at all, no code, and not much text either—it doesn’t mean that I have gone “mathy”. … Hell, no! Not at all! … Just check out my less transient page [^].

A song I like:

(Hindi) “aankhon aankhon mein hum tum, ho gaye…”
Music: Kalyanji-Anandji
Singers: Kishore Kumar, Asha Bhosale
Lyrics: Anand Bakshi


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:


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.


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.


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.]


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')
    "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 =
    if i == 0:
        plt.plot((0, mTraction[0, 0]), (0, mTraction[0, 1]), 'black', linewidth=1.0)
        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)

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,, and invoke it from command line, giving the stress components and the number of orientations as command-line inputs, e.g.,

python "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. 
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 "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 =
    vTraction = np.squeeze(np.asarray(mTraction))
    return vTraction


def main():
    axes = plt.axes()
    axes.set_xlim((-150, 150))
    axes.set_ylim((-150, 150))
    axes.set_aspect('equal', 'datalim')
        "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)


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

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…]

Fluxes, scalars, vectors, tensors…. and, running in circles about them!

0. This post is written for those who know something about Thermal Engineering (i.e., fluid dynamics, heat transfer, and transport phenomena) say up to the UG level at least. [A knowledge of Design Engineering, in particular, the tensors as they appear in solid mechanics, would be helpful to have but not necessary. After all, contrary to what many UGC and AICTE-approved (Full) Professors of Mechanical Engineering teaching ME (Mech – Design Engineering) courses in SPPU and other Indian universities believe, tensors not only appear also in fluid mechanics, but, in fact, the fluids phenomena make it (only so slightly) easier to understand this concept. [But all these cartoons characters, even if they don’t know even this plain and simple a fact, can always be fully relied (by anyone) about raising objections about my Metallurgy background, when it comes to my own approval, at any time! [Indians!!]]]

In this post, I write a bit about the following question:

Why is the flux \vec{J} of a scalar \phi a vector quantity, and not a mere number (which is aka a “scalar,” in certain contexts)? Why is it not a tensor—whatever the hell the term means, physically?

And, what is the best way to define a flux vector anyway?


One easy answer is that if the flux is a vector, then we can establish a flux-gradient relationship. Such relationships happen to appear as statements of physical laws in all the disciplines wherever the idea of a continuum was found useful. So the scope of the applicability of the flux-gradient relationships is very vast.

The reason to define the flux as a vector, then, becomes: because the gradient of a scalar field is a vector field, that’s why.

But this answer only tells us about one of the end-purposes of the concept, viz., how it can be used. And then the answer provided is: for the formulation of a physical law. But this answer tells us nothing by way of the very meaning of the concept of flux itself.


Another easy answer is that if it is a vector quantity, then it simplifies the maths involved. Instead of remembering having to take the right \theta and then multiplying the relevant scalar quantity by the \cos of this \theta, we can more succinctly write:

q = \vec{J} \cdot \vec{S} (Eq. 1)

where q is the quantity of \phi, an intensive scalar property of the fluid flowing across a given finite surface, \vec{S}, and \vec{J} is the flux of \Phi, the extensive quantity corresponding to the intensive quantity \phi.

However, apart from being a mere convenience of notation—a useful shorthand—this answer once again touches only on the end-purpose, viz., the fact that the idea of flux can be used to calculate the amount q of the transported property \Phi.

There also is another problem with this, second, answer.

Notice that in Eq. 1, \vec{J} has not been defined independently of the “dotting” operation.

If you have an equation in which the very quantity to be defined itself has an operator acting on it on one side of an equation, and then, if a suitable anti- or inverse-operator is available, then you can apply the inverse operator on both sides of the equation, and thereby “free-up” the quantity to be defined itself. This way, the quantity to be defined becomes available all by itself, and so, its definition in terms of certain hierarchically preceding other quantities also becomes straight-forward.

OK, the description looks more complex than it is, so let me illustrate it with a concrete example.

Suppose you want to define some vector \vec{T}, but the only basic equation available to you is:

\vec{R} = \int \text{d} x \vec{T}, (Eq. 2)

assuming that \vec{T} is a function of position x.

In Eq. 2, first, the integral operator must operate on \vec{T}(x) so as to produce some other quantity, here, \vec{R}. Thus, Eq. 2 can be taken as a definition for \vec{R}, but not for \vec{T}.

However, fortunately, a suitable inverse operator is available here; the inverse of integration is differentiation. So, what we do is to apply this inverse operator on both sides. On the right hand-side, it acts to let \vec{T} be free of any operator, to give you:

\dfrac{\text{d}\vec{R}}{\text{d}x} = \vec{T} (Eq. 3)

It is the Eq. 3 which can now be used as a definition of \vec{T}.

In principle, you don’t have to go to Eq. 3. In principle, you could perhaps venture to use a bit of notation abuse (the way the good folks in the calculus of variations and integral transforms always did), and say that the Eq. 2 itself is fully acceptable as a definition of \vec{T}. IMO, despite the appeal to “principles”, it still is an abuse of notation. However, I can see that the argument does have at least some point about it.

But the real trouble with using Eq. 1 (reproduced below)

q = \vec{J} \cdot \vec{S} (Eq. 1)

as a definition for \vec{J} is that no suitable inverse operator exists when it comes to the dot operator.


Let’s try another way to attempt defining the flux vector, and see what it leads to. This approach goes via the following equation:

\vec{J} \equiv \dfrac{q}{|\vec{S}|} \hat{n} (Eq. 4)

where \hat{n} is the unit normal to the surface \vec{S}, defined thus:

\hat{n} \equiv \dfrac{\vec{S}}{|\vec{S}|} (Eq. 5)

Then, as the crucial next step, we introduce one more equation for q, one that is independent of \vec{J}. For phenomena involving fluid flows, this extra equation is quite simple to find:

q = \phi \rho \dfrac{\Omega_{\text{traced}}}{\Delta t} (Eq. 6)

where \phi is the mass-density of \Phi (the scalar field whose flux we want to define), \rho is the volume-density of mass itself, and \Omega_{\text{traced}} is the volume that is imaginarily traced by that specific portion of fluid which has imaginarily flowed across the surface \vec{S} in an arbitrary but small interval of time \Delta t. Notice that \Phi is the extensive scalar property being transported via the fluid flow across the given surface, whereas \phi is the corresponding intensive quantity.

Now express \Omega_{\text{traced}} in terms of the imagined maximum normal distance from the plane \vec{S} up to which the forward moving front is found extended after \Delta t. Thus,

\Omega_{\text{traced}} = \xi |\vec{S}| (Eq. 7)

where \xi is the traced distance (measured in a direction normal to \vec{S}). Now, using the geometric property for the area of parallelograms, we have that:

\xi = \delta \cos\theta (Eq. 8)

where \delta is the traced distance in the direction of the flow, and \theta is the angle between the unit normal to the plane \hat{n} and the flow velocity vector \vec{U}. Using vector notation, Eq. 8 can be expressed as:

\xi = \vec{\delta} \cdot \hat{n} (Eq. 9)

Now, by definition of \vec{U}:

\vec{\delta} = \vec{U} \Delta t, (Eq. 10)

Substituting Eq. 10 into Eq. 9, we get:

\xi = \vec{U} \Delta t \cdot \hat{n} (Eq. 11)

Substituting Eq. 11 into Eq. 7, we get:

\Omega_{\text{traced}} = \vec{U} \Delta t \cdot \hat{n} |\vec{S}| (Eq. 12)

Substituting Eq. 12 into Eq. 6, we get:

q = \phi \rho \dfrac{\vec{U} \Delta t \cdot \hat{n} |\vec{S}|}{\Delta t} (Eq. 13)

Cancelling out the \Delta t, Eq. 13 becomes:

q = \phi \rho \vec{U} \cdot \hat{n} |\vec{S}| (Eq. 14)

Having got an expression for q that is independent of \vec{J}, we can now use it in order to define \vec{J}. Thus, substituting Eq. 14 into Eq. 4:

\vec{J} \equiv \dfrac{q}{|\vec{S}|} \hat{n} = \dfrac{\phi \rho \vec{U} \cdot \hat{n} |\vec{S}|}{|\vec{S}|} \hat{n} (Eq. 16)

Cancelling out the two |\vec{S}|s (because it’s a scalar—you can always divide any term by a scalar (or even  by a complex number) but not by a vector), we finally get:

\vec{J} \equiv \phi \rho \vec{U} \cdot \hat{n} \hat{n} (Eq. 17)

4. Comments on Eq. 17

In Eq. 17, there is this curious sequence: \hat{n} \hat{n}.

It’s a sequence of two vectors, but the vectors apparently are not connected by any of the operators that are taught in the Engineering Maths courses on vector algebra and calculus—there is neither the dot (\cdot) operator nor the cross \times operator appearing in between the two \hat{n}s.

But, for the time being, let’s not get too much perturbed by the weird-looking sequence. For the time being, you can mentally insert parentheses like these:

\vec{J} \equiv \left[ \left( \phi \rho \vec{U} \right) \cdot \left( \hat{n} \right) \right] \hat{n} (Eq. 18)

and see that each of the two terms within the parentheses is a vector, and that these two vectors are connected by a dot operator so that the terms within the square brackets all evaluate to a scalar. According to Eq. 18, the scalar magnitude of the flux vector is:

|\vec{J}| = \left( \phi \rho \vec{U}\right) \cdot \left( \hat{n} \right) (Eq. 19)

and its direction is given by: \hat{n} (the second one, i.e., the one which appears in Eq. 18 but not in Eq. 19).


We explained away our difficulty about Eq. 17 by inserting parentheses at suitable places. But this procedure of inserting mere parentheses looks, by itself, conceptually very attractive, doesn’t it?

If by not changing any of the quantities or the order in which they appear, and if by just inserting parentheses, an equation somehow begins to make perfect sense (i.e., if it seems to acquire a good physical meaning), then we have to wonder:

Since it is possible to insert parentheses in Eq. 17 in some other way, in some other places—to group the quantities in some other way—what physical meaning would such an alternative grouping have?

That’s a delectable possibility, potentially opening new vistas of physico-mathematical reasonings for us. So, let’s pursue it a bit.

What if the parentheses were to be inserted the following way?:

\vec{J} \equiv \left( \hat{n} \hat{n} \right) \cdot \left( \phi \rho \vec{U} \right) (Eq. 20)

On the right hand-side, the terms in the second set of parentheses evaluate to a vector, as usual. However, the terms in the first set of parentheses are special.

The fact of the matter is, there is an implicit operator connecting the two vectors, and if it is made explicit, Eq. 20 would rather be written as:

\vec{J} \equiv \left( \hat{n} \otimes \hat{n} \right) \cdot \left( \phi \rho \vec{U} \right) (Eq. 21)

The \otimes operator, as it so happens, is a binary operator that operates on two vectors (which in general need not necessarily be one and the same vector as is the case here, and whose order with respect to the operator does matter). It produces a new mathematical object called the tensor.

The general form of Eq. 21 is like the following:

\vec{V} = \vec{\vec{T}} \cdot \vec{U} (Eq. 22)

where we have put two arrows on the top of the tensor, to bring out the idea that it has something to do with two vectors (in a certain order). Eq. 22 may be read as the following: Begin with an input vector \vec{U}. When it is multiplied by the tensor \vec{\vec{T}}, we get another vector, the output vector: \vec{V}. The tensor quantity \vec{\vec{T}} is thus a mapping between an arbitrary input vector and its uniquely corresponding output vector. It also may be thought of as a unary operator which accepts a vector on its right hand-side as an input, and transforms it into the corresponding output vector.

6. “Where am I?…”

Now is the time to take a pause and ponder about a few things. Let me begin doing that, by raising a few questions for you:

Q. 6.1:

What kind of a bargain have we ended up with? We wanted to show how the flux of a scalar field \Phi must be a vector. However, in the process, we seem to have adopted an approach which says that the only way the flux—a vector—can at all be defined is in reference to a tensor—a more advanced concept.

Instead of simplifying things, we seem to have ended up complicating the matters. … Have we? really? …Can we keep the physical essentials of the approach all the same and yet, in our definition of the flux vector, don’t have to make a reference to the tensor concept? exactly how?

(Hint: Look at the above development very carefully once again!)

Q. 6.2:

In Eq. 20, we put the parentheses in this way:

\vec{J} \equiv \left( \hat{n} \hat{n} \right) \cdot \left( \phi \rho \vec{U} \right) (Eq. 20, reproduced)

What would happen if we were to group the same quantities, but alter the order of the operands for the dot operator?  After all, the dot product is commutative, right? So, we could have easily written Eq. 20 rather as:

\vec{J} \equiv \left( \phi \rho \vec{U} \right) \cdot \left( \hat{n} \hat{n} \right) (Eq. 21)

What could be the reason why in writing Eq. 20, we might have made the choice we did?

Q. 6.3:

We wanted to define the flux vector for all fluid-mechanical flow phenomena. But in Eq. 21, reproduced below, what we ended up having was the following:

\vec{J} \equiv \left( \phi \rho \vec{U} \right) \cdot \left( \hat{n} \otimes \hat{n} \right) (Eq. 21, reproduced)

Now, from our knowledge of fluid dynamics, we know that Eq. 21 seemingly stands only for one kind of a flux, namely, the convective flux. But what about the diffusive flux? (To know the difference between the two, consult any good book/course-notes on CFD using FVM, e.g. Jayathi Murthy’s notes at Purdue, or Versteeg and Malasekara’s text.)

Q. 6.4:

Try to pursue this line of thought a bit:

Start with Eq. 1 again:

q = \vec{J} \cdot \vec{S} (Eq. 1, reproduced)

Express \vec{S} as a product of its magnitude and direction:

q = \vec{J} \cdot |\vec{S}| \hat{n} (Eq. 23)

Divide both sides of Eq. 23 by |\vec{S}|:

\dfrac{q}{|\vec{S}|} = \vec{J} \cdot \hat{n} (Eq. 24)

“Multiply” both sides of Eq. 24 by \hat{n}:

\dfrac{q} {|\vec{S}|} \hat{n} = \vec{J} \cdot \hat{n} \hat{n} (Eq. 25)

We seem to have ended up with a tensor once again! (and more rapidly than in the development in section 4. above).

Now, looking at what kind of a change the left hand-side of Eq. 24 undergoes when we “multiply” it by a vector (which is: \hat{n}), can you guess something about what the “multiplication” on the right hand-side by \hat{n} might mean? Here is a hint:

To multiply a scalar by a vector is meaningless, really speaking. First, you need to have a vector space, and then, you are allowed to take any arbitrary vector from that space, and scale it up (without changing its direction) by multiplying it with a number that acts as a scalar. The result at least looks the same as “multiplying” a scalar by a vector.

What then might be happening on the right hand side?


Recall your knowledge (i) that vectors can be expressed as single-column or single-row matrices, and (ii) how matrices can be algebraically manipulated, esp. the rules for their multiplications.

Try to put the above developments using an explicit matrix notation.

In particular, pay particular attention to the matrix-algebraic notation for the dot product between a row- or column-vector and a square matrix, and the effect it has on your answer to question Q.6.2. above. [Hint: Try to use the transpose operator if you reach what looks like a dead-end.]


Suppose I introduce the following definitions: All single-column matrices are “primary” vectors (whatever the hell it may mean), and all single-row matrices are “dual” vectors (once again, whatever the hell it may mean).

Given these definitions, you can see that any primary vector can be turned into its corresponding dual vector simply by applying the transpose operator to it. Taking the logic to full generality, the entirety of a given primary vector-space can then be transformed into a certain corresponding vector space, called the dual space.

Now, using these definitions, and in reference to the definition of the flux vector via a tensor (Eq. 21), but with the equation now re-cast into the language of matrices, try to identify the physical meaning the concept of “dual” space. [If you fail to, I will sure provide a hint.]

As a part of this exercise, you will also be able to figure out which of the two \hat{n}s forms the “primary” vector space and which \hat{n} forms the dual space, if the tensor product \hat{n}\otimes\hat{n} itself appears (i) before the dot operator or (ii) after the dot operator, in the definition of the flux vector. Knowing the physical meaning for the concept of the dual space of a given vector space, you can then see what the physical meaning of the tensor product of the unit normal vectors (\hat{n}s) is, here.

Over to you. [And also to the UGC/AICTE-Approved Full Professors of Mechanical Engineering in SPPU and in other similar Indian universities. [Indians!!]]

A Song I Like:

[TBD, after I make sure all LaTeX entries have come out right, which may very well be tomorrow or the day after…]

Causality. And a bit miscellaneous.

0. I’ve been too busy in my day-job to write anything at any one of my blogs, but recently, a couple of things happened.

1. I wrote what I think is a “to read” (if not a “must read”) comment, concerning the important issue of causality, at Roger Schlafly’s blog; see here [^]. Here’s the copy-paste of the same:

1. There is a very widespread view among laymen, and unfortunately among philosophers too, that causality requires a passage of time. As just one example: In the domino effect, the fall of one domino leads to the fall of another domino only after an elapse of time.

In fact, all their examples wherever causality is operative, are of the following kind:

“If something happens then something else happens (necessarily).”

Now, they interpret the word `then’ to involve a passage of time. (Then, they also go on to worry about physics equations, time symmetry, etc., but in my view all these are too advanced considerations; they are not fundamental or even very germane at the deepest philosophical level.)

2. However, it is possible to show other examples involving causality, too. These are of the following kind:

“When something happens, something else (necessarily) happens.”

Here is an example of this latter kind, one from classical mechanics. When a bat strikes a ball, two things happen at the same time: the ball deforms (undergoes a change of shape and size) and it “experiences” (i.e. undergoes) an impulse. The deformation of the ball and the impulse it experiences are causally related.

Sure, the causality here is blatantly operative in a symmetric way: you can think of the deformation as causing the impulse, or of the impulse as causing the deformation. Yet, just because the causality is symmetric here does not mean that there is no causality in such cases. And, here, the causality operates entirely without the dimension of time in any way entering into the basic analysis.

Here is another example, now from QM: When a quantum particle is measured at a point of space, its wavefunction collapses. Here, you can say that the measurement operation causes the wavefunction collapse, and you can also say that the wavefunction collapse causes (a definite) measurement. Treatments on QM are full of causal statements of both kinds.

3. There is another view, concerning causality, which is very common among laymen and philosophers, viz. that causality necessarily requires at least two separate objects. It is an erroneous view, and I have dealt with it recently in a miniseries of posts on my blog; see

4. Notice, the statement “when(ever) something happens, something else (always and/or necessarily) happens” is a very broad statement. It requires no special knowledge of physics. Statements of this kind fall in the province of philosophy.

If a layman is unable to think of a statement like this by way of an example of causality, it’s OK. But when professional philosophers share this ignorance too, it’s a shame.

5. Just in passing, noteworthy is Ayn Rand’s view of causality: This view was basic to my development of the points in the miniseries of posts mentioned above. … May be I should convert the miniseries into a paper and send it to a foundations/philosophy journal. … What do you think? (My question is serious.)

Thanks for highlighting the issue though; it’s very deeply interesting.



3. The other thing is that the other day (the late evening of the day before yesterday, to be precise), while entering a shop, I tripped over its ill-conceived steps, and suffered a fall. Got a hairline crack in one of my toes, and also a somewhat injured knee. So, had to take off from “everything” not only on Sunday but also today. Spent today mostly sleeping relaxing, trying to recover from those couple of injuries.

This late evening, I naturally found myself recalling this song—and that’s where this post ends.

4. OK. I must add a bit. I’ve been lagging on the paper-writing front, but, don’t worry; I’ve already begun re-writing (in my pocket notebook, as usual, while awaiting my turn in the hospital’s waiting lounge) my forth-coming paper on stress and strain, right today.

OK, see you folks, bye for now, and take care of yourselves…

A Song I Like:

(Hindi) “zameen se hamen aasmaan par…”
Singer: Asha Bhosale and Mohammad Rafi
Music: Madan Mohan
Lyrics: Rajinder Krishan


See, how hard I am trying to become an Approved (Full) Professor of Mechanical Engineering in SPPU?—2

Remember the age-old decade-old question, viz.:

“Stress or strain: which one is more fundamental?”

I myself had posed it at iMechanica about a decade ago [^]. Specifically, on 8th March 2007 (US time, may be EST or something).

The question had generated quite a bit of discussion at that time. Even as of today, this thread remains within the top 5 most-hit posts at iMechanica.

In fact, as of today, with about 1.62 lakh reads (i.e. 162 k hits), I think, it is the second most hit post at iMechanica. The only post with more hits, I think, is Nanshu Lu’s, providing a tutorial for the Abaqus software [^]; it beats mine like hell, with about 5 lakh (500 k) hits! The third most hit post, I think, again is about sharing scripts for the Abaqus software [^]; as of today, it lags mine very closely, but could overtake mine anytime, with about 1.48 lakh (148 k) hits already. There used to be a general thread on Open Source FEM software that used to be very close to my post. As of today, it has fallen behind a bit, with about 1.42 lakh (142 k) hits [^]. (I don’t know, but there could be other widely read posts, too.)

Of course, the attribute “most hit” is in no fundamental way related to “most valuable,” “most relevant,” or even “most interesting.”

Yet, the fact of the matter also is that mine is the only one among the top 5 posts which probes on a fundamental theoretical aspect. All others seem to be on software. Not very surprising, in a way.

Typically, hits get registered for topics providing some kind of a practical service. For instance, tips and tutorials on software—how to install a software, how to deal with a bug, how to write a sub-routine, how to produce visualizations, etc. Topics like these tend to get more hits. These are all practical matters, important right in the day-to-day job or studies, and people search the ‘net more for such practically useful services. Precisely for this reason—and especially given the fact that iMechanica is a forum for engineers and applied scientists—it is unexpected (at least it was unexpected to me) that a “basically useless” and “theoretical” discussion could still end up being so popular. There certainly was a surprise about it, to me. … But that’s just one part.

The second, more interesting part (i.e., more interesting to me) has been that, despite all these reads, and despite the simplicity of the concepts involved (stress and strain), the issue went unresolved for such a long time—almost a decade!

Students begin to get taught these two concepts right when they are in their XI/XII standard. In my XI/XII standard, I remember, we even had a practical about it: there was a steel wire suspended from a cantilever near the ceiling, and there was hook with a supporting plate at the bottom of this wire. The experiment consisted of adding weights, and measuring extensions. … Thus, the learning of these concepts begins right around the same time that students are learning calculus and Newton’s  3 laws… Students then complete the acquisition of these two concepts in their “full” generality, right by the time they are just in the second- or third-year of undergraduate engineering. The topic is taught in a great many branches of engineering: mechanical, civil, aerospace, metallurgical, chemical, naval architecture, and often-times (and certainly in our days and in COEP) also electrical. (This level of generality would be enough to discuss the question as posed at iMechanica.)

In short, even if the concepts are so “simple” that UG students are routinely taught them, a simple conceptual question involving them could go unresolved for such a long time.

It is this fact which was (honestly) completely unexpected to me, at least at the time when I had posed the question.

I had actually thought that there would surely be some reference text/paper somewhere that must have considered this aspect already, and answered it. But I was afraid that the answer (or the reference in which it appears) could perhaps be outside of my reach, my understanding of continuum mechanics. (In particular, I knew only a little bit of tensor calculus—only that as given in Malvern, and in Schaum’s series, basically. (I still don’t know much more about tensor calculus; my highest reach for tensor calculus remains limited to the book by Prof. Allan Bower of Brown [^].)) Thus, the reason I wrote the question in such a great detail (and in my replies, insisted on discussing the issues in conceptual details) was only to emphasize the fact that I had no hi-fi tensor calculus in mind; only the simplest physics-based and conceptual explanation was what I was looking for.

And that’s why, the fact that the question went unresolved for so long has also been (actually) fascinating to me. I (actually) had never expected it.

And yes, “dear” Officially Approved Mechanical Engineering Professors at the Savitribai Phule Pune University (SPPU), and authorities at SPPU, as (even) you might have noticed, it is a problem concerning the very core of the Mechanical Engineering proper.

I had thought once, may be last year or so, that I had finally succeeded in nailing down the issue right. (I might have written about it on this blog or somewhere else.) But, still, I was not so sure. So, I decided to wait.

I now have come to realize that my answer should be correct.

I, however, will not share my answer right away. There are two reasons for it.

First, I would like it if someone else gives it a try, too. It would be nice to see someone else crack it, too. A little bit of a wait is nothing to trade in for that. (As far as I am concerned, I’ve got enough “popularity” etc. just out of posing it.)

Second, I also wish to see if the Officially Approved Mechanical Engineering Professors at the Savitribai Phule Pune University (SPPU)) would be willing and able to give it a try.

(Let me continue to be honest. I do not expect them to crack it. But I do wish to know whether they are able to give it a try.)

In fact, come to think of it, let me do one thing. Let me share my answer only after one of the following happens:

  • either I get the Official Approval (and also a proper, paying job) as a Full Professor of Mechanical Engineering at SPPU,
  • or, an already Officially Approved Full Professor of Mechanical Engineering at SPPU (especially one of those at COEP, especially D. W. Pande, and/or one of those sitting on the Official COEP/UGC Interview Panels for faculty interviews at SPPU) gives it at least a try that is good enough. [Please note, the number of hits on the international forum of iMechanica, and the nature of the topic, once again.]

I will share my answer as soon as either of the above two happens—i.e., in the Indian government lingo: “whichever is earlier” happens.

But, yes, I am happy that I have come up with a very good argument to finally settle the issue. (I am fairly confident that my eventual answer should also be more or less satisfactory to those who had participated on this iMechanica thread. When I share my answer, I will of course make sure to note it also at iMechanica.)

This time round, there is not just one song but quite a few of them competing for inclusion on the “A Song I Like” section. Perhaps, some of these, I have run already. Though I wouldn’t mind repeating a song, I anyway want to think a bit about it before finalizing one. So, let me add the section when I return to do some minor editing later today or so. (I certainly want to get done with this post ASAP, because there are other theoretical things that beckon my attention. And yes, with this announcement about the stress-and-strain issue, I am now going to resume my blogging on topics related to QM, too.)

Update at 13:40 hrs (right on 19 Dec. 2016): Added the section on a song I like; see below.

A Song I Like:

(Marathi) “soor maagoo tulaa mee kasaa? jeevanaa too tasaa, mee asaa!”
Lyrics: Suresh Bhat
Music: Hridaynath Mangeshkar
Singer: Arun Date

It’s a very beautiful and a very brief poem.

As a song, it has got fairly OK music and singing. (The music composer could have done better, and if he were to do that, so would the singer. The song is not in a bad shape in its current form; it is just that given the enormously exceptional talents of this composer, Hridaynath Mangeshkar, one does get a feel here that he could have done better, somehow—don’t ask me how!) …

I will try to post an English translation of the lyrics if I find time. The poem is in a very, very simple Marathi, and for that reason, it would also be very, very easy to give a rough sense of it—i.e., if the translation is to be rather loose.

The trouble is, if you want to keep the exact shade of the words, it then suddenly becomes very difficult to translate. That’s why, I make no promises about translating it. Further, as far as I am concerned, there is no point unless you can convey the exact shades of the original words. …

Unless you are a gifted translator, a translation of a poem almost always ends up losing the sense of rhythm. But even if you keep a more modest aim, viz., only of offering an exact translation without bothering about the rhythm part, the task still remains difficult. And it is more difficult if the original words happen to be of the simple, day-to-day usage kind. A poem using complex words (say composite, Sanskrit-based words) would be easier to translate precisely because of its formality, precisely because of the distance it keeps from the mundane life… An ordinary poet’s poem also would be easy to translate regardless of what kind of words he uses. But when the poet in question is great, and uses simple words, it becomes a challenge, because it is difficult, if not impossible, to convey the particular sense of life he pours into that seemingly effortless composition. That’s why translation becomes difficult. And that’s why I make no promises, though a try, I would love to give it—provided I find time, that is.

Second Update on 19th Dec. 2016, 15:00 hrs (IST):

A Translation of the Lyrics:

I offer below a rough translation of the lyrics of the song noted above. However, before we get to the translation, a few notes giving the context of the words are absolutely necessary.

Notes on the Context:

Note 1:

Unlike in the Western classical music, Indian classical music is not written down. Its performance, therefore, does not have to conform to a pre-written (or a pre-established) scale of tones. Particularly in the Indian vocal performance, the singer is completely free to choose any note as the starting note of his middle octave.

Typically, before the actual singing begins, the lead singer (or the main instrument player) thinks of some tone that he thinks might best fit how he is feeling that day, how his throat has been doing lately, the particular settings at that particular time, the emotional interpretation he wishes to emphasize on that particular day, etc. He, therefore, tentatively picks up a note that might serve as the starting tone for the middle octave, for that particular performance. He makes this selection not in advance of the show and in private, but right on the stage, right in front of the audience, right after the curtain has already gone up. (He might select different octaves for two successive songs, too!)

Then, to make sure that his rendition is going to come out right if he were to actually use that key, that octave, what he does is to ask a musician companion (himself on the stage besides the singer) to play and hold that note on some previously well-tuned instrument, for a while. The singer then uses this key as the reference, and tries out a small movement or so. If everything is OK, he will select that key.

All this initial preparation is called (Hindi) “soor lagaanaa.” The part where the singer turns to the trusted companion and asks for the reference note to be played is called (Hindi) “soor maanganaa.” The literal translation of the latter is: “asking for the tone” or “seeking the pitch.”

After thus asking for the tone and trying it out, if the singer thinks that singing in that specific key is going to lead to a good concert performance, he selects it.

At this point, both—the singer and that companion musician—exchange glances at each other, and with that indicate that the tone/pitch selection is OK, that this part is done. No words are exchanged; only the glances. Indian performances depend a great deal on impromptu variations, on improvizations, and therefore, the mutual understanding between the companion and the singer is of crucial importance. In fact, so great is their understanding that they hardly ever exchange any words—just glances are enough. Asking for the reference key is just a simple ritual that assures both that the mutual understanding does exist.

And after that brief glance, begins the actual singing.

Note 2:

Whereas the Sanskrit and Marathi word “aayuShya” means life-span (the number of years, or the finite period that is life), the Sanskrit and Marathi word “jeevan” means Life—with a capital L. The meaning of “jeevan” thus is something like a slightly abstract outlook on the concrete facts of life. It is like the schema of life. The word is not so abstract as to mean the very Idea of Life or something like that. It is life in the usual, day-to-day sense, but with a certain added emphasis on the thematic part of it.

Note 3:

Here, the poet is addressing this poem to “jeevan” i.e., to the Life with a capital L (or the life taken in its more abstract, thematic sense). The poet is addressing Life as if the latter is a companion in an Indian singing concert. The Life is going to help him in selecting the note—the note which would define the whole scale in which to sing during the imminent live performance. The Life is also his companion during the improvisations. The poem is addressed using this metaphor.

Now, my (rough) translation:

The Refrain:
[Just] How do I ask you for the tone,
Life, you are that way [or you follow some other way], and I [follow] this way [or, I follow mine]

Stanza 1:
You glanced at me, I glanced at you,
[We] looked full well at each other,
Pain is my mirror [or the reference instrument], and [so it is] yours [too]

Stanza 2:
Even once, to [my] mind’s satisfaction,
You [oh, Life] did not ever become my [true]  mate
[And so,] I played [on this actual show of life, just whatever] the way the play happened [or unfolded]

And, finally, Note 4 (Yes, one is due):

There is one place where I failed in my translation, and most any one not knowing both the Marathi language and the poetry of Suresh Bhat would.

In Marathi, “tu tasaa, [tar] mee asaa,” is an expression of a firm, almost final, acknowledgement of (irritating kind of) differences. “If you must insist on being so unreasonable, then so be it—I am not going to stop following my mind either.” That is the kind of sense this brief Marathi expression carries.

And, the poet, Suresh Bhat, is peculiar: despite being a poet, despite showing exquisite sensitivity, he just never stops being manly, at the same time. Pain and sorrow and suffering might enter his poetry; he might acknowledge their presence through some very sensitively selected words. And yet, the underlying sense of life which he somehow manages to convey also is as if he is going to dismiss pain, sorrow, suffering, etc., as simply an affront—a summarily minor affront—to his royal dignity. (This kind of a “royal” sense of life often is very well conveyed by ghazals. This poem is a Marathi ghazal.) Thus, in this poem, when Suresh Bhat agrees to using pain as a reference point, the words still appear in such a sequence that it is clear that the agreement is being conceded merely in order to close a minor and irritating part of an argument, that pain etc. is not meant to be important even in this poem let alone in life. Since the refrain follows immediately after this line, it is clear that the stress gets shifted to the courteous question which is raised following the affronts made by one fickle, unfaithful, even idiotic Life—the question of “Just how do I treat you as a friend? Just how do I ask you for the tone?” (The form of “jeevan” or Life used by Bhat in this poem is masculine in nature, not neutral the way it is in normal Marathi.)

I do not know how to arrange the words in the translation so that this same sense of life still comes through. I simply don’t have that kind of a command over languages—any of the languages, whether Marathi or English. Hence this (4th) note. [OK. Now I am (really) done with this post.]

Anyway, take care, and bye for now…

Update on 21st Dec. 2016, 02:41 AM (IST):

Realized a mistake in Stanza 1, and corrected it—the exchange between yours and mine (or vice versa).


Conservation of angular momentum isn’t [very] fundamental!

What are the conservation principles (in physics)?

In the first course on engineering mechanics (i.e. the mechanics of rigid bodies) we are taught that there are these three conservation principles: Conservation of: (i) energy, (ii) momentum, and (iii) angular momentum. [I am talking about engineering programs. That means, we live entirely in a Euclidean, non-relativistic, world.]

Then we learn mechanics of fluids, and the conservation of (iv) mass too gets added. That makes it four.

Then we come to computational fluid dynamics (CFD), and we begin to deal with only three equations: conservation of (i) mass, (ii) momentum, and (iii) energy. What happens to the conservation of the angular momentum? Why does the course on CFD drop it? For simplicity of analysis?

Ask that question to postgraduate engineers, even those who have done a specialization in CFD, and chances are, a significant number of them won’t be able to answer that question in a very clear manner.

Some of them may attempt this line of reasoning: That’s because in deriving the fluids equations (whether for a Newtonian fluid or a non-Newtonian one), the stress tensor is already assumed to be symmetrical: the shear stresses acting on the adjacent faces are taken to be equal and opposite (e.g. \sigma_{xy} = \sigma_{yx}). The assumed equality can come about only after assuming conservation of the angular momentum, and thus, the principle is already embedded in the momentum equations, as they are stated in CFD.

If so, ask them: How about a finite rotating body—say a gyroscope? (Assume rigidity for convenience, if you wish.) Chances are, a great majority of them will immediately agree that in this case, however, we have to apply the angular momentum principle separately.

Why is there this difference between the fluids and the finite rotating bodies? After all, both are continua, as in contrast to point-particles.

Most of them would fall silent at this point. [If not, know that you are talking with someone who knows his mechanics well!]

Actually, it so turns out that in continua, the angular momentum is an emergent/derivative property—not the most fundamental one. In continua, it’s OK to assume conservation of just the linear momentum alone. If it is satisfied, the conservation of angular momentum will get satisfied automatically. Yes, even in case of a spinning wheel.

Don’t believe me?

Let me direct you to Chad Orzel; check out here [^]. Orzel writes:

[The spinning wheel] “is a classical system, so all of its dynamics need to be contained within Newton’s Laws. Which means it ought to be possible to look at how angular momentum comes out of the ordinary linear momentum and forces of the components making up the wheel. Of course, it’s kind of hard to see how this works, but that’s what we have computers for.” [Emphasis in italics is mine.]

He proceeds to put together a simple demo in Python. Then, he also expands on it further, here [^].

Cool. If you think you have understood Orzel’s argument well, answer this [admittedly deceptive] question: How about point particles? Do we need a separate conservation principle for the angular momentum, in addition to that for the linear momentum at least in their case? How about the earth and the moon system, granted that both can be idealized as point particles (the way Newton did)?

Think about it.

A Song I Like:

(Hindi) “baandhee re kaahe preet, piyaa ke sang”
Singer: Sulakshana Pandit
Music: Kalyanji-Anandji
Lyrics: M. G. Hashmat