<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css">
<!--
p, li
        {white-space:pre-wrap}
-->
</style><style id="owaParaStyle" type="text/css">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
P {margin-top:0;margin-bottom:0;}</style>
</head>
<body ocsi="0" fpstyle="1" style="font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">Correction<br>
<br>
Actually what I said in the last post was not quite precise - there is a phase distribution function in eq 21 - but this does not translate directly to a particular volume, but is true in ANY proper frame - that is the point!<br>
<br>
Regards, J.<br>
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<hr tabindex="-1">
<div style="direction: ltr;" id="divRpF56457"><font face="Tahoma" color="#000000" size="2"><b>From:</b> General [general-bounces+john.williamson=glasgow.ac.uk@lists.natureoflightandparticles.org] on behalf of John Williamson [John.Williamson@glasgow.ac.uk]<br>
<b>Sent:</b> Friday, November 13, 2015 1:57 PM<br>
<b>To:</b> Nicholas Bailey<br>
<b>Cc:</b> Stephen Leary; David Williamson; Nature of Light and Particles - General Discussion; pete@leathergoth.com; Mark, Martin van der<br>
<b>Subject:</b> Re: [General] SU(2) equation set<br>
</font><br>
</div>
<div></div>
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">Dear everyone,<br>
<br>
Chip - your background is ideal. I always tell my aero students (I teach them a maths course) - that they will have a better skill set than physicists or mathematicians for solving differential equations because fluid mechanics is (relatively) hard, compared
 to mere Maxwell or QM (even relativistic QM!). Also the algebra (The space-time algebra (STA)- Cl(1,3)) is a kind of 4D extension of the quaternion algebra (which it contains as a sub-algebra). This is not to say it will be easy for you - there are concepts
 in there which will still make your head explode. <br>
<br>
First of these is: the quaternion algebra is a division algebra (technically a division ring). The STA is not. This is both a problem and a solution. It is a problem in that there are limits where differentiation explodes. It is a solution in that division
 has implicit scalings (for which we need Martin and my paper on division) which allow (sorry -force!) extra constraints which are required - as the Maxwell equations alone) are under-constrained. Same is true for ordinary QM by the way - as one needs (at least)
 an extra external normalisation condition. Note, for example, that my eq 21 does not contain one - it is self-quantised.<br>
<br>
Coming back to the code. I'm delighted that you professionals don't really seem to mind on which platform it runs. My preference would be for Python, or failing that something I could, at least read, like C. Object-oriented stuff makes my poor old head hurt!
<br>
<br>
Hmm on speed ... fast is good of course, but I think i would rather it was clever. What I am looking for is generating solutions to the particle spectrum. I have an analytic solutions for the photon, and a candidate one for the electron and the positron.  This
 would allow for testing of the numerical program in those cases. In the first instance a numerical system would look to parallel these.<br>
<br>
What is needed further is a model for the quarks (I think I know how to do this, as I talked about first at CYBCOM 2008) and the interactions between them. Also one needs a model for the neutrinos - and how they propagate. Martin and I have some ideas for this
 - but there is room for (a lot of) development here. The best thing would be to get all of us into a room and not come out till we had a specification. I think we need a week in the first instance. Starting with me and Martin teaching you about how things
 work! Despite the existing papers, email back and forwards is just going to be inadequate<br>
<br>
To brass tacks: a good starting point (even better than Stephen's code - as it is more extensive) for the algebra input is Martin's 16 by 16 matrix.
<br>
<br>
The second thing is a sharing of the division algebra paper (are we ready for this Martin?). This is a second-level thing though - and not needed for the first steps in the photon solution.<br>
<br>
Anyway Stephen and Martin - this is down to you guys to decide whether or not (and how much) of this stuff you want to make public.<br>
<br>
The next is the development of a proper "grid". A merely spatial (xyz) grid is not going to hack this. Indeed, it will be counter productive since it imposes a form which is just too simple (and one is already lost). What the 4-vector differential actually
 DOES (in terms of process - per differential) is transform a set of eight even terms (the fields, root-mass and quadrivector) to a set of odd terms (the currents and the angular momenta) and vice -versa. The constraint here is that the process must be UNITARY. 
 This means going to transformations (in terms of process) from an eight degree of freedom system to another eight degree of freedom system, using unitary differential transformations. 8D to 8D then. Not for the faint-hearted! Any "motion" or "oscillation"
 is really a transformation between these sets. I have invented a mathematics to try to think about this, based on fundamental process. I cannot email it to you as it is symbolic. It could be implemented (I think) as a process in a program. I anyway do not
 want to just "give it away", publically. Best method to teach it in the first instance is on a whiteboard!<br>
<br>
The final step, however, is that everything must project back onto a grid on which one can measure it. That is 3D space and time - the basis set.<br>
<br>
That is it. The process should parallel the process observed in reality - and project onto the basis of what may be measured. Hopefully, then, what is observed parallels what is simulated.<br>
<br>
That brings me to a second question. Are we going to make the code and the process public or private? If private, under the "ownership" of what body? There are a few considerations here. Firstly, I noted recently that there is a prize for the solutions of a
 set of problems in mathematics - the Clay prizes. Solve one, win a million (dollars - i think). I got fairly excited, because I thought I may be able to solve one of them with (aspects of) the new maths. I phoned Nick Bailey for help - and he and I had a session
 last Saturday. Upshot of that was - no - probably cannot solve it in short order - partly because the way the question is formulated is on an un-realistic basis. Best that can be hoped for is to suggest "oracle" like solutions to particular practical problems. 
 Another problem has to do with the "momentum gap" in Yang-Mills theories. Again - cannot solve this directly (as Yang-Mills - though close to the truth - are themselves unphysical - in my view) - but should be able to solve the ACTUAL underlying problem -
 so (morally) should win that one (if we can do it)). Also, if we have code modelling both light and matter, one can begin to think about simulating molecules and crystals - and hence inventing new materials, devices and systems. That can be very lucrative!<br>
<br>
My usual feeling is that all code should be open - but if there is serious money to be made down the line, which we could put into a foundation for the support and training of young international scientists, for example, then I would like to do that.<br>
<br>
Anyway - the good news is that Hilbert once said that physics was getting to hard for the physicists. If we can solve one or two of the Clay prizes that will tend to show that maths just got too hard for the mathematicians!<br>
<br>
Regards, John.<br>
<br>
<br>
<div style="font-family:Times New Roman; color:#000000; font-size:16px">
<hr tabindex="-1">
<div id="divRpF118720" style="direction:ltr"><font face="Tahoma" color="#000000" size="2"><b>From:</b> Nicholas Bailey<br>
<b>Sent:</b> Friday, November 13, 2015 11:21 AM<br>
<b>To:</b> John Williamson<br>
<b>Cc:</b> Nature of Light and Particles - General Discussion; Mark, Martin van der; Stephen Leary; Joakim Pettersson<br>
<b>Subject:</b> Re: [General] SU(2) equation set<br>
</font><br>
</div>
<div></div>
<div>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
Do you want it to be <span style="font-style:italic">fast</span>?</p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
 </p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
Python is fast (and fun!) to write but slow to run. Although actually, not that slow.
<a href="http://percival-music.ca/artifastring/" target="_blank"><span style="text-decoration:underline; color:#0057ae">Artifastring</span></a>, a modal physical model written by my ex-postgrad in C++ as the engine behind
<a href="http://percival-music.ca/vivi.html" target="_blank"><span style="text-decoration:underline; color:#0057ae">Vivi</span></a>, the virtual violinist, actually ran faster when bound to Python than when linked to a larger C++ program! I didn't look into
 why. Curious.</p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
 </p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
Anyway, if you want fast, I'd write in C++ with as much built-in operator overloading as you can so that you can read your own code. You can test that to hell, then pull it in to Python using
<a href="http://www.swig.org/" target="_blank"><span style="text-decoration:underline; color:#0057ae">swig</span></a> or
<a href="https://riverbankcomputing.com/software/sip/intro" target="_blank"><span style="text-decoration:underline; color:#0057ae">sip</span></a>.</p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
 </p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
Alternatively, I suppose one could think of starting with Python and extending the functionality of a numeric module such as
<a href="http://www.numpy.org/" target="_blank"><span style="text-decoration:underline; color:#0057ae">numpy</span></a>.</p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
 </p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
The other advantage of having at least the possibility of running C++ instead of Python is that Python doesn't support threads (because of the
<a href="https://www.jeffknupp.com/blog/2012/03/31/pythons-hardest-problem/" target="_blank">
<span style="text-decoration:underline; color:#0057ae">Global Intepreter Lock</span></a> problem) and if you want to do real heavy duty number crunching on multiple cores, you'd best use C++ with
<a href="http://www.boost.org/" target="_blank"><span style="text-decoration:underline; color:#0057ae">boost</span></a> or something like that. Boost is proposed to be included in the standard library in C++17 anyway.</p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
 </p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
Nick/.</p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
 </p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
On Thursday 12 November 2015 13:37:03 John Williamson wrote:<br>
</p>
<p style="margin-top:12px; margin-bottom:12px; margin-left:40px; margin-right:40px; text-indent:0px">
Firstly need to implement a system with primitive operations which parallel the workings of the space-time algebra. Multiplications, divisions and differentiations in particular.  It would be nice if such a framework existed already, but I do not think so.
 Stephen has written a suite in PYTHON to deal with the multiplications, which may be a start. Not sure what is best here: C++?, Python?, Something else?
</p>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
<span style="background-color:white">Hi John and Martin,<br>
<br>
I am thrilled with the opportunities now when John has raised the funding question and Chip finally took a dive into the math and calculus!<br>
Hope it stays at that level or continues to the next!<br>
<br>
Some things I believe I could be most helpful with in your work are listed below. Tell me what to do and I will work free on it a few hours a week, odd week numbers. I could also offer my services more intensively as a consultant if that is an option. My normal
 tariff is 850 SEK/h (pretty standard in Sweden) and I only charge for productive time (not setting up tools, training, coffe-breaks etc). Likewise goes for my collegues at Join Business and Technology AB where there are few people that already work with FEM
 modeling and simulations regularly.<br>
<br>
</span></p>
<ol style="margin-top:14pt; margin-bottom:14pt">
<li>simpy/numpy Python framework for interactive calculus: </li><li><a href="https://github.com/joakimbits/Quflow-and-Perfeco-tools/blob/master/lib/algebra.py" target="_blank">https://github.com/joakimbits/Quflow-and-Perfeco-tools/blob/master/lib/algebra.py</a> (outdated now but I can fix it to work in Python 3)
</li><li>Ejs Java framework for interactive 2D-3D simulations (and a clever web interface):
<a href="http://www.um.es/fem/EjsWiki/Main/ExamplesLorentzForce" target="_blank">
http://www.um.es/fem/EjsWiki/Main/ExamplesLorentzForce</a> </li><li>Usage of DX12 or its up-coming open-source derivates to make rough FEM/numeric calculations on arbitary gpu/cpu platforms.
</li><li>I could also bring my dual quad-core 32GB RAM server online if it helps. </li></ol>
Which calculus framework are you experimenting with today? I used to work in Mathematica, Matlab and Mathcad but nowadays I use Python or Jython for pretty much everything.<br>
<br>
Best regards,<br>
/Joakim<br>
<p></p>
<div id="divBdy" class="bdyItmPrt">
<div>
<div><span lang="en-US">
<div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black">Hi John W.</font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black"> </font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black">Some of my background is in aerodynamic simulation, where I have written more than 500K lines of ‘C’ code and created
 one of the world’s most accurate real-time simulations of flight. Lots of use of quaternions and fluid mechanics of course.</font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black"> </font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black">I have written code in many different languages, so practically any we choose will work for me.</font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black"> </font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black">In order to start we will need to do as you suggest and look at the fundamentals to create a library of functions we
 can call as required.</font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black"> </font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black">So if I can look at Stephen’s Python code for multiplications that would help me get a handle on how to write the division
 and differentiation low level code.</font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black"> </font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black">Some personal experience and observations…</font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black">Object oriented code generally takes more time to design and runs a little slower, but it protects and manages the data
 and functions operating on the data as individual objects. Object oriented code generally uses more memory as well. Computation time, and memory capacity, are really critical for us because of the tremendous computational load it will take to do the simulation
 at any useful scale. So when we were writing flight simulation code, which had to compute all the forces and moments in real time, at about 120 times a second, we wrote it all in ‘C’.  I am bringing this up because even now, when I am doing physics modeling,
 which is much simpler than the task at hand, I often have to wait an hour for the results from our fairly large and very fast workstations here in the office. It would be nice to create the simulation in the fastest running code we can, so that we have some
 hope of getting results in reasonable time, without having to rent expensive time on, or build a supercomputer.</font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black"> </font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black">But those opinions are not as important as getting the foundation in place so we can start doing some real work in simulating
 particles, and interactions.  Exciting stuff.</font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black"> </font></span></font></div>
<div style="margin:0"><font face="Calibri,sans-serif" size="3"><span style="font-size:12pt"><font face="Times New Roman,serif" color="black">Chip</font></span></font></div>
</div>
</span></div>
</div>
</div>
<p style="margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; text-indent:0px">
<br>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>