Aller au contenu

Utilisateur:BornOppen/Brouillon

Une page de Wikipédia, l'encyclopédie libre.

Implémentation numérique des conditions aux limites périodiques : cas d'une boîte cubique

[modifier | modifier le code]

Lorsqu'on simule un système physique en faisant appel aux conditions périodiques aux limites. Il faut, lors du post traitement, les prendre en compte pour calculer correctement la grandeur physique qu'on souhaite calculer (déplacement quadratique moyen, fonction de distribution radiale, paramètre d'ordre...). Il faut donc appliquer la convention d'image minimale qui stipule :

Ici désigne la longueur de la boîte selon la direction . Voici un exemple d'algorithme en Python :

#Définition de la fonction pour calculer les écarts entre atomes
#Ici lx est la longueur selon x et x_coord est l'ensemble des coordonnées selon cette même direction
def conditions_limites_1d(lx,x_coord):
    
    #Calcul des écarts entre chaque atome en évitant de calculer l'écart i-i et j-i
    deltax=[x_coord[i]-x_coord[j] for i,j in range(len(x_coord)) for j in range(len(x_coord)) if i!=j and j>i]
    
    #Application des conditions périodiques aux limites
    deltax[deltax > lx/2]-=lx
    deltax[deltax < -lx/2]+=lx
        
    return deltax

L'extension à trois dimensions s'inscrit dans la continuité de cet algorithme. La présente section considérant uniquement le cas d'une boîte cubique. Il fonctionne néanmoins si l'on considère une boîte parallélépipédique, il faut juste modifier les conditions sur les longueurs de boîte (car dans ce cas précis).