Boltzmann-Hamel equations, quick way of generating Hamel coefficients?

  • Thread starter TheFerruccio
  • Start date
  • Tags
    Coefficients
In summary: Psi. Derivative is a function that calculates the derivative of a function at a certain point. I used it to calculate the second derivative of the function \Phi with respect to the function \Theta. The result is stored in the gu and gv variables, respectively.
  • #1
TheFerruccio
220
0
Most of this post is an overview. The actual question is at the end. Basically: If I am given crazy summations with lots of indices cycling through multiple matrices, is there a quick way I can implement this in Mathematica?


So, I am doing a little bit of research into nonholonomic constraints in Lagrange equations, and I ran across this particular topic. It seems a lot more rigorous and standardized than trying to seek out Lagrange multipliers. It involves finding a matrix [itex]\Psi[/itex] which converts generalized velocities into instantaneous (quasi-) velocities, for the coordinates which there exist nonholonomic constraints.

If you have a system whose generalized coordinates are mostly independent of each other, this matrix will be mostly diagonal populated with 1's. However, for the coordinates that have nonholonomic constraints attached to them, nondiagonal terms show up. This makes perfect sense.

However, finding the Hamel Coefficients is an absolute dog of a task. Once I find the Hamel coefficients, then everything works itself out pretty nicely.

oxJEY7p.gif


These are the equations in question. The first equation is the Boltzmann-Hamel equation for the r'th generalized quasicoordinate. Solving this equation shows how the r'th coordinate evolves over time. [itex]\overline{Q}_r[/itex] is the force acting in the generalized quasicoordinate direction, and [itex]\tilde{n}[/itex] is the number of generalized quasicoordinates. The number of equations needed to fully describe the evolution of the entire system is [itex]\tilde{n}-\tilde{c}[/itex] where [itex]\tilde{c}[/itex] is the number of nonholonomic constraints, so the index r for the equation only goes up to [itex]\tilde{n}-\tilde{c}[/itex].

I need some good method for generating the [itex]\gamma[/itex] Hamel coefficients. They act on an [itex]\tilde{n}\times\tilde{n}[/itex] matrix [itex]\Phi[/itex] that is the inverse of [itex]\Psi[/itex]

If I have the matrix [itex]\Phi[/itex] written up in Mathematica, is there a good way that I can apply these summations in there, to quickly generate the coefficients [itex]\gamma[/itex] I need?
 
Engineering news on Phys.org
  • #2
Here is some Mathematica code I used in attempt to solve for the Hamel coefficients [itex]\gamma[/itex]

Code:
ClearAll["Global`*"];
Clear[Derivative];
S = {
   {1, 0, 0, 0, 0},
   {0, 1, 0, 0, 0},
   {0, 0, 1, 0, 0},
   {0, 0, -a, Cos[\[Phi]], Sin[\[Phi]]},
   {0, 0, 0, -Sin[\[Phi]], Cos[\[Phi]]}
  };
P = Inverse[S];
q = {\[Phi], \[Theta], \[Psi], u, v};
gu = IdentityMatrix[5];
gv = IdentityMatrix[5];
For[r = 1, r < 5, r++, 
 For[l = 1, l < 5, l++, 
  gu[[{r}, {l}]] = 
   Sum[Sum[(D[S[[{4}, {j}]], q[[{k}]]] - 
        D[S[[{4}, {k}]], q[[{j}]]]) P[[{k}, {l}]] P[[{j}, {r}]], {k, 
      1, 5}], {j, 1, 5}]]]
For[r = 1, r < 5, r++, 
 For[l = 1, l < 5, l++, 
  gv[[{r}, {l}]] = 
   Sum[Sum[(D[S[[{5}, {j}]], q[[{k}]]] - 
        D[S[[{5}, {k}]], q[[{j}]]]) P[[{k}, {l}]] P[[{j}, {r}]], {k, 
      1, 5}], {j, 1, 5}]]]
Simplify[gu] // TableForm
Simplify[gv] // TableForm

The two For loops are where most of the information is stuffed. I would have preferred to have a single triple embedded For loop, but I do not know how Mathematica deals with higher dimensional arrays. I did not thoroughly skim through the help section enough.

These successfully generated two layers of the 3-dimensional [itex]\gamma[/itex] tensor, focusing on where I wished to solve the problem at hand: index 4 and 5. S and P are the matrices [itex]\Psi[/itex] and [itex]\Phi[/itex], respectively.
 

FAQ: Boltzmann-Hamel equations, quick way of generating Hamel coefficients?

1. What are the Boltzmann-Hamel equations?

The Boltzmann-Hamel equations are a set of partial differential equations used in the study of turbulence. They were developed by Ludwig Boltzmann and Georg Hamel in the late 19th and early 20th centuries, respectively.

2. How do the Boltzmann-Hamel equations relate to turbulence?

The Boltzmann-Hamel equations are used to describe the evolution of turbulent flow, including the generation of small-scale structures and the dissipation of energy. They are a fundamental tool in the study of turbulence and have applications in fluid dynamics, atmospheric science, and engineering.

3. What is the quick way of generating Hamel coefficients?

The quick way of generating Hamel coefficients involves using a method known as the Hamel expansion. This method allows for the efficient calculation of Hamel coefficients, which are important in the analysis of the Boltzmann-Hamel equations.

4. What are Hamel coefficients used for?

Hamel coefficients are used to quantify the strength and structure of turbulent flow. They can also be used to study the effects of different parameters on turbulence, such as viscosity or initial conditions.

5. Are Boltzmann-Hamel equations still relevant in modern research?

Yes, the Boltzmann-Hamel equations are still widely used in modern research on turbulence. While there have been advancements in other areas of turbulence modeling, the Boltzmann-Hamel equations remain an important tool for understanding and predicting turbulent flows.

Similar threads

Back
Top