Installation Use Cases

CoSApp is available on Linux, MS Windows and Mac OS platforms. To put things in context, we first give a short overview on the technologies used to deploy CoSApp.

Technologies

The programming language chosen for CoSApp is Python, for * its ease of use; * the huge and dynamic community (and therefore libraries) available out there; * its inter-operability with Fortran and C/C++ code, commonly used by legacy simulation tools.

For the user interface, the choice went on Web technologies to forecast mixed devices usage (professional computers, HPC and Software As A Service - SaaS) and to appeal with a modern look and feel. More precisely a big trend today are interactive notebooks and especially in the Python scientific community the Jupyter ecosystem with the extensible frontend JupyterLab and a model state synchronization between Python and JavaScript objects: Jupyter Widgets. The nice thing about that ecosystem is a very dynamic community (sometimes even too dynamic…) and a highly modular approach; extensions can be created for all aspects.

So this narrows the technological stack down to:

Regarding distribution of code,

  • For Python, there are two major package managers around
  • For Web technologies, JupyterLab uses a frozen version of yarn called jlpm. The public repository for the NPM packages is npmjs.com.

For Python, the choice went on conda as a simple shared folder can be turned in a packages channel. And to stick on jlpm for NPM packages. But to reduce the burden on the end user, the final JavaScript application is built as a monolithic application distributed via a Python package (i.e. the JupyterLab way of distribution). And therefore the final user needs only to access conda channels.