FR2991081A1 - Procede de simulation d'un ensemble d'elements, programme d'ordinateur associe - Google Patents

Procede de simulation d'un ensemble d'elements, programme d'ordinateur associe Download PDF

Info

Publication number
FR2991081A1
FR2991081A1 FR1254838A FR1254838A FR2991081A1 FR 2991081 A1 FR2991081 A1 FR 2991081A1 FR 1254838 A FR1254838 A FR 1254838A FR 1254838 A FR1254838 A FR 1254838A FR 2991081 A1 FR2991081 A1 FR 2991081A1
Authority
FR
France
Prior art keywords
elements
simulation
value
instant
current
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR1254838A
Other languages
English (en)
Inventor
Svetlana Artemova
Stephane Redon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Institut National de Recherche en Informatique et en Automatique INRIA
Original Assignee
Institut National de Recherche en Informatique et en Automatique INRIA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Institut National de Recherche en Informatique et en Automatique INRIA filed Critical Institut National de Recherche en Informatique et en Automatique INRIA
Priority to FR1254838A priority Critical patent/FR2991081A1/fr
Priority to PCT/EP2013/060622 priority patent/WO2013174923A1/fr
Priority to KR1020147036027A priority patent/KR102082777B1/ko
Priority to US14/402,116 priority patent/US20150134310A1/en
Priority to EP13725145.0A priority patent/EP2856361A1/fr
Priority to CN201380038556.3A priority patent/CN104508667B/zh
Priority to RU2014146944A priority patent/RU2014146944A/ru
Publication of FR2991081A1 publication Critical patent/FR2991081A1/fr
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling

Abstract

Procédé de simulation d'un système d'éléments, selon lequel le comportement desdits éléments est déterminé sur la base d'un Hamiltonien H du système d'éléments, tel que avec p étant un vecteur indiquant les moments des éléments, q un vecteur indiquant les positions des éléments, M étant une matrice diagonale fonction des masses des éléments et V étant l'énergie potentielle du système, ce procédé comportant une étape selon laquelle, lorsque le vecteur moment p prend certaines valeurs déterminées relatives à au moins un élément, on affecte une valeur nulle à au moins un terme diagonal de la matrice M relatif audit élément.

Description

Procédé de simulation d'un ensemble d'éléments, programme d'ordinateur associé La présente invention concerne un procédé de simulation d'un ensemble d'éléments, selon lequel le comportement des éléments est déterminé sur la base d'un Hamiltonien associé au système d'éléments (la somme de l'énergie cinétique et de l'énergie potentielle de l'ensemble) H=-111/1 pT.-1.p-EV, p étant un vecteur indiquant les 2 moments des éléments, V étant l'énergie potentielle du système et M-1 une matrice diagonale fonction des masses des éléments (dans des cas, cette matrice peut être fonction des positions des éléments). L'énergie potentielle dans des cas est par exemple égale au [ou est fonction du] potentiel d'interactions V(q) entre les éléments dont les forces d'interactions peuvent être dérivés, q étant un vecteur indiquant les positions des éléments (dans un cas plus général le potentiel d'interactions peut être dépendant également des moments des éléments), La simulation d'un ensemble d'éléments permet d'étudier le comportement d'un tel ensemble et d'analyser ses propriétés : les déplacements en termes de positions successives et des moments des éléments, les corrélations des déplacements entre éléments, les changements de structure, les hausses et baisses d'interactions entre éléments, les configurations adoptées en moyenne, les évolutions des énergies associées, etc. Les éléments peuvent représenter des corps mécaniques, par exemple célestes ou fluides, des particules telles que des atomes ou molécules, par exemple des protéines, des fluides etc. Une façon usuelle de simuler un ensemble d'éléments est de considérer le Hamiltonien de l'ensemble, et d'en dériver des équations de mouvement.
WO 2099/007550 décrit par exemple une technique de simulation d'un ensemble d'éléments. Les évolutions de l'ensemble d'éléments doivent parfois être simulées sur une longue période, en vue de pouvoir observer certains phénomènes ou de pouvoir calculer certaines statistiques. Les temps de calcul, et le coût en calcul, de ces simulations deviennent alors parfois très importants. Des méthodes ont été proposées pour accélérer les simulations d'un ensemble d'éléments. La présente invention vise à proposer une nouvelle solution pour réduire ces problèmes. A cet effet, suivant un premier aspect, l'invention propose un procédé de simulation d'un ensemble d'éléments du type précité caractérisé en ce que ledit procédé comporte une étape selon laquelle, lorsque le vecteur moment p prend certaines valeurs déterminées relatives à au moins un élément, on affecte une valeur nulle à au moins un terme diagonal de la matrice M-1 relatif audit élément. L'invention permet de réduire le volume et, par conséquent, le temps de calcul, requis pour la détermination de l'énergie potentielle, du potentiel d'interaction, des forces d'interaction, des positions et/ou des moments des éléments. Dans des modes de réalisation, le procédé de simulation d'un ensemble d'éléments suivant l'invention comporte en outre une ou plusieurs des caractéristiques suivantes : - ledit procédé comporte une étape selon laquelle, pour au moins un desdits éléments, si un paramètre représentatif de l'énergie cinétique dudit élément a une valeur inférieure à un premier seuil strictement positif, on affecte une valeur nulle à au moins un terme diagonal de la matrice M-1 relatif audit élément ; - les termes diagonaux de la matrice M-1 qui sont fonction de la masse d'un élément sont affectés à une valeur maximale lorsque l'énergie cinétique dudit élément est supérieure à un second seuil strictement positif ; - on affecte une valeur nulle à au moins un terme diagonal de la matrice M-1 relatif audit élément si le couple comprenant le moment de l'élément et la position de l'élément prend certaines valeurs déterminées ; - il comprend une étape de détermination des valeurs d'au moins une information, à des instants de simulation successifs sur la base dudit Hamiltonien, ladite étape tirant parti du fait que les valeurs de l'information relatives à un k-uplet d'éléments, avec k entier supérieur ou égal à 2, pour lesquels une valeur nulle a été affectée aux termes diagonaux de la matrice M-1 à un instant de simulation précédent, sont par conséquent inchangées entre au moins ledit instant de simulation précédent et l'instant de simulation courant, et calculant une valeur de l'information relative à un élément donné, à un instant de simulation courant en mettant en oeuvre les étapes suivantes lorsque des valeurs nulles n'ont pas été affectées aux termes diagonaux de la matrice concernant chaque élément d'un k-uplet d'éléments dont fait partie ledit élément donné : calculer une valeur de travail de ladite information relative audit élément donné en retranchant à la valeur de l'information relative audit élément donnée et déterminée à l'instant de simulation précédent, au moins les valeurs de l'information relative audit élément donnée et associée auxdits k-uplets d'éléments à l'instant de simulation précédent, et/ou ajouter à ladite valeur de travail au moins les valeurs de l'information relatives audit élément donné et associées aux k-uplets d'éléments, déterminées à l'instant de simulation courant ; - à un instant de calcul courant, une liste courante des paires d'éléments séparés par une distance inférieure à un seuil donné est dressée à un instant de simulation courant, et comparée à une liste précédente des paires d'éléments séparés par une distance inférieure à un seuil donné dressée à un instant de simulation précédent, et la valeur d'une information relative à un élément donné, à un instant de simulation courant, est calculée sur la base des paires comportant ledit élément donné en mettant en oeuvre les étapes suivantes: calculer une valeur de travail en retranchant, à la valeur d'information relative audit élément donné et déterminée à l'instant de simulation précédent, les valeurs d'information relative audit élément donné associées à l'autre élément des paires considérées si la paire considérée est présente seulement dans la liste précédente ou si le vecteur reliant ledit élément donné à l'autre élément de la paire a varié entre l'instant de simulation précédent et l'instant de simulation courant ; la valeur de l'information relative audit élément donné à un instant de simulation courant est déterminée en ajoutant, à la valeur de travail, les valeurs de l'information relatives audit élément donné et associées à l'autre élément des paires considérées si la paire considérée est présente seulement dans la liste courante ou si le vecteur reliant ledit élément à l'autre élément de la paire a varié entre l'instant de simulation précédent et l'instant de simulation courant ; à un instant de calcul courant, une liste courante de k-uplets d'éléments satisfaisant certaines conditions, avec k entier supérieur ou égal à deux, est dressée à un instant de simulation courant, et comparée à une liste précédente de k-uplets d'éléments satisfaisant lesdites conditions à un instant de simulation précédent, et la valeur d'une information relative à un élément à un instant de simulation courant, est calculée sur la base des k-uplets comportant ledit élément en mettant en oeuvre les étapes suivantes: calculer une valeur temporaire en retranchant à la valeur de l'information relative audit élément et déterminée à l'instant de simulation précédent, les valeurs des informations relatives audit élément et associées auxdits k-uplets à l'instant de simulation précédent, lorsque lesdits k-uplets sont présents seulement dans la liste précédente ou lorsque les valeurs des informations relatives audit élément et associées auxdits k-uplets ont changé entre l'instant de simulation précédent et l'instant de simulation courant; - déterminer la valeur de l'information relative audit élément à l'instant de simulation courant en ajoutant, à la valeur temporaire, les valeurs des informations relative audit élément et associées auxdits k-uplets à l'instant de simulation courant, lorsque lesdits k-uplets sont présents seulement dans la liste courante ou lorsque les informations associées auxdits k-uplets ont changé entre l'instant de simulation précédent et l'instant de simulation courant (par exemple lorsque des positions relatives des k éléments dans le k-uplet ont changé) ; - l'espace de localisation des éléments est partitionné en cellules et chaque élément, à chacun d'instant de simulation précédent et un instant de simulation courant, est associé à une cellule d'appartenance selon des coordonnées de position déterminées audit instant de simulation, et selon lequel, pour les premiers éléments tels que les termes de la matrice M-1 relatifs audits premiers éléments n'ont pas été affectés à une valeur nulle à un instant de simulation courant, les étapes suivantes sont mises en oeuvre : on détermine la cellule d'appartenance des premiers éléments à l'instant de simulation précédent ; pour chaque premier élément, on détermine dans ladite cellule d'appartenance ou ses cellules dans un voisinage donné de la cellule d'appartenance, les seconds éléments situés à l'instant de simulation précédent à une distance inférieure à un seuil donné dudit premier élément ; on calcule une valeur de travail en retranchant de la valeur d'une information relative audit premier élément et déterminée à l'instant de simulation précédent, les valeurs de ladite information relatives audit premier élément et associées auxdits seconds éléments ; on détermine la nouvelle cellule d'appartenance des premiers éléments à l'instant de simulation courant ; pour chaque premier élément, on détermine dans la nouvelle cellule d'appartenance ou les cellules dans le voisinage donné de la nouvelle cellule d'appartenance, les troisièmes éléments situés à l'instant de simulation courant à une distance inférieure à un seuil donné dudit premier élément ; on détermine la valeur de l'information relative audit premier élément, à l'instant de simulation courant, en ajoutant à la valeur de travail, les valeurs de l'information relatives au premier élément et associées aux troisièmes éléments ; - l'information relative audit élément comprend l'énergie potentielle dudit élément et/ou la force d'interaction appliquée audit élément ; - il comprend, à certains instants de simulation, une étape de détermination d'une information I, ladite étape tirant avantageusement parti du fait qu'une valeur nulle a été affectée à certains termes diagonaux de la matrice M-1 à certains instants de simulation ; - il comprend, à certains instants de simulation, une étape de détermination d'une information I, ladite étape tirant avantageusement parti du fait que cette information I est inchangée et ne nécessite pas d'être déterminée de nouveau lorsqu'elle a été déterminée à un instant de simulation antérieur et qu'une valeur nulle a été affectée à un ensemble correspondant de termes diagonaux de la matrice M-1 entre au moins le dit instant de simulation antérieur et l'instant de simulation courant (on entend par « ensemble correspondant des termes diagonaux » les termes diagonaux qui ont une influence sur la valeur de l'information I, ie l'information I ne change pas quand ces termes sont nuls) ; - il comprend, à certains instants de simulation, une étape de détermination de l'énergie potentielle, respectivement des forces d'interaction, ladite étape tirant avantageusement parti du fait qu'une valeur nulle a été affectée à au moins un élément diagonal de la matrice M-1 à certains instants de simulation. Suivant un deuxième aspect, la présente invention propose un programme d'ordinateur de simulation d'un système d'éléments, comprenant des instructions logicielles pour mettre en oeuvre les étapes d'un procédé selon l'une des revendications 1 à 12 lors d'une exécution du programme par des moyens de calcul. Ces caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et faite en référence aux dessins annexés, sur lesquels : - la figure 1 représente un dispositif mettant en oeuvre un mode de réalisation de l'invention ; - la figure 2 représente en ordonnée l'évolution de la fonction p (e) en fonction de et figurant en abscisse ; - la figure 3 est un organigramme des étapes d'un procédé dans un mode de réalisation de l'invention ; - la figure 4 illustre un mode de réalisation de l'étape 103 ; - la figure 5 illustre un autre mode de réalisation de l'étape 103 ; - la figure 6 représente des simulations de trajectoire d'une particule relié à un point fixe, dans l'espace de phase (p,q), à Hamiltonien constant.
Considérons la simulation d'un ensemble E de N particules a,, i=1 à N.
Le Hamiltonien H(p,q) associé à l'ensemble E (cf. par exemple « Understanding molecular simulation : from algorithms to applications », Frenkel D., Smit B.) s'écrit souvent de la façon suivante : 1 11(P,q)=2PT M-1.P+17(q), p étant un vecteur indiquant le moment des particules, q un vecteur indiquant la position des particules, M-1 une matrice diagonale fonction des masses de ces particules. V(q) est le potentiel d'interaction entre les N particules ; il est fonction de leur position et on le considérera comme indépendant des moments. Dans un espace en 3 dimensions par exemple, avec un référentiel de coordonnées (X, Y, Z), le moment p, de chaque particule a,, i=1 à N, s'écrit lo 110 110 et - _ la position q, de chaque particule a,, i=1 à N, s'écrit (a 1 , a0,y, a 0,z, - p1,x Pl,y 191,z Les vecteurs p et q s'écrivent donc : p= PN,x P N,y PN,z Usuellement la matrice M-1 utilisée dans l'art antérieur est une matrice diagonale de dimension 3N*3N, dont les termes M[3i-2, 3i-2] = M[3i-1, 3i-1]= M[3i, 3i] = rnl , pour i=1 à N, où mi est la masse de la particule a,. Il s'agit là de la définition usuelle du Hamiltonien H, qu'on appellera ci-dessous, Hamiltonien standard. Selon l'invention, on définit un Hamiltonien dit Hamiltonien adaptatif HA, ainsi : 1 HA (p,q) 2, .11)(p, q) .p+V(q), dans lequel c)(p,q) , matrice diagonale 3N*3N dite matrice inverse de masse adaptative, remplace M-1 et dépend du vecteur p, et éventuellement du vecteur q. De cet Hamiltonien adaptatif HA, on déduit des équations adaptatives de mouvement, définissant p et q qui sont les dérivées des vecteurs p et q par rapport au temps t. et q = e N,x e N,y qN,Z Par exemple, dans un cas d'implémentation d'une simulation dans un ensemble NVE (ensemble E à nombre de particules, à volume et énergie constants) considérée d'abord ici à titre d'illustration, la valeur du Hamiltonien (adaptatif selon l'invention ou standard) est constante dans le temps, et les équations adaptatives du mouvement sont : ap av 1 T acKp, g) P, at aq aq 2 aq formules (1) aq al I, 1 T aCI)(P,q) = = = (Kg , 19) P ± 2 P P. g at ap ap Selon l'invention, les termes de la matrice c1) relatifs à la particule a,, pour i=1 à N, sont les suivants : cl) [3i-2, 3i-2](pi,q) = cl) [3i-1, 3i-1](Pbqi) = cl) [3i, 1 = où m. mi est la masse de la particule a,. On nomme c)i (pi,qi) la valeur 1 -(1- pi(qi,pi)). mi Selon l'invention, Pt (q ,pi) e [0,1] et est une fonction deux fois dérivable, qui est utilisée pour que la position de la particule soit constante pendant un certain temps. Lorsque p,(qt,p,)= 0 (i.e. il n'y a pas de fixation de la position de la particule a,), l) (pi, ' et la particule a, suit les lois dynamiques usuelles correspondant à mt l'Hamiltonien H standard du système E. Lorsque p,(qi,pi)= 1 (i.e. la position de la particule est figée), cl) (pi,qi)= 0 et la particule a, ne bouge pas, quelles que soient les forces qui s'appliquent sur elle (sa masse est considérée comme infinie). Lorsque p,(q,,p,)E10,1[, la particule a, effectue une transition lisse entre ces deux comportements. La nature deux fois dérivable de p, permet de préserver la stabilité de l'ensemble E de particules. Dans un mode de réalisation de l'invention, on définit que : 1 siOei<eir Pi(qi,Pi)=Pi(ei)- 0 si ei>eif si(e,)e [0,1] sie, e [e eifl où s(et)est une fonction de p, et éventuellement de q,, et est deux fois dérivable. En figure 2, les valeurs prises par pi (£i) dans un mode de réalisation sont représentées en ordonnée, en fonction des valeurs prises par e, figurant en abscisse, avec et'. =1 et e: =1.1. Par exemple, une forme possible pour si (£i) est - 6/75 +15/74 -10/7' +1 , avec _eir il= et 8= Dans le mode de réalisation considéré plus loin, la fonction et, relative à la 2 particule ai, est choisie égale à l'énergie cinétique de la particule ai, soit ei= Pi 2m L'invention consiste donc à « figer » les particules, en leur affectant une « pseudo »-masse infinie, lorsque leur énergie cinétique passe sous une certaine valeur, la quantité de mouvement de ces particules n'étant, elle, pas figée. La fonction p est une fonction comportant comme variable le moment (dans le cas particulier considéré en exemple, elle n'est pas donc dépendante de la position :Pi(qt,P,) Pi(P,)). Dans d'autres modes de réalisation, la fonction p, peut être une fonction, dépendant du moment de la particule a, (et éventuellement de sa position) autre que l'énergie cinétique bien sûr. Dans des modes de réalisation, on fige une particule dont le moment (ou le couple comprenant le moment et la position) prend des valeurs prédéterminées (valeurs discrètes ou plages de valeurs). Les équations adaptatives de mouvement (1) deviennent ainsi : api A av aq aq formules (2) aH 1 q - apA = M-1(1- P(P))P PTM-1 ej9(P) P, 2 ap où p(p) est une matrice diagonale 3N*3N indiquant les Pi (qi, Pi) , pour i= 1 à N : p(p) [3i-2,3i-2], p(p) [3i-1,3i-1], p(p) [3i,3i],pi(qi, pi) , pour i= 1 à N.
Comme indiqué auparavant, lorsque p (qt, pi) = 0 (ie pas de fixation de position), c ),(p,,q,)= -1 et la particule a, suit les lois dynamiques usuelles correspondant à m. l'Hamiltonien H standard du système E. Lorsque p (qt, p )= 1 (ie position de la particule constante figée), cl) (p ,q,) = 0 , par conséquent, q a une valeur nulle (en effet, pi étant alors constant égal à 1, la valeur du terme api(pi)est nulle). Dans une interprétation, la masse est considérée comme api infinie, la particule a, est considérée comme figée. Lorsque )9,(q ,p)e ]0,1[ , la particule a, effectue une transition lisse entre ces deux comportements.
Ainsi selon l'invention, la matrice c1) (p,q) spécifie comment, et quand, des degrés de liberté en position d'une ou plusieurs particules sont activés ou désactivés pendant la simulation. Pour donner un exemple qui explique le comportement du système dans le cas de l'invention, en figure 6 sont représentées des simulations de trajectoire à une dimension dans l'espace de phase (p,q), d'un système comprenant une particule de masse 1, attachée à un ressort de raideur 1 à un point fixe. Dans ce cas, N=1. Les isolignes du Hamiltonien adaptatif sont représentées, pour eir =0,5 et eif =0,8. Notamment les courbes C1, C2, C3, C4 correspondent chacune à une valeur constante respective du Hamiltonien adaptatif. Par exemple, la courbe Cl correspondant à un Hamiltonien égal à 1. Le cercle D correspondant à une valeur constante égale à 1 d'un Hamiltonien standard, ie non-adaptatif. La zone de l'espace des phases où la particule est figée se trouve entre les lignes en pointillés B2 et B3 (elle correspond à une valeur de moment comprises dans [-1, 1]). La zone de l'espace des phases où la particule est libre et suit une trajectoire conforme à un Hamiltonien standard se trouve au-dessus de la ligne B1 et en-dessous de la ligne B4. La zone de l'espace des phases entre les lignes B1 et B2 et entre les lignes en pointillés B3 et B4 correspond à une zone de transition entre les états libre et figé de la particule.
Sur chaque isoligne C1, C2, C3, C4, dans la zone où la particule est figée, la position q ne change pas, mais le moment p change.
Pour mettre en oeuvre une simulation du système E, une intégration numérique dans le temps de ces équations de mouvement indiquées en formules (2) est à réaliser. Dans le cas d'implémentation d'une simulation dans un ensemble NVE considérée ici à titre d'illustration, une méthode d'Euler partitionnée est par exemple utilisée (cf. par exemple « Geometric numerical integration : structure preserving algorithms for ordinary differential equations », Hairer E., Lubich C., Wanner G ; Volume 31 ; Springler Verlag 2006) pour cette intégration numérique. Selon cette méthode d'Euler, les équations de la forme : tic = a(u, v), -1')= b(u,v), résultent, pour l'intégration numérique, en l'ensemble suivant d'équations où h est un pas de temps : un+1 - un + a(un+i,v')h, v',1=vn+b(un+1,vn)h .
Ainsi, selon cette méthode, les formules (2) peuvent s'écrire ainsi : aV(qn) h, P n+1 = P n a g n Formules (3) q n+1 = q n + (11/1 -1 (1 - P ( P n+i)) P n+ - -1 PT 111 -1 )9( P n+1) )h 1 2 n+1 ''P n-Ei P n-Ei . Dans un mode de réalisation de l'invention, un dispositif informatique 1 représenté en figure 1 est utilisé pour mettre en oeuvre une simulation d'un ensemble E de N particules. Ce dispositif 1 comprend un ordinateur comprenant notamment une mémoire 2 adaptée pour stocker des programmes logiciels et des valeurs de paramètres calculées successivement décrites ci-dessous (valeurs des coefficients de la matrice (1), forces d'interactions globales, partielles, potentiel d'interaction, positions, moments...), un microprocesseur 3 adapté pour exécuter les instructions de programmes logiciels et notamment du programme P décrit ci-dessous, et une interface homme/machine 4, comprenant par exemple un clavier et un écran, respectivement pour saisir des instructions d'un utilisateur et pour afficher des informations à destination de l'utilisateur, par exemple des courbes telles que celle illustrée en figure 6. Dans le mode de réalisation de l'invention considéré, la mémoire 2 comprend le programme P simulant le comportement de l'ensemble E de particules de type NVE.
Le programme P comprend des instructions logicielles qui, lorsqu'elles sont exécutées sur le microprocesseur 3, sont adaptées pour opérer les étapes suivantes, en référence à la figure 3. Dans une étape préalable 100, les fonctions p,(p,,q,) de la matrice (1) sont préalablement définies pour chaque particule a,. 2 Dans le cas présent, les fonctions définies ci-dessus pPi ( ) ont été choisies et 2m définissent ainsi cl)(p) en fonction du vecteur des moments p, et des valeurs fixées pour et'. et eif Des valeurs initiales sont également déterminées pour le moment po, la position q,0 et la force d'interaction fo de chaque particule a,, i= 1 à N, correspondant à un instant initial ho . Les étapes suivantes sont alors mises en oeuvre itérativement lors d'une n+1'ème itération du programme P correspondant à l'instant de calcul h'1= ho + (n+1)h, avec n entier kO, h étant le pas de temps de simulation.
On nommera ci-dessous : fj,±1, la force d'interaction exercée par la particule à sur la particule a, (qui est égale à - ), à l'étape de calcul hn+1 ; ft,n+i , la force d'interaction globale s'exerçant sur la particule a, , i =1 à N, qui est due aux interactions exercées par toutes les autres particules du système E, considérée à l'instant de calcul hn+1 ; elle est donc égale à Y f if ,n+1 pi n+1 , la valeur du moment de la particule a,, à l' instant de calcul ho+, ; qi. , la valeur de la position de la particule a,, à l' instant de calcul hn+1; p,,'+1, la valeur prise par la fonction p, à l' instant de calcul hn+1 (comme vu ci- 2 dessus ; elle est fonction de la valeur de l'énergie cinétique Pi'n+1 ) 2mi Les étapes 101, 101b, 102, 103 sont destinées à la détermination des valeurs actualisées respectivement du moment, de la position et de la force d'interaction globale relative à chacune des particules a,.
Dans une étape 101, la valeur courante p ,,n+1 du moment de chaque particule a,, i=1 à N, est déterminée, d'après les formules (3), la valeur de la force fn d'interaction globale exercée sur la particule a, déterminée à l'instant de calcul précédent ayant été stockée en mémoire 2 comme celle du moment pi, P,,n + fi nh. Dans une étape 101b, la valeur pt,n+1 est recalculée à partir de la nouvelle valeur du moment P I n+1 1 i,n+1 Pi,n+1 Pi 1 . 2mi Dans une étape 102, la valeur courante qi,n+i de la position de chaque particule a,, i=1 à N, est à présent déterminée, d'après les formules (3) : P n+1 jPi n+111 api +1 ,n n qi,n n+1, ".' 1 ),4 m. '.19i,n+1 Dans une étape 103, la valeur courante fi,n+1 de la force d'interaction globale, s'exerçant sur la particule a, et qui est due à toutes les autres particules au moins, i=1 à N, est déterminée, selon par exemple une des deux méthodes indiquées plus bas. Le résultat de cette intégration numérique est la valeur actualisée des positions qi 15 et des moments pi de chaque particule ai , avec i=1 à N, déterminée pour l'instant de calcul hn+1. La valeur actualisée d'autres paramètres caractéristiques du comportement des particules a, à l'instant hn+1, peut en outre être calculée, par exemple la valeur courante de l'énergie potentielle du système E, la valeur de l'autocorrélation entre les vitesses de 20 particules. Puis, si la durée maximum de la simulation n'est pas atteinte, ie si n+1 G nmax, on réalise une nouvelle itération du programme P. Différentes techniques de calcul des valeurs actualisées des forces d'interaction dans l'étape 103, permettant de tirer avantageusement parti de la définition de la matrice 25 c1), peuvent être utilisées. Une première technique comprend les étapes suivantes. Lors de l'étape d'initialisation 100, une liste courante des paires de particules est dressée, telle que la distance entre les particules de chaque paire à l'initialisation est inférieure à un seuil dO (lorsque la distance entre deux particules est supérieure à dO, 30 l'interaction entre ces deux particules est négligée) et la force d'interaction fii3O de la particule a, sur la particule a, de chaque paire présente dans la liste courante est en outre évaluée, en fonction de la distance les séparant et selon le champ de force simulé, et mémorisées. A chaque paire dans la liste est associé un élément eu,0 également mémorisé en mémoire 2, comportant l'identifiant de chacune des deux particules a,, a, de la paire, les coordonnées du vecteur rot' joignant les deux particules et partant de la particule a,, et la force d'interaction fj,0 exercée par la particule a, sur la particule a, (qui est égale à - fjo , fjo étant la force d'interaction exercée par la particule a, sur la particule a, ). La force d'interaction globale fo s'exerçant sur la particule a, est égale à la somme des forces d'interaction fj,0 exercée sur la particule a, par les particules aj, j=1 à N. Lors de chaque itération de l'étape 103, les étapes ci-dessous sont ensuite mises en oeuvre, en référence à la figure 4. Considérons que l'itération en cours soit la (n+1)è".
Dans une étape 103 al , on affecte comme valeur de départ à la force d'interaction globale fi s'exerçant sur chaque particule a, la valeur de la force d'interaction globale fi, calculée lors de l'itération précédente. Dans une étape 103 bl , une liste courante La,', des paires de particules en interaction est dressée, i.e. ce sont les paires de particules telles que la distance entre les particules de chaque paire considérée à l'instant de calcul h', est inférieure au seuil dO. A chaque paire dans la liste La,', est associé un élément eu,n+i comportant l'identifiant de chacune des deux particules a,, a, de la paire, les coordonnées du vecteur joignant les deux particules depuis la particule a,, conformément à leur localisation à l'instant h',, et la force d'interaction exercée par la particule a sur la particule ai (qui est égaleà étant la force d'interaction exercée par la - fj i ,n+1 particule a, sur la particule a,), dont la valeur à ce stade n'est pas encore renseignée. Puis, dans une étape 103 cl , la liste courante des paires 1_,,,±1 est comparée à la liste précédente Lao, des paires, i.e. établie lors de l'itération précédente (soit la nème itération). A chaque paire dans la liste La,n est associé un élément eu, comportant l'identifiant de chacune des deux particules a,, a, de la paire, les coordonnées du vecteur rni./ joignant les deux particules et partant de la particule a,, calculé en fonction des positions déterminées lors de l'itération précédente pour les particules a,, a et la valeur de la force d'interaction fi,, exercée par la particule a sur la particule a, (qui est égale à -fitn, f,,' étant la force d'interaction exercée par la particule a, sur la particule a).
Si une paire est présente seulement dans la liste précédente La,n, cela signifie que l'interaction entre les deux particules de la paire a disparu entre l'itération n et l'itération n+1. Pour chaque paire a,, a présente seulement dans la liste précédente, on retire de la force d'interaction globale en cours de détermination fin±i s'exerçant sur la particule a,, respectivement de fj,n+1 s'exerçant sur la particule a, la force d'interaction fi, calculée à l'étape 100 lors de l'itération précédente, respectivement la force d'interaction fit, = Si une paire est présente seulement dans la liste courante La,n+i, cela signifie que l'interaction entre les deux particules de la paire est apparue entre l'itération n et l'itération n+1. Pour chaque paire a,, a présente seulement dans la liste courante, on calcule alors la force d'interaction fj,n+1 exercée par la particule a sur la particule a,, en fonction de leur position respective notamment ; on la sauvegarde en mémoire dans l'élément eti'±i On ajoute la force d'interaction fii'±i à la force d'interaction globale sur la particule a, en cours de détermination fi,n+1, et on ajoute la force d'interaction ,fji,n+1 = ,n+1 à la force d'interaction globale en cours de détermination f ,n+1 s'exerçant sur la particule a. Si une paire est comprise à la fois dans la liste courante 1_,,,±1 et dans la liste précédente La,n, alors on compare les vecteurs ri.i et 1-i+, joignant les deux particules a,, a. S'ils sont différents, on calcule la force d'interaction ,fij,n+1 exercée par la particule a sur la particule a,, en fonction de leur position respective notamment et on sauvegarde cette force d'interaction fii,±1 dans l'élément e, ,±1 . On ajoute à la force d'interaction globale en cours de détermination f,'±, s'exerçant sur la particule a,, la force d'interaction f ,n+1 ' On ajoute à fj,n+1 s'exerçant sur la particule a, la force d'interaction = En outre, on retire de la force d'interaction globale en cours de détermination ft,+1 s'exerçant sur la particule a,, respectivement de fi',1 s'exerçant sur la particule a, la force d'interaction fi, calculée à l'étape 100 lors de l'itération précédente, respectivement la force d'interaction fit, = . ibn L'invention, en figeant des positions de particules, génère un nombre accru de paires pour lesquelles le vecteur entre deux particules, et donc la force d'interaction entre ces deux particules, demeurent inchangés. Dans un tel cas, les méthodes proposées pour l'étape 103 permettent de ne pas recalculer toutes les composantes des forces d'interaction globale en tirant parti des caractéristiques d'un procédé selon l'invention.
Cette technique de détermination des valeurs des forces d'interaction globale est optimale en termes de volume de calcul. Toutefois, la construction des listes requiert du temps. Une deuxième technique de réalisation de l'étape 103 permet d'exploiter les avantages conférés par l'invention sans utiliser de comparaison des listes de paires de particules en interaction à l'itération courante par rapport à l'itération précédente, mais en se servant d'une grille à trois dimensions (si le mouvement des particules est considéré dans en espace à trois dimensions ; si les particules se déplacent dans un plan, une grille à deux dimensions peut être suffisante). Lors de l'étape d'initialisation 100, en outre, une grille initiale est créée, en considérant un parallélépipède comprenant toutes les particules et en le subdivisant en cellules, par exemple cubiques dont la taille d'un côté est supérieure ou égale à dO. Puis chaque particule a,, i= 1 à N, est affectée à la cellule à laquelle elle appartient, selon la position de la particule à l'étape d'initialisation. Puis pour chaque particule a, qui se trouve dans une cellule donnée, on considère la cellule donnée et/ou les cellules qui lui sont voisines (26 cellules considérées au maximum) dans lesquelles des particules a sont à une distance de la particule a, inférieure à dO. Pour ces particules a situées à une distance de la particule a, inférieure à dO et telle que j>i, on calcule la force d'interaction fi3O de la particule a sur la particule a,. Cette force est égale à - fjo , fjo étant la force d'interaction exercée par la particule a, sur la particule a. On notera que dans le mode de réalisation décrit, les cellules voisines considérées sont les cellules immédiatement voisines, i.e. celles qui ont au moins un côté commun avec la cellule donnée ; dans d'autres modes de réalisation, les cellules voisines considérées sont celles situées à r cellules de distances d'une cellule immédiatement voisine de la cellule donnée. Les étapes suivantes sont ensuite mises en oeuvre lors de chaque itération n+1 du programme P, avec n kO, en référence à la figure 5.
Dans une étape 103 a2, on affecte comme valeur de départ à la force d'interaction globale ft,'±i s'exerçant sur chaque particule a,, la valeur de la force d'interaction globale calculée lors de l'itération précédente fi,. Dans une étape 103 b2, pour toutes les particules a, pour lesquelles pi,n+i < 1 (ie les particules non considérées comme figées), on détermine les particules vérifiant les conditions suivantes : ces particules étaient situées à l'itération précédente (n) dans la cellule dans laquelle la particule a, était positionnée à l'itération précédente n, ou les cellules qui lui sont voisines (26 cellules considérées au maximum) ; et ces particules étaient à l'itération précédente n à une distance de la particule inférieure à dO ; et ces particules vérifient que leur indice j est strictement supérieur à i ou vérifient que pj,'1 = 1. La composition de la grille jusqu'ici considérée est donc celle correspondant aux positions actualisées à l'itération précédente (itération n).
Puis pour chacune de ces particules a, ainsi déterminées, on calcule la force d'interaction fj,n exercée par la particule a, sur la particule a, (et par là-même la force d'interaction fit' exercée par la particule a, sur la particule a,), en fonction de la distance les séparant à l'étape précédente n. Et on retranche cette force d'interaction fj,n exercée par la particule a, sur la particule a, de la force d'interaction globale exercée sur a; ; de même on retranche cette force d'interaction fit, exercée par la particule a, sur la particule a, de la force d'interaction globale exercée sur a : ainsi on calcule fi,n+1 = fi,n+1 - fii,n et fj,n+1 = fj,n+1 - f ji,n= f ,n+1+ fij,n ' Dans une étape 103 c2, la composition de la grille est mise à jour, en déterminant les cellules courantes d'appartenance de toutes les particules a, pour lesquelles p,,,±1 < 1 (ie les particules non considérées comme figées), selon les positions de ces particules correspondant à l'itération n+1.
Dans une étape 103 d2, pour toutes les particules a pour lesquelles pi,n-Fi < 1 (ie les particules non considérées comme figées), on détermine les particules a; vérifiant les conditions suivantes : ces particules a; sont situées à l'itération courante (n+1) dans la cellule dans laquelle la particule a est positionnée à l'itération courante, ou les cellules qui lui sont voisines (26 cellules considérées au maximum) ; et ces particules a; sont à l'itération courante (n+1) à une distance de la particule ai inférieure à dO ; et ces particules a; vérifient que leur indice j est strictement supérieur à i ou vérifient que pi,'1 = 1. La composition de la grille considérée ici est donc celle correspondant aux positions actualisées à l'itération courante (itération n+1). Puis, pour chacune de ces particules a; ainsi déterminées, on calcule la force d'interaction fii,n+i exercée par la particule a; sur la particule a (et par là-même la force d'interaction tii,n+i exercée par la particule a sur la particule ai), en fonction de la distance les séparant à l'étape courante n+1. Et on ajoute cette force d'interaction fii,±1 exercée par la particule a; sur la particule a de la force d'interaction globale exercée sur a; ; de même on ajoute cette force d'interaction fii,n+i exercée par la particule a sur la particule a; de la force d'interaction globale exercée sur a; : ainsi on calcule f = f i,n+1 f j ,n+1 et f ,n+1 = f ,n+1 f ji ,n+1= f j ,n+1 f ,n+1 ' Comme la première technique, cette deuxième technique exploite le fait d'avoir figé certaines des particules en ne recalculant pas les forces d'interactions entre particules figées. Elle effectue la soustraction des forces correspondant aux anciennes positions et l'ajout de celles correspondant aux nouvelles positions. Elle ne comporte pas la longue opération de dressage des listes et de comparaisons des paires de chaque liste. En revanche, le volume des forces d'interaction entre deux particules à calculer est plus important que celui à réaliser dans la première technique. On notera par ailleurs que dans les exemples ci-dessus, des forces d'interaction ont été considérées entre les particules considérées deux à deux pour calculer les potentiels d'interaction et la mise à jour de ces potentiels. Néanmoins l'invention permet aussi de réduire la charge de calcul correspondante lorsque le calcul du potentiel fait intervenir des forces d'interaction entre k particules, k étant strictement supérieur à 2.
Dans ce cas, on calcule le potentiel d'interaction courant à partir du potentiel d'interaction déterminé à l'étape de simulation précédente, en tirant avantageusement parti du fait que la force d'interaction entre k particules est inchangée entre l'étape de simulation courante et l'étape précédente (et par conséquent n'est pas à recalculer) lorsque les k particules sont des particules figées. On retranche alors aux forces totales exercées sur les particules les forces calculées à l'étape précédente qui sont relatives aux k_uplets de particules comportant des particules qui ont bougé entre l'étape de simulation précédente et l'étape courante. On calcule et on ajoute aux forces totales exercées sur les particules ainsi obtenues les forces courantes relatives aux k_uplets de particules comportant des particules qui ont bougé, en fonction de leurs nouvelles positions. Pour k=2, ou pour k étant différent de 2, des opérations semblables peuvent être mises en oeuvre pour mettre à jour l'énergie potentielle du système, en considérant l'énergie potentielle comme la somme des énergies potentielles entre au plus k particules. Des opérations semblables peuvent également être mises en oeuvre pour mettre à jour des valeurs ou des structures de données qui dépendent des positions d'au plus k particules, pour k entier quelconque supérieur ou égal à 1. Par exemple, dans une simulation relative à un ensemble de 5 particules ou plus, les informations à calculer comportent le centre de gravité des 5 particules considérées, qui évolue au cours du temps, mais que l'on veut ne déterminer que tous les 10 pas de temps de simulation. Si les termes de la matrice inverse de masse adaptative correspondant à ces 5 premières particules ont été mis à zéro entre l'instant où on a déterminé le centre de gravité pour la dernière fois et l'instant courant, alors les particules n'ont pas bougé, et il n'est pas nécessaire de mettre à jour le centre de gravité. Dans un autre exemple, si les termes de la matrice inverse de masse adaptative correspondant aux quatre premières particules considérées ont été mis à zéro entre l'instant où on a déterminé le centre de gravité pour la dernière fois et l'instant courant, mais - que les termes correspondant à la cinquième particule ne l'ont pas été à un certain instant (et donc que la 5eme particule a bougé depuis le dernier calcul du centre de gravité), on met à jour le centre de gravité g de manière incrémentale - multiplier g par 5 ; - retrancher de g l'ancienne position de la 5eme particule ; - ajouter à g la nouvelle position de la 5eme particule ; - divise g par 5. On tire ainsi parti du fait que les termes de la matrice inverse de masse adaptative correspondant aux 4 premières particules étaient à zéro.
Dans un autre mode de réalisation, l'invention propose un procédé et un dispositif permettant d'accélérer le calcul des simulations d'ensemble d'objets. L'utilisation de l'Hamiltonien adaptatif permet, pendant la simulation, d'activer ou de désactiver des degrés de liberté, en position, d'objets vérifiant certains critères. Le volume de calculs nécessaire pour mettre à jour les forces ou l'énergie potentielle relative(s) à ces objets peut ainsi être diminué. Dans le cas d'une implémentation d'une simulation du comportement d'un ensemble E dans un ensemble statistique NVT (ensemble E à nombre de particules, volume et température constants) considérée maintenant ici à titre d'illustration, on utilise par exemple, sur la base du Hamiltonien adaptatif décrit ci-dessus, une simulation suivant la dynamique de Langevin (cf. par exemple « Free energy computations : a mathematical perspective », T. Lelievre et al., Imperial College Pr, 2010). Les équations de la dynamique de Langevin sont : dq, =V pH A(q' p,)dt, Formules (4) dp, = -V (il- A(q,, p,)dt - pH A(q' p,)dt + adW, où : t est une fonction de mouvement brownien standard à 3N dimensions, et - a et 7 sont des matrices réelles 3N*3N, satisfaisant la relation de fluctuation-dissipation suivante : cso-T = 2y/fi , avec fi =11k,T , k, étant la constante de Boltzmann et T la température ; V pH A(q' p,) est le gradient du Hamiltonien adaptatif par rapport à la variable p; V qH A(q' p,) est le gradient du Hamiltonien adaptatif par rapport à la variable q. Dans ce cas d'une simulation NVT, pour l'algorithme d'intégration, le calcul d'un pas de temps peut être effectué ainsi : un demi-pas de temps pour la partie Langevin des équations, un pas de temps pour la partie Hamiltonienne des équations et à nouveau un demi-pas de temps pour la partie Langevin des équations. On obtient alors les formules (5) suivantes : fallA(eirt,Pn+1/2) yeHA(qn'Pn+1/2))2 h ± 0G h Pn+1/2 Pn 2' aqn e/9n+1/ 2 n qn+1= q ±(al I A(qn, Pn+1/2))h , "q n+112 ( ', U aHA(qn+i, pn+i) allA(qn+l'Pn+1))h 0G Pn+1 = Pn+1 2 ± 7 a 2 + n+1/ 2 qn+1 Pn±i où {Gk} est une séquence de vecteurs aléatoires Gaussien indépendants et identiquement distribués avec une moyenne nulle et une covariance égale à la matrice Identité. Une équation des formules (5) comporte le terme pn+, dans les termes de droite et de gauche. Pour résoudre cette équation implicite, un algorithme à point fixe est utilisé, par exemple. Un programme similaire au programme P décrit ci-dessus est adapté pour mettre des étapes similaires aux étapes 101, 102, 103, en remplaçant, dans ces étapes, la prise en compte des équations (3) propres au cas NVE, par celles des équations (5) propres au cas NVT, pour l'actualisation des valeurs de pn et qn sur la base du Hamiltonien adaptatif HA selon l'invention. Des valeurs moyennes peuvent en outre être calculées lors de la simulation dans un ensemble NVT, en utilisant la simulation adaptative (i.e. utilisant un Hamiltonien adaptatif) selon l'invention, de manière à déterminer les valeurs qui auraient été calculées en réalisant la simulation avec un Hamiltonien classique. En effet, HA = 2 -1pi,.11)(p,q) .p +V (q) s'écrit aussi : 1 _ 1 HA = -2T .11/ 1.P +17(q)±-2PT .(cI)(P,q).P - M1).P soit HA = H+V A(p,q), 1 où VA (p,q) -- 2 p-, .(c1)(p,q).p-M-1).p et H est le Hamiltonien standard (ie non adaptatif).
Si on nomme (A)H la valeur moyenne de la variable A obtenue à l'aide des paramètres p et q obtenus avec une simulation utilisant un Hamiltonien standard H, et (A)HA la valeur moyenne de la variable A obtenue à l'aide des paramètres p et q obtenus avec une simulation utilisant un Hamiltonien adaptatif HA, on peut retrouver la valeur de (A)H à partir de la valeur de (A)HA par l'égalité suivante : h 2' VA AekBT H(q,p) (A) H = f A(q, p)e kBT dqdp où kBT , est le produit de la HA (11(q,P) VA Se kBT dqdp e kBT
HA constante de Boltzmann kB et de la température T , On peut démontrer, à partir de cette égalité, que lorsque la variable A dépend uniquement des positions et que l'Hamiltonien adaptatif est séparable (ie (1) ne dépend que des moments et pas des positions), alors (A)H =(A)HA Donc les valeurs moyennes obtenues à l'aide d'un Hamiltonien adaptatif sont égales à celles obtenues avec le Hamiltonien standard, ce qui est avantageux. On notera que les intégrateurs d'Euler ou Langevin ont été considérés ci-dessus pour la mise en oeuvre de l'invention. Celle-ci peut néanmoins être utilisée avec tout type d'algorithmes d'intégration. Dans le cas considéré ci-dessus, le mouvement d'une particule était figé dans toutes les dimensions de l'espace de déplacement considéré. Dans un autre mode de réalisation, le mouvement d'une particule est figé sur seulement 1 ou certains des axes de déplacement, ce qui peut être utile pour étudier certains types de mouvements.
On réduit alors le nombre des calculs nécessaires pour les actualisations des composants des forces parallèles à cet ou ces axes. Dans le mode de réalisation décrit ci-dessus, la position de la particule est figée lorsque son énergie cinétique est inférieure à un seuil. Dans un autre mode de réalisation, combinable avec les précédents ou non, on fige une particule pendant au moins un pas de temps de simulation, lorsque son moment p prend certaines valeurs déterminées (valeurs discrètes, ou une ou différentes plages de valeurs), voire lorsqu'un couple comportant le moment p et la position q prend certaines valeurs fixées. Dans un mode de réalisation, on fige la position de groupes de particules. Par exemple, on n'affecte la valeur nulle aux termes diagonaux de la matrice inverse de masse adaptative relatifs à une particule a,, d'énergie cinétique et , i =1 à 10, que si toutes les valeurs d'énergie cinétique el à e10 sont inférieures à un certain seuil. Cette disposition peut accélérer les calculs, ou permettre des calculs plus précis, dans le calcul de certains potentiels.
A titre d'illustration, quatre simulations en 2 dimensions de l'évolution d'un ensemble NVE de N=5930 particules a, , i=1 à N, avec une masse de 1g/mol chacune, en utilisant un potentiel Lennard-Jones (Em/ kB =120 Kelvin, où Em est le minimum d'énergie, distance d'équilibre S = 3.4 àngstreims, distance de coupure 8 àngstreims, le potentiel étant tronqué de manière lisse entre 7.5 et 8 àngstreims), ont été réalisées partant d'un choc déclenché par l'envoi à haute vitesse d'une particule sur le système initialement immobile : une simulation de référence, sur la base d'un Hamiltonien standard et trois simulations adaptatives, c'est-à-dire utilisant un Hamiltonien adaptatif d'un procédé selon l'invention tel que décrit ci-dessus (pas de temps de taille 0,0488 femtosecondes (fs), 7000 pas de temps, temps de simulation total égal à 342 fs). Pour chacune des simulations utilisant un Hamiltonien adaptatif, la racine carrée de la fluctuation par rapport à la simulation standard, nommée RMSD, est donnée, de même que l'erreur de déplacement de particule maximum 4q'x. -q( RMSD = 112 , où est le vecteur des coordonnées de la particule ai au dernier pas de la simulation adaptative, et qif est le vecteur des coordonnées de cette même particule au dernier pas de la simulation de référence.
Par exemple, pour la simulation adaptative où etr=0 et eif =0.01 kcal/mol (i=1 à N), on obtient un facteur d'accélération du temps de calcul nécessaire pour mettre en oeuvre cette simulation adaptative par rapport au temps de calcul relatif à la simulation de référence, d'une valeur égale à 2,5, RMSD=0,0114 S et 4q'x=0,18 S, où S est la distance d'équilibre dans le potentiel de Lennard-Jones utilisé.
Pour la simulation adaptative où eir = 0,05 et eif =0,1 (i=1 à N), on obtient un facteur d'accélération du temps de calcul nécessaire pour mettre en oeuvre cette simulation adaptative par rapport au temps de calcul relatif à la simulation de référence, d'une valeur égale à 5, et RMSD=0,0612 S et 4q'x=0,3 S. Pour la simulation adaptative où eir = 0,625 et eif =0,7 (i=1 à N), on obtient un facteur d'accélération du temps de calcul nécessaire pour mettre en oeuvre cette simulation adaptative par rapport au temps de calcul relatif à la simulation de référence, d'une valeur égale à 10, et RMSD=0,359 S et 4q'x=13,94 S. Des gains appréciables sont également constatés en mettant en oeuvre l'invention relativement à des ensembles de particules NVT. Ainsi un procédé selon l'invention permet d'accélérer les calculs de manière importante, avec une altération faible des comportements.

Claims (13)

  1. REVENDICATIONS1. Procédé de simulation d'un système d'éléments, selon lequel le comportement desdits éléments est déterminé sur la base d'un Hamiltonien H du système d'éléments, tel que H(p,q)=-1pT .111-1.p +V avec p étant un vecteur indiquant les moments des éléments, 2 q un vecteur indiquant les positions des éléments, M-1 étant une matrice diagonale fonction des masses des éléments et V étant l'énergie potentielle du système, caractérisé en ce que ledit procédé comporte une étape selon laquelle, lorsque le vecteur moment p prend certaines valeurs déterminées relatives à au moins un élément, on affecte une valeur nulle à au moins un terme diagonal de la matrice M-1 relatif audit élément.
  2. 2. Procédé de simulation d'un système d'éléments selon la revendication 1, selon lequel ledit procédé comporte une étape selon laquelle, pour au moins un desdits éléments, si un paramètre représentatif de l'énergie cinétique dudit élément a une valeur inférieure à un premier seuil strictement positif, on affecte une valeur nulle à au moins un terme diagonal de la matrice M-1 relatif audit élément.
  3. 3. Procédé de simulation d'un système d'éléments selon la revendication 1 ou 2, selon lequel les termes diagonaux de la matrice M-1 qui sont fonction de la masse d'un élément sont affectés à une valeur maximale lorsque l'énergie cinétique dudit élément est supérieure à un second seuil strictement positif.
  4. 4. Procédé de simulation d'un système d'éléments selon l'une quelconque des revendications précédentes, selon lequel on affecte une valeur nulle à au moins un terme diagonal de la matrice M-1 relatif audit élément si le couple comprenant le moment de l'élément et la position de l'élément prend certaines valeurs déterminées.
  5. 5. Procédé de simulation d'un système d'éléments selon l'une quelconque des revendications précédentes, comprenant une étape de détermination des valeurs d'au moins une information, à des instants de simulation successifs sur la base dudit Hamiltonien, ladite étape tirant parti du fait que les valeurs de l'information relatives à un k-uplet d'éléments, avec k entier supérieur ou égal à 2, pour lesquels une valeur nulle a été affectée aux termes diagonaux de la matrice M-1 à un instant de simulationprécédent, sont par conséquent inchangées entre au moins ledit instant de simulation précédent et l'instant de simulation courant, et calculant une valeur de l'information relative à un élément donné, à un instant de simulation courant en mettant en oeuvre les étapes suivantes lorsque des valeurs nulles n'ont pas été affectées aux termes diagonaux de la matrice concernant chaque élément d'un k-uplet d'éléments dont fait partie ledit élément donné : - calculer une valeur de travail de ladite information relative audit élément donné en retranchant à la valeur de l'information relative audit élément donnée et déterminée à l'instant de simulation précédent, au moins les valeurs de l'information relative audit élément donnée et associée auxdits k-uplets d'éléments à l'instant de simulation précédent, et/ou - ajouter à ladite valeur de travail au moins les valeurs de l'information relatives audit élément donné et associées aux k-uplets d'éléments, déterminées à l'instant de simulation courant.
  6. 6. Procédé de simulation d'un système d'éléments selon l'une quelconque des revendications précédentes, selon lequel, à un instant de calcul courant, une liste courante des paires d'éléments séparés par une distance inférieure à un seuil donné est dressée à un instant de simulation courant, et comparée à une liste précédente des paires d'éléments séparés par une distance inférieure à un seuil donné dressée à un instant de simulation précédent, et selon lequel la valeur d'une information relative à un élément donné, à un instant de simulation courant, est calculée sur la base des paires comportant ledit élément donné en mettant en oeuvre les étapes suivantes: - calculer une valeur de travail en retranchant, à la valeur d'information relative audit élément donné et déterminée à l'instant de simulation précédent, les valeurs d'information relative audit élément donné associées à l'autre élément des paires considérées si la paire considérée est présente seulement dans la liste précédente ou si le vecteur reliant ledit élément donné à l'autre élément de la paire a varié entre l'instant de simulation précédent et l'instant de simulation courant ; - la valeur de l'information relative audit élément donné à un instant de simulation courant est déterminée en ajoutant, à la valeur de travail, les valeurs de l'information relatives audit élément donné et associées à l'autre élément des paires considérées si la paire considérée est présente seulement dans la liste courante ou si le vecteur reliant ledit élément à l'autre élément de la paire a varié entre l'instant de simulation précédent et l'instant de simulation courant.
  7. 7. Procédé de simulation d'un système d'éléments selon l'une quelconque des revendications précédentes, selon lequel, à un instant de calcul courant, une liste courante de k-uplets d'éléments satisfaisant certaines conditions, avec k entier supérieur ou égal à deux, est dressée à un instant de simulation courant, et comparée à une liste précédente de k-uplets d'éléments satisfaisant lesdites conditions à un instant de simulation précédent, et selon lequel la valeur d'une information relative à un élément à un instant de simulation courant, est calculée sur la base des k-uplets comportant ledit élément en mettant en oeuvre les étapes suivantes: - calculer une valeur temporaire en retranchant à la valeur de l'information relative audit élément et déterminée à l'instant de simulation précédent, les valeurs des informations relatives audit élément et associées auxdits k-uplets à l'instant de simulation précédent, lorsque lesdits k-uplets sont présents seulement dans la liste précédente ou lorsque les valeurs des informations relatives audit élément et associées auxdits k-uplets ont changé entre l'instant de simulation précédent et l'instant de simulation courant; - déterminer la valeur de l'information relative audit élément à l'instant de simulation courant en ajoutant, à la valeur temporaire, les valeurs des informations relative audit élément et associées auxdits k-uplets à l'instant de simulation courant, lorsque lesdits k- uplets sont présents seulement dans la liste courante ou lorsque les informations associées auxdits k-uplets ont changé entre l'instant de simulation précédent et l'instant de simulation courant;
  8. 8. Procédé de simulation d'un système d'éléments selon l'une quelconque des revendications précédentes, selon lequel l'espace de localisation des éléments est partitionné en cellules et chaque élément, à chacun d'instant de simulation précédent et un instant de simulation courant, est associé à une cellule d'appartenance selon des coordonnées de position déterminées audit instant de simulation, et selon lequel, pour les premiers éléments tels que les termes de la matrice M-1 relatifs audits premiers éléments n'ont pas été affectés à une valeur nulle à un instant de simulation courant, les étapes suivantes sont mises en oeuvre : - on détermine la cellule d'appartenance des premiers éléments à l'instant de simulation précédent ; - pour chaque premier élément, on détermine dans ladite cellule d'appartenance ou ses cellules dans un voisinage donné de la cellule d'appartenance, les seconds éléments situés à l'instant de simulation précédent à une distance inférieure à un seuil donné duditpremier élément ; on calcule une valeur de travail en retranchant de la valeur d'une information relative audit premier élément et déterminée à l'instant de simulation précédent, les valeurs de ladite information relatives audit premier élément et associées auxdits seconds éléments ; - on détermine la nouvelle cellule d'appartenance des premiers éléments à l'instant de simulation courant ; - pour chaque premier élément, on détermine dans la nouvelle cellule d'appartenance ou les cellules dans le voisinage donné de la nouvelle cellule d'appartenance, les troisièmes éléments situés à l'instant de simulation courant à une distance inférieure à un seuil donné dudit premier élément ; - on détermine la valeur de l'information relative audit premier élément, à l'instant de simulation courant, en ajoutant à la valeur de travail, les valeurs de l'information relatives au premier élément et associées aux troisièmes éléments
  9. 9. Procédé de simulation d'un système d'éléments selon l'une quelconque des revendications précédentes, selon lequel l'information relative audit élément comprend l'énergie potentielle dudit élément et/ou la force d'interaction appliquée audit élément.
  10. 10. Procédé de simulation d'un système d'éléments selon l'une quelconque des revendications précédentes, comprenant, à certains instants de simulation, une étape de détermination d'une information I, ladite étape tirant avantageusement parti du fait qu'une valeur nulle a été affectée à certains termes diagonaux de la matrice M-1 à certains instants de simulation.
  11. 11. Procédé de simulation d'un système d'éléments selon l'une quelconque des revendications précédentes, comprenant, à certains instants de simulation, une étape de détermination d'une information I, ladite étape tirant avantageusement parti du fait que cette information I est inchangée et ne nécessite pas d'être déterminée de nouveau lorsqu'elle a été déterminée à un instant de simulation antérieur et qu'une valeur nulle a été affectée à un ensemble correspondant de termes diagonaux de la matrice M-1 entre au moins le dit instant de simulation antérieur et l'instant de simulation courant.
  12. 12. Procédé de simulation d'un système d'éléments selon l'une quelconque des revendications précédentes, comprenant, à certains instants de simulation, une étape de détermination de l'énergie potentielle, respectivement des forces d'interaction, laditeétape tirant avantageusement parti du fait qu'une valeur nulle a été affectée à au moins un élément diagonal de la matrice M-1 à certains instants de simulation.
  13. 13. Programme d'ordinateur de simulation d'un système d'éléments, comprenant des instructions logicielles pour mettre en oeuvre les étapes d'un procédé selon l'une des revendications 1 à 12 lors d'une exécution du programme par des moyens de calcul.
FR1254838A 2012-05-25 2012-05-25 Procede de simulation d'un ensemble d'elements, programme d'ordinateur associe Pending FR2991081A1 (fr)

Priority Applications (7)

Application Number Priority Date Filing Date Title
FR1254838A FR2991081A1 (fr) 2012-05-25 2012-05-25 Procede de simulation d'un ensemble d'elements, programme d'ordinateur associe
PCT/EP2013/060622 WO2013174923A1 (fr) 2012-05-25 2013-05-23 Procédé de simulation d'un ensemble d'éléments, programme d'ordinateur associé
KR1020147036027A KR102082777B1 (ko) 2012-05-25 2013-05-23 엘리먼트들의 세트를 시뮬레이팅하기 위한 방법 및 연관된 컴퓨터 프로그램
US14/402,116 US20150134310A1 (en) 2012-05-25 2013-05-23 Method for Simulating a Set of Elements, and Associated Computer Program
EP13725145.0A EP2856361A1 (fr) 2012-05-25 2013-05-23 Procédé de simulation d'un ensemble d'éléments, programme d'ordinateur associé
CN201380038556.3A CN104508667B (zh) 2012-05-25 2013-05-23 用于模拟一组元件的方法
RU2014146944A RU2014146944A (ru) 2012-05-25 2013-05-23 Способ моделирования совокупности элементов и компьютерная программа, применяемая при его осуществлении

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1254838A FR2991081A1 (fr) 2012-05-25 2012-05-25 Procede de simulation d'un ensemble d'elements, programme d'ordinateur associe

Publications (1)

Publication Number Publication Date
FR2991081A1 true FR2991081A1 (fr) 2013-11-29

Family

ID=46963807

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1254838A Pending FR2991081A1 (fr) 2012-05-25 2012-05-25 Procede de simulation d'un ensemble d'elements, programme d'ordinateur associe

Country Status (7)

Country Link
US (1) US20150134310A1 (fr)
EP (1) EP2856361A1 (fr)
KR (1) KR102082777B1 (fr)
CN (1) CN104508667B (fr)
FR (1) FR2991081A1 (fr)
RU (1) RU2014146944A (fr)
WO (1) WO2013174923A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113371231A (zh) * 2021-06-25 2021-09-10 四川大学 一种带约束的航天器姿态控制方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112052516B (zh) * 2020-08-13 2021-11-23 中国人民解放军军事科学院国防科技创新研究院 基于序列摆放的组件布局随机采样方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04192008A (ja) * 1990-11-27 1992-07-10 Pentel Kk 多関節ロボット旋回制御方式
JP4192008B2 (ja) * 2003-02-18 2008-12-03 株式会社渡辺商行 気化器及び気化器の洗浄方法並びに気化器を用いた装置
FR2917866B1 (fr) 2007-06-20 2009-09-04 Inst Nat Rech Inf Automat Dispositif informatique pour la simulation d'un ensemble d'objets en interaction et procede correspondant

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BENNETT ET AL: "Mass tensor molecular dynamics", JOURNAL OF COMPUTATIONAL PHYSICS, LONDON, GB, vol. 19, no. 3, 1 November 1975 (1975-11-01), pages 267 - 279, XP024751538, ISSN: 0021-9991, [retrieved on 19751101], DOI: 10.1016/0021-9991(75)90077-7 *
PLECHAC P ET AL: "Implicit mass-matrix penalization of Hamiltonian dynamics with application to exact sampling of stiff systems", MULTISCALE MODELING & SIMULATION, SOCIETY FOR INDUSTRIAL AND APPLIED MATHEMATICS, US, vol. 8, no. 2, 1 January 2009 (2009-01-01), pages 498 - 539, XP009167383, ISSN: 1540-3459 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113371231A (zh) * 2021-06-25 2021-09-10 四川大学 一种带约束的航天器姿态控制方法

Also Published As

Publication number Publication date
RU2014146944A (ru) 2016-06-10
EP2856361A1 (fr) 2015-04-08
KR20150013880A (ko) 2015-02-05
WO2013174923A1 (fr) 2013-11-28
CN104508667A (zh) 2015-04-08
CN104508667B (zh) 2018-09-14
KR102082777B1 (ko) 2020-02-28
US20150134310A1 (en) 2015-05-14

Similar Documents

Publication Publication Date Title
Li et al. Resampling methods for particle filtering: classification, implementation, and strategies
Ng et al. PEGASUS: A policy search method for large MDPs and POMDPs
CN114787824A (zh) 联合混合模型
WO2012105969A1 (fr) Estimation d&#39;une caractéristique de performance d&#39;un travail à l&#39;aide d&#39;un modèle de performance
CN111475848A (zh) 保障边缘计算数据隐私的全局和局部低噪声训练方法
Jaques et al. Low-gate quantum golden collision finding
Jensen et al. The sweep-line state space exploration method
Shen et al. GPU‐based branch‐and‐bound method to solve large 0‐1 knapsack problems with data‐centric strategies
Cheng et al. Efficient top-k vulnerable nodes detection in uncertain graphs
FR2991081A1 (fr) Procede de simulation d&#39;un ensemble d&#39;elements, programme d&#39;ordinateur associe
Zhou et al. Controlling unstructured mesh partitions for massively parallel simulations
Opdyke Fast permutation tests that maximize power under conventional Monte Carlo sampling for pairwise and multiple comparisons
Buxton et al. Accelerated path-integral simulations using ring-polymer interpolation
Audrito et al. Resilient blocks for summarising distributed data
Hongde et al. Differential privacy data aggregation optimizing method and application to data visualization
CN110046194A (zh) 一种扩展节点关系图的方法、装置和电子设备
CN109408722A (zh) 社区划分方法、装置、计算设备及存储介质
Makhmutova et al. Online clustering on uncertain data stream
Javadi et al. Bandwidth modeling in large distributed systems for big data applications
Slavova Parallel triangular solution in the out-of-core multifrontal approach for solving large sparse linear systems
Jafer et al. Conservative synchronization methods for parallel DEVS and Cell-DEVS
Nikitopoulos et al. BigCAB: Distributed Hot Spot Analysis over Big Spatio-temporal Data using Apache Spark (GIS Cup)
US9967195B1 (en) Iterative autocorrelation function calculation for big data using components
Jha et al. When a Graph is not so Simple: Counting Triangles in Multigraph Streams.
CN116938769B (zh) 流量异常检测方法、电子设备和计算机可读存储介质

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12