We are our choices.
― Jean-Paul Sartre
Life comes with many choices regarding what to do, what to eat, buy, watch, listen to and so on. Depending on your personal tastes these choices are wonderful or a burden. If you really care about something quite often you demand choices to be happy. You won’t be pleased with limited options when you know something better isn’t even being offered. In other cases where you aren’t emotionally invested, too many choices can be a burden, and unwelcome. You just need something functional and aren’t willing to expend the effort to sift through a bunch of alternatives. This distinction happens over and over across our lives both personal and professional.
What one person demands as a phalanx of options is a crushing affront to another. The demands of choice come from the aficionado who sees the texture and variation among the choices. When no options are available it can be greeted as the acceptance of something awful. This could even be true for the single option, which is acknowledged as the best and would be chosen from many options. On the other hand for someone who doesn’t care about the details, the mediocre is just fine. It isn’t that they wouldn’t like something better; it is that they can’t tell the difference or don’t care. This sort of dichotomy exists with everyone and varies topic to topic. It plays a huge role in science and engineering. I am certainly guilty of this, and I suspect all of you are too.
In any moment of decision, the best thing you can do is the right thing. The worst thing you can do is nothing.
― Theodore Roosevelt
A while back I wrote about what I don’t like about the finite element method (FEM) (https://wjrider.wordpress.com/2014/08/01/what-do-i-have-against-the-finite-element-method/). Over the long weekend I was thinking about adaptivity and robustness in numerical methods. Some of my thoughts were extensions of the Riemann solver work discussed last week. When my thoughts turned to finite element powered methods, it dawned on me that I didn’t have many options, or more properly the extensive choices offered by other frameworks. The choices I did have were limited in scope and flexibility. Some approaches to method adaptation were simply absent.
I realized that this was what really deeply bothered me about finite elements. It isn’t the method at all; it’s the lack of options available to engineer the method. For a lot of engineers the FEM is a “turn the crank” exercise. You get a mesh, and pick the degrees of freedom, put the governing equations into the weak form and integrate. You have a numerical method and you are done. For complex physics this approach can be woefully inadequate and with the FEM you aren’t left with much to do about it.
Working at Sandia one thing is always true; the code you write will implement the FEM. With a new project and generally it would be very beneficial to have multiple valid discretizations on the same mesh. This would enable a number of things such as error estimation, resilience against hardware errors, and more robust overall algorithms. The problem is that the FEM generally offers a single preferred discretization once the mesh and associated elements are chosen.
To some extent this is overstated. Some FEM methods offer a bit more in the way of options such as discontinuous Galerkin. Additionally, one could chose to over- or under-integrate, lump the mass matrix or apply a stabilization method. Even then, the available options for discretizing are rather barren compared with finite volume or finite difference methods. It feels like a straightjacket by contrast to relative unconstrained freedom. Even the options I once worked with were too constrained compared with the universe of possibilities offered as I discovered in my most recent paper (“Revisiting Remap Methods” DOI 10.1002/fld.3950).
The hardest choices in life aren’t between what’s right and what’s wrong but between what’s right and what’s best.
― Jamie Ford
For people whose job is doing analysis of physical or engineered systems with codes, the options are a burden. They just want something that works and don’t care much about the detail. They graciously accept something better or something improved even if they couldn’t express the reasons for the improvement. With commercial CFD codes this situation has become critical. These codes reflect a relatively stagnant state of affairs with CFD methods.
For me this is a particular issue in the area of shock physics. Most of the users of shock physics codes are completely happy with their options. For some, the code simply needs to run to completion and produce something that looks plausibly realistic. For me this seems like a god-awfully low standard, and I see methods that are antiquated and backwards. The code users usually only notice new methods when something bad happens, the code runs slower, the answer changes from the ones they’ve grown accustomed to, or the code crashes. It is a rarity for the new method to be greeted as a benefit. The result is stagnation and a dearth of progress.
Sometimes you have to choose between a bunch of wrong choices and no right ones. You just have to choose which wrong choices feels the least wrong.
― Colleen Hoover
This trend is fairly broad. As numerical methods have matured, the codes based upon them have stabilized because the users are generally satisfied with the options offered. Improvements in the methodology are not high on their wish list. Moreover, they have a general understanding of the options the codes are based on, and have little interest in the methods that might be developed to improve upon them. As such the bar for improving codes has been raised to a very high level. With the cost of implementing codes on new computer architectures growing, the tide has turned to a focus on legacy methodology on modern computers sapping the impetus to improve.
We have become a community that sees options as a burden. Other burdens such as changes in computers are swallowing the appetite for the options that exist. As time goes by, the blessings seem more and more distant and foreign to the thought process. Moreover the users of codes don’t see the effort put into better methods as a virtue and want to see focus on improving the capacity to model the physical systems they are interested with. Part of this relates strongly to the missing elements in the education of people engaged in modeling and simulation. The impact of numerical methods on the modeling of physical systems is grossly under-appreciated, and leads to a loss of perspective. Methods in codes are extremely important and impactful (artificial, numerical and shock dissipation anyone?). Users tend to come close to completely ignoring this aspect of their modeling due to the esoteric nature of its impact.
When faced with two equally tough choices, most people choose the third choice: to not choose.
― Jarod Kintz