Shimon Panfil: Industrial Physics and Simulations
Modeling Programming Optimization Algorithms Data Analysis
Make everything as simple as possible but not simpler.
(attributed to Albert Einstein)

Industrial Physics

Industrial physics is not a branch of physics, generally it means solving of practical real life problems using the knowledge of physics. Contrary to what I call "inventor's approach":try this,try that, keep trying until you get something working; or engineer's approach: this is a problem of such-and-such type hence use this-and_that method - industrial physics is based on deep understanding of the problem. It may be seen as practical application of the SPIPS way.

I am physicist by training, trade, and style of thinking ... . Programming and computers have been essential part of my work for more than thirty years, but I do not consider myself professional programmer.

It is not about the quality, it is about the approach. Making mathematical model of phenomena or process, scientist tries to be as accurate as possible he rarely thinks of computational efficiency. Mathematician designs the algorithm provided with fixed mathematical model. Programmer implements given algorithm. None of them tries to change the model. Imagine taxi driver on his day off, he drives to some place probably using all tricks of trade to do it in a most efficient way, exactly as on working day, but he has also additional options: he may decide to change destination or stay at some place for a while etc.

I do not sell software. I sell a solution to the given problem and my code is only a part of this solution. I build some mathematical model, derive equations which describe it, design the algorithm which solves these equations and implement the algorithm to get results in comprehensible way. Considering the big picture allows me not to waste efforts improving inessential parts but concentrate on real show stoppers. Suppose that a client asks for an algorithm for effective computation of matrix determinant, however he wants to do the calculations of inverse matrix, but actually needs to solve some system of linear equations. Mathematically all three problems are equivalent but in numerical computation they are completely different unless matrix is small.

Formally solution consists of three stages:
Building of proper physical model,not too general and not oversimplified,making mathematical description of the model;
algorithm design and implementation
see Scientific and Technical Efficient Programming - STEP
data analysis
running computations/simulations with actual data, making physical measurements, comparison with results produced by computer.
In practice these steps are usually interconnected and are frequently done in parallel.

Let us look at some specific example - electromagnetic scattering. It is very important problem both from theoretial point of view (e.g. quantum field theory and particle physics) and in practice (e.g. radar cross-sectons, optical inspection and metrology). Well known Maxwell equations form foundation for all kinds of electromagnetic calculations, here I'll show how industrial physics approach differs from traditonal one.

The key point is the observation that (relative) magnetic permeability is very close to unity unless we work with magnetic media. This fact greatly simplifies all the calculations. Traditionally algorithms are designed for arbitrary magnetic permeability which is set to unity at run time. In industrial physics we set it from the very begining.