Nous définissons une interface générique pour les codes de dynamique moléculaires.
Dans ce cadre, il faudra pouvoir avoir les meme exigences géometriques et de paramètrage
que dans la section précédente. En revanche, les optimisations existantes dans la litterature
exigent une indexation des atomes plus élaborée. Le recouvrement devra parcourir les atomes
afin de faire les corrections dues a la contrainte.
La classe Conteneur qui contient un ensemble d'atomes et permet d'acquerir
itérateur (optimisé) est requise. A l'aide de référence globale, les atomes pourront
être recherchés. La description de la classe Conteneur, déja utilisées pour le domaine continu
est décrite au chapitre annexe(5). La figure 2.3 décrit l'interface qui
doit être implémentée par les différents codes de dynamique moléculaire afin de pouvoir être utilisés
dans un couplage multi-échelle.
Figure 2.3:
En plus de la progression de la simulation, fournie naturellement
comme pour le domaine continu, on autorise la recherche et le parcours des atomes afin de contruire les
corrections du recouvrement.
![\includegraphics[width=13cm]{implementation-atomique}](img4.png) |
Passons en revue les différents objets afin de définir leur rôle exact.
- DomaineAtomique : Il s'agit de la classe de plus haut niveau. Elle possède un conteneur de référence sur des atomes.
Il s'agit ici de mettre une couche d'abstraction dans l'accès aux atomes. L'interface RefAtomes permet d'acceder
aux grandeures intéressantes (deplacement, vitesse, acceleration, force). On ne fait pas ici de cas sur la structure élaborée en boites qui est utlisée
dans la plupart des codes puisque l'implémentation de l'accès direct aux valeurs des degrés de libertés revient au code
sous-jacent lui meme. La methode ResetBoxOwners() permet de demander la mise à jour des atomes dans les boites
qui le contiennent spatialement. Cette méthode effectuera un traitement uniquement dans le cas d'un code à
optimisation par boite.
- MaterielAtomique : Comme dans le cas de la mécanique continue, on configurera le code par un fichier de configuration
qui sera au format des codes utilisés.
- DynMoleculaire : Il s'agit de l'objet qui dirige le calul des trajectoires par évalutation d'un potentiel et
intégration en temps. Son initialisation revient au code sous-jacent et sera paramétré par un objet
MaterielAtomique.
- RefAtomes : permet de réferencer un atome où qu'il se trouve spatialement et dans sa distribution sur différents
processeurs. L'implémentation de ses méthodes (accès direct au valeurs de degrés de libertés) revient une fois de
plus au code sous-jacent.
tougui
2005-09-08