-dislocation <p1> <p2> screw <ξ> <n> <b>
-dislocation <p1> <p2> <edge|edge_add|edge_rm> <ξ> <n> <b> <ν>
-dislocation <p1> <p2> mixed <ξ> <n> <b1> <b2> <b3>
-dislocation loop <x> <y> <z> <n> <rayon> <bx> <by> <bz> <ν>
Cette option permet d'insérer une dislocation rectiligne dans le système, ou une boucle de dislocation, en utilisant les déplacements prédits par la théorie des dislocations. Les solutions isotropes ou anisotropes peuvent être utilisées (voir ci-dessous). Les équations employées par cette option se trouvent par ex. dans J.P. Hirth and J. Lothe, Theory of dislocations.
Les paramètres associés avec cette option sont (voir Fig. 1) :
ξ
.Fig. 1 - Illustration des paramètres de l'option "-dislocation". ξ est la direction de la ligne de dislocation (x, y ou z). p1 et p2 sont les coordonnées de la dislocation dans le plan normal à ξ, et b est le vecteur de Burgers.
Par défaut, la dislocation est construite en utilisant les solutions élastiques isotropes.
Pour une dislocation vis, le vecteur de Burgers b est aligné avec la direction ξ. Le nombre total d'atomes ainsi que les vecteurs de boîte sont conservés. Chaque atome est déplacé d'une quantité u3 parallèlement à la ligne de dislocation ξ, et proportionnel à la norme du vecteur de Burgers b, suivant la théorie de l'élasticité :
u3 = (b/2π) atan(x2/x1)
où (x1,x2) est la position de l'atome dans le plan normal à ξ.
Pour une dislocation coin, le vecteur de Burgers b est normal à ξ (de sorte que b.ξ=0), et contenu dans le plan normal à <n>. Les déplacements des atomes sont alors contenu dans le plan normal à ξ :
u1 = (b/2π) [ atan(x2/x1) + x1x2/(2(1-ν)(x12+x22)) ]
u2 = (-b/2π) [ (1-2ν)ln(x12+x22))/(4(1-ν)) + (x12-x22)/(4(1-ν)(x12+x22)) ]
où ν est le coefficient de Poisson du matériau, et doit être fourni. Avec cette option, les dislocations coin peuvent être construites de trois manières différentes, comme illustré sur la Fig. 2:
Notez que dans tous les cas, les bords du système sont perturbés, et les conditions aux limites ne peuvent plus être périodiques dans les 3 dimensions.
Après avoir déplacé les atomes, Atomsk calcule aussi les contraines théoriques (prédites par la théorie continue). Cependant, puisque le module de cisaillement μ est inconnu de cette option, les contraintes sont normalisées, autrement dit la quantité calculée est en réalité σ/μ. Les six composantes de Voigt σxx, σyy, σzz, σyz, σxz et σxy, sont enregistrées comme propriétés auxiliaires pour chaque atome. Si plusieurs dislocations sont introduites dans le système, ces contraintes sont cumulées. Notez que ces propriétés auxiliaires ne peuvent être écrites que vers certains formats de fichiers, comme le CFG (voir cette page pour une liste de formats supportant les propriétés auxiliaires).
Fig. 2 - Les trois façons de construire une dislocation coin avec cette option. En utilisant le mot-clé "edge", aucun nouvel atome n'est introduit, mais l'insertion de la dislocation résulte en la formation d'une marche sur un bord du système. Avec le mot-clé "edge_add", un demi-plan d'atomes est ajouté au système (représenté en orange), et la boîte est légèrement allongée. Avec le mot-clé "edge_rm", un demi-plan d'atomes est supprimé (en gris), et la boîte est légèrement raccourcie.
L'élasticité anisotrope est automatiquement utilisée lorsque le tenseur élastique est défini avant que la présente option ne soit appelée, par ex. avec l'option -properties
(se référer à cette option pour ce qui concerne la rotation du tenseur élastique). La dislocation peut avoir un caractère vis ou coin ("screw", "edge", "edge_add", "edge_rm") comme décrit ci-dessus. De plus, il est également possible de créer une dislocation avec un caractère mixte avec le mot-clé "mixed". Dans ce cas, les trois composantes du vecteur de Burgers doivent être fournies, b3 étant suivant la direction de la ligne <ξ> (direction "vis"), et b2 suivant <n> (normale au plan de glissement). Les équations de l'élasticité anisotrope sont alors résolues pour obtenir les valeurs des coefficients Ak(n), D(n), P(n) et
Bijk(n), et les déplacements anisotropes sont appliqués :
uk =
ℜ{ (-2πi)-1 ∑(n=1,3) Ak(n) D(n) ln(x1+P(n)x2)
}, k=1,3
Ces coefficients sont aussi utilisés pour calculer les contraintes théoriques associés à la dislocation :
σij =
ℜ{ (-2πi)-1 ∑(n=1,3) Bijk(n) Ak(n) D(n) / (x1+P(n)x2)
}
Dans ce cas puisque le tenseur élastique est entièrement connu, ce sont bien les contraintes exactes qui sont calculées. Comme dans le cas isotrope, les composantes de Voigt sont enregistrées comme propriétés auxiliaires, et si plusieurs dislocations sont construites alors leurs contributions sont cumulées.
Les boucles de dislocation peuvent être construites en utilisant "-dislocation loop
". Dans ce cas, les paramètres à fournir sont les suivants : les coordonnées (x,y,z) du centre de la boucle, la direction <n> normale au plan de la boucle (doit être "X", "Y", ou "Z"), le <rayon> de la boucle, les trois composantes (bx,by,bz) du vecteur de Burgers, et le module de Poisson ν du matériau. Les déplacements atomiques sont alors ceux décrits par D.M. Barnett, Philos. Mag. A 51 (1985) 383-387.
Les coordonnées (x,y,z) du centre de la boucle peuvent être fournies en Å. Il est aussi possible de spécifier des distances relatives aux dimensions de la boîte avec le mot-clé BOX et une opération (voir cette page). Toutefois, le <rayon> de la boucle ainsi que les composantes du vecteur de Burgers doivent impérativement être donnés en Å.
Si le <rayon> de la boucle est négatif, alors au lieu d'être circulaire, la boucle aura la forme d'un carré. Le côté du carré sera égal au double de la valeur absolue du <rayon>.
Pour les boucles de dislocations, les contraintes théoriques ne sont pas calculées.
Comme tous les autres types de dislocation, plusieurs boucles peuvent être introduites dans le système atomique en appelant cette option plusieurs fois.
Fig. 3 - Schéma de construction d'une boucle de dislocation. Dans cet exemple, la boucle est contenue dans un plan normal à l'axe cartésien Z (c'est-à-dire que n est dirigé suivant Z). La boucle de dislocation apparaît en vert, et son vecteur de Burgers b en bleu. Sur la droite : si le <rayon> a une valeur négative, alors la boucle de dislocation aura une forme carrée.
Remarques importantes : Atomsk ne va pas trouver ni ajuster "automagiquement" le vecteur de Burgers, aussi est-il impératif d'en fournir une valeur très précise. Le programme n'ajustera pas non plus la position de la dislocation vers un site particulier : si vous fournissez une position (p1,p2)
qui correspond exactement à la position d'un atome, il peut en résulter des déplacements non réalistes. Il est possible que vous ayez à tester différentes positions pour obtenir des résultats cohérents. Comme toujours, ne croyez pas que le programme va penser pour vous -vérifiez votre système avant de lancer une simulation, surtout lors de la construction de dislocations.
Si une sélection est définie (avec l'option -select
) alors les déplacements discutés ci-dessus ne seront appliqués qu'aux atomes sélectionnés.
S'il existe des coquilles dans le système (dans le cadre d'un modèle ionique cœur-coquille), alors chaque coquille est déplacée du même vecteur que le cœur qui lui est associé.
Après avoir appliqué cette option, certains atomes peuvent se trouver hors de la boîte. Pour les replacer dans la boîte il est possible d'utiliser l'option -wrap
.
Par défaut aucune dislocation n'est introduite.
atomsk initial.cfg -dislocation 0.5*BOX 0.5*BOX screw z y 3.2 final.xyz
Ceci lira initial.cfg
, et déplacera les atomes de façon à insérer une dislocation vis de vecteur de Burgers 3.2 Å suivant Z, au milieu de la boîte suivant X (puisque p1=0.5*BOX) et également au centre suivant Y (puisque p2=0.5*BOX). Le résultat sera écrit dans final.xyz
.
atomsk initial.cfg -disloc 0.25*BOX 0.5*BOX screw z y 3.2 -disloc 0.75*BOX 0.5*BOX screw z y -3.2 final.xyz
Ceci insèrera deux dislocations vis de vecteurs de Burgers opposés, la première en (0.25;0.5) et la seconde en (0.75;0.5) fois la taille de boîte.
atomsk unitcell.xyz -duplicate 30 2 20 -disloc 30 40.2 edge_add y x 2.8 0.28 dislocation.xsf
Ceci lira unitcell.xyz
, dupliquera le système pour former une supercellule de 30x2x20, puis construira une dislocation coin en insérant un nouveau plan d'atomes. La ligne de dislocation sera suivant Y, le vecteur de Burgers aura une amplitude de 2.8 Å, le coefficient de Poisson vaut 0.28, et le centre de la dislocation sera placé à Z=30 Å et X=40.2 Å. Le résultat sera écrit dans dislocation.xsf
.
atomsk unitcell.xyz -duplicate 30 2 20 -disloc 30 40.2 edge y x 2.8 0.28 dislocation.cfg
Similaire à l'exemple précédent, sauf que la dislocation coin sera introduite sans ajouter d'atome au système.
# Le tenseur élastique pour l'orientation [100] [010] [001]
elastic Voigt
243.30 243.30 243.30
145.00 145.00 145.00
116.10 116.10 116.10
# L'orientation du cristal
orientation
110
1-10
001
atomsk initial.xyz -prop ctensor.txt -disloc 0.5*BOX 0.5*BOX screw y x 2.8 dislocation.cfg
Supposons vouloir construire une dislocation dans un système de fer ayant pour orientation cristallographique X=[110], Y=[1-10], Z=[001]. Le système originel (initial.xyz
) a bien cette orientation [110] [1-10] [001]. Dans cet exemple l'option -properties
est utilisée pour lire le tenseur élastique et l'orientation du système depuis ctensor.txt
, donc l'élasticité anisotrope sera employée pour construire la dislocation. Il s'agit souvent de la manière la plus simple d'utiliser l'élasticité anisotrope avec Atomsk.
# Le tenseur élastique pour l'orientation [100] [010] [001]
elastic Voigt
243.30 243.30 243.30
145.00 145.00 145.00
116.10 116.10 116.10
atomsk initial.xyz -orient 110 1-10 001 100 010 001 -prop ctensor.txt -orient 100 010 001 110 1-10 001 -disloc 0.5*BOX 0.5*BOX screw y x 2.8 dislocation.cfg
Cet exemple illustre une autre manière de faire la même chose que l'exemple précédent. Le système originel (initial.xyz
ayant pour orientation [110] [1-10] [001]) est d'abord pivoté avec l'option -orient
de sorte qu'il ait pour orientation X=[100], Y=[010] et Z=[001]. Puis le tenseur élastique, qui correspond à cette orientation, est lu grâce à l'option -properties
. Puis le système est de nouveau pivoté pour lui redonner son orientation initiale (ceci aurait également pu être réalisé grâce à l'option -alignx
), ce qui effectue également la rotation du tenseur élastique. Enfin la dislocation peut être introduite.
atomsk supercell.cfg -dislocation loop 0.5*box 0.5*box 0.5*box Z 30 2.85 0 0 0.33 Loop.cfg
Dans cet exemple, une boucle de dislocation est introduite au milieu de la boîte, dans un plan normal à Z, avec un rayon de 30 Å, et un vecteur de Burgers b=[2.85 0 0]. Le coefficient de Poisson du matériau est fixé à ν=0.33.
D'autres exemples sont fournis dans le dossier "examples" fourni avec le programme. Le dossier "Al_110dislocations
" contient un script bash qui construit deux dislocations coin de vecteurs de Burgers opposés dans un système d'aluminium, en utilisant l'élasticité isotrope. Le dossier "Fe_disloc_screw111_anisotropy
" montre comment construire une dislocation vis 1/2<111> dans du fer en utilisant l'élasticité anisotrope.