Abstract modelling: towards a typed declarative language for the conceptual modelling phase - Legatiuk, Dmitrii; Nilsson, Henrik (2017)
Modelling languages have become an indispensable aid to practising engineers. They offer modelling at a high level of abstraction backed by features such as automatic simulation and even derivation of production code. However, partly because of the offered automation, modelling languages are limited to specific application areas: to our knowledge, no modelling language supports mathematical physics modelling in its full generality. Yet, when developing large, coupled, multiphysics models, there is a clear need for such an overarching language to ensure the coherence of the model as a whole, even if submodels ultimately are realised in modelling languages targeting specific domains or are pre-existing. In prior work, it was demonstrated how treating models as abstract objects in category theory offers one way to ensure coherence of key aspects for composite models. Type theory offers complementary approaches. This paper presents a first step towards a language supporting abstract modelling in mathematical physics with the aim of ensuring coherence of coupled multiphysics models early in the design process. To that end, following the approach of Functional Hybrid Modelling (FHM), we discuss how a language supporting quite general modelling equations can be realised as an embedding in Haskell. The appeal of the proposed approach is that only very few core concepts are needed, which greatly simplifies the semantics. The appeal of an embedded realisation as such is that much of the language infrastructure comes for free.