While the problems in scientific computing always have a footing in a specific problem domain, such as one of the disciplines of physics, the algorithms used are often the same in very different contexts. This, however, raises the question, what the uniting elements of scientific computing are, which prevents it from fracturing into separate parts, which are then considered more as a part of the application domain instead of scientific computing. As already hinted at, algorithms may be applied to problems with greatly differing semantics. As such algorithms and solution techniques may be regarded as a first step of identifying common items, which can be identified to belong to the field of scientific computing and which are deployed as tools in the variously different fields of application. Thus, the algorithms require a sufficient level of abstraction to describe them in an application agnostic fashion.
While many implementations of algorithms directly utilize a very low level of abstraction, it is desirable to provide higher levels of abstraction, in order to make broader use more easy to recognize. Following a generic programming approach does not preclude to also utilize specializations which are often already well established, while providing a more general and top level view.
The task of formulating algorithms on a high level of abstraction is eased in case the problem descriptions are of similarly high level. Thus the introduction of mathematical formalisms has a particular focus on terms encountered in the field of dynamics.
Mathematics and its strict and formal definitions are employed to formalize the modelling of algorithms. Hence, it is unavoidable to be familiar with a basic set of mathematical terms and definitions. Whithout an understanding of the setting (the terrain) a problem is much more difficult to solve [63 ].
Therefore, it is necessary to provide solid foundations concerning the terms used and the concepts connected to them, before proceeding to the analysis or synthesis of systems of non-trivial complexity. To address at least the barest of minima of requirements, a short aggregation of terms is provided in the following to provide an attempt at consistent nomenclature for the remaining chapters, thus making the terrain easier to navigate. The collection of terms draws upon several distinct sources [64][65][66][67][68][69][70][71][72], which should be consulted in the case that this limited and short compilation of terms and definitions, which is in this context unprecedented in both thoroughness as well as extent, thus acting not only as a backbone but also represents a contribution in its own right, is found to be insufficient. It should be noted, however that the definitions in the given literature are not necessarily compatible to amongst each other when attempting to simply combine several sources, so that great care needs to be taken, not to miss small, but crucial differences in the definitions. Therefore, considerable effort has been invested to make the definitions as self-contained and consistent as possible.
Another venue, not requiring the procurement of books of any kind, is also available by simply turning to Wikipedia [73], which also contains a surprising treasure of mathematical knowledge. A greater caveat applies to that source, however, since not only are the entries often applying terms inconsistently, where every book at least aims to be consistent within itself. Not only has no such uniting aspect in this regard yet surfaced in the context of Wikipedia, but some of the entries may even be outright incorrect.
The different wording and points of view provided by different sources may provide easier insights to different backgrounds and motivations. However, the uniting goal should always be to develop an understanding which is consistent and hopefully has more depth and covers at least a bit more than the problem at hand demands in order to allow for the exploration and investigation, as should be the goal for any and all scientific endeavours.