Atomic model development

The following pages describe the development of DEVS atomic model behavior.

Relation between DEVS and VLE's API
VLE implements the DEVS abstract simulators and more precisely the DSDE which merge Parallel DEVS and DS-DEVS.

$$DEVS = \langle X, Y, S, init, \delta_{ext}, \delta_{int}, \delta_{con}, \lambda, ta \rangle$$


 * Les fonctions issues de DEVS trouvent leurs représentations dans VLE :


 * Les fonctions ajoutées par VLE au formalisme DEVS et les impératifs techniques :
 * Les constructeurs et destructeurs, imposés par la vision objet et par le C++.
 * Les fonctions finish, d'initialisation paramétrée, d'observation et de question-reponse proposées par VLE en plus d'aider le modélisateur.

L'API du modèle atomique VLE
In VLE, a DEVS atomic model is represented as a object which inherits of the vle::devs::Dynamics class.

- constructeur - destructeur -
 * La première partie de l'interface fonctionnelle repose sur des méthodes de VLE et du langage de programmation C++ : le constructeur et le destructeur. Obligatoires pour chaque modèle.

- init -  finish -
 * Les fonctions init et finish sont appelées, quant à elles, respectivement à la création ou à la destruction du modèle.

- transition interne -
 * La gestion de l'autonomie du modèle est gérée par la fonction de transition interne.

- avancement du temps -
 * L'avancement du temps, seule fonction permettant de faire avancer la simulation en indiquant la durée dans laquelle un modèle reste dans un état :

La première est la fonction de transition externe qui réagit aux perturbations, la seconde résout le problème lorsqu'un événement interne et un ou plusieurs événements externes arrivent sur un modèle à la même date. Enfin, la fonction de sortie permet d'émettre des événements à l'attention des modèles connectés. - transition externe - sortie - conflit -
 * La gestion des événements externes et donc du couplage entre différents modèles est géré par les trois fonctions suivantes.

- initialisation - observation - question-reponse -
 * DEVS est une spécification d'un formalisme à événement discret. Nous avons ajouté à cette spécification des fonctions supplémentaires pour aider le modélisateur dans sa tâche de modélisation en lui épargnant la gestion des plans d'expériences, de l'observation et des fonctions des questions réponses.

Ensemble de l'API de la classe devs::Dynamics : constructeur, destructeur, init, finish, initialisation, transition interne, avancement du temps, transition externe, sortie, conflit, observation, question-reponse