NEPTUNIX : Questions et réponses
Contact : alain.buhsing@free.fr (vous pouvez en poser d'autres)
Sommaire
Pourquoi générer du FORTRAN ?
Peut-on générer du C ?
Que sont NEPTUNIX 1, 2, 3, 4 et Plus ?Comment se situe NEPTUNIX par rapport à ALLAN ?
Comment se situe NEPTUNIX par rapport à MATLAB ?
Comment se situe NEPTUNIX par rapport à SIMULINK ?
Comment se situe NEPTUNIX par rapport à DASSL ?
FORTRAN est le langage le plus adapté aux calculs à virgule flottante. C'est sur ce langage que les optimiseurs de compilateurs sont les plus efficaces et que les travaux sur le parallélisme sont les plus avancés.
Il ne faut pas perdre de vue que pour NEPTUNIX, FORTRAN est un code généré au même titre que l'assembleur pour un compilateur. En principe, il n'est pas lu par un être humain. Parfois par les développeurs de NEPTUNIX.
Si l'utilisateur ne dispose pas de compilateur FORTRAN, il est possible d'utiliser le compilateur free-ware g77 diffusé par GNU.
Comme NEPTUNIX a considérablement évolué durant ces deux dernières années, on a préféré ne maintenir qu'une seule version du générateur. NEPTUNIX ne génère donc pas directement du C. Néanmoins, nous préconisons l'usage du produit free-ware f2c (f-to-C). Son usage a été validé au GIAT sur plusieurs gros modèles.
NEPTUNIX 1 est la version "prototype" conçue au CEA Saclay en 1977 et terminée en 1979.
NEPTUNIX 2 est la première version commercialisée, issue d'une collaboration entre le CEA Saclay et Cisi. Spécifiée en 1979, elle fut disponible en 1981 (version 2.0) et évolua par étapes pour se stabiliser en 1990 (version 2.6) .
NEPTUNIX 3 fut une version intermédiaire associée à ALLAN.3 entre 1993 et 1996. Elle ne fut jamais commercialisée seule. Le changement de version était dû à un nouvel environnement d'exploitation (nouveau langage d'exploitation + gestion de sous-process).
NEPTUNIX 4 est le fruit d'une collaboration entre Cisi et GIAT INDUSTRIES. Le générateur est entièrement réécrit en C++. Le langage de description des modèles est compatible avec NEPTUNIX 2.
NEPTUNIX Plus apparait comme un pré/post-processeur de Neptunix 4 : surlangage synthétisé et actualisé, schémas-blocs, post-traitements, etc... NEPTUNIX 4 est inclus dans NEPTUNIX Plus.
Pour plus de détails, voir l'historique.
ALLAN est un progiciel développé au Gaz de France avec l'appui de Cisi. Il permet de modéliser des systèmes physiques ou techniques sous forme de schémas-blocs et/ou d'équations.
ALLAN est un modeleur : il offre une interface graphique conviviale pour composer et assembler des sous-modèles (approche de type schémas-blocs), générer des simulateurs via des solveurs comme ASTEC ou NEPTUNIX, les exploiter, et enfin visualiser les courbes de résultats.
ALLAN fut maquetté en Basic HP par la Direction de la recherche de GDF dès 1984. GDF confia à l'équipe NEPTUNIX alors à Cisi la définition, la conception et le développement de ALLAN.2 ( FORTRAN + interface graphique GKS) puis de ALLAN.3 ( C +X11/Motif). En 1996 GDF ajouta à au logiciel un traducteur ALLAN-> DASSL développé par DDS.
Depuis 1998, les deux logiciels sont commercialisés séparément, même si techniquement, ALLAN et NEPTUNIX 4 sont complémentaires. Le traducteur NEPTUNIX 4 est toujours intégré à ALLAN.
Les deux langages de de description sont (forcément) très proches. NEPTUNIX Plus dispose de quelques fonctionnalités supplémentaires : itérations d'équations, identifieurs longs et une démarche différente au niveau de l'intégration de la partie procédurale et des équations de liaison. Il existe un traducteur ALLAN -> NEPTUNIX+
Difficile de les situer l'un par rapport à l'autre : leur démarche est totalement différente. MATLAB est un langage de programmation destiné au calcul matriciel, NEPTUNIX est un langage de description de systèmes physiques ou techniques.
MATLAB est utilisable si vous connaissez les fonctions à utiliser pour simuler votre modèle et si ces fonctions font partie de l'un des modules MATLAB. NEPTUNIX peut simuler tout système modélisable au moyen d'équations différentielles implicites.
Comment se situe NEPTUNIX par rapport à SIMULINK ?
SIMULINK propose une description de systèmes au moyen de schémas-blocs.
Il existe des blocs prédéfinis.
Les principales différences sont :
DASSL est une bibliothèque free-ware destinée à résoudre des systèmes d'équations algebro-différentielles implicites. La méthode d'intégration est proche de celle de NEPTUNIX (Gear à pas variable). Une version de DASSL (DASSRT) permet de gérer des discontinuités.
La différence provient de la présence d'un générateur NEPTUNIX et de l'environnement d'exploitation : langage d'exploitation, debugger, gestion de sous-process.
C'est le générateur NEPTUNIX qui va générer
automatiquement la matrice jacobienne (tâche ô combien fastidieuse
pour des gros modèles !).