0
votes

Simulation de Monte Carlo d'un système de lennard-Jones + potentiel de fée

Je veux générer deux chaînes linéaires de 20 monomères chacune à une certaine distance les unes des autres. Le code suivant génère une chaîne unique. Quelqu'un pourrait-il m'aider à générer la deuxième chaîne? Les deux chaînes sont fixées à une surface I.e Le premier monomère de la chaîne est fixe et le reste des monomères se déplace librement dans les directions X-Y-Z, mais le composant Z des monomères doit être positif.

quelque chose comme ça: Entrez la description de l'image ici xxx

i sauf la chaîne de particules pour s'effondrer dans un globule.


3 commentaires

Ce code manque aux mouvements d'essai pour mettre à jour les coordonnées des particules avant d'appliquer le critère de métropole et manquer également la logique concernant la connectivité des particules. Il est difficile de dire ce qui se passe réellement, mais vous ne pouvez pas simplement générer n particules dans une boîte à des endroits aléatoires et supposer qu'ils sont tous soigneusement connectés pour former une chaîne. Publier tout le code, ou une MWe contenant toutes les informations pertinentes.


J'ai posté le reste du code ci-dessous.


Hé! J'ai modifié le code, le potentiel fené et d'autres paramètres. Je reçois des valeurs négatives dans le potentiel à cause du journal. Je pense qu'il y a un problème avec les coordonnées de Rij. Pourriez-vous s'il vous plaît jeter un oeil? Le code modifié est donné ci-dessus.


3 Réponses :


0
votes

Il y a un problème avec la logique du MC que vous mettez en œuvre. Pour effectuer un MC, vous devez essayer de déplacer, évaluer l'énergie du nouvel état, puis accepter / rejeter selon un nombre aléatoire. Dans votre code, il n'y a pas le moindre signe de la tentative de déplacer une particule. Vous devez déplacer un (ou plusieurs d'entre eux), évaluer l'énergie, puis mettre à jour vos coordonnées. Au fait, je suppose que ce n'est pas votre code complet. Il existe de nombreux paramètres qui ne sont pas définis comme le "K" et le "R0" dans votre potentiel de Fene


1 commentaires

Oui, je n'ai pas posté l'ensemble du code. Ci-dessous je vais essayer de poster le reste du code



1
votes

Les modèles potentiels fénés sont des interactions obligatoires. Ce que votre code dit, c'est que toutes les particules de coupure sont liées par des ressorts fénés et que les liaisons ne sont pas fixes mais plutôt définies par la coupure. Avec une r_cutoff = 3.0, plus grande que la distance d'équilibre du puits LJ, vous envisagez essentiellement que chaque particule est liée à potentiellement beaucoup d'autres. Vous traitez le potentiel féné comme un non collé.

Pour les interactions de liaison, vous devez ignorer la coupure et évaluer uniquement l'énergie des paires réelles qui sont collées selon votre topologie, ce qui signifie que cela signifie d'abord définir une topologie. Je suggère de générer une molécule linéaire de n atomes dans une boîte suffisamment grande pour contenir toute la molécule étirée et considérez le i-e atome comme lié au (i-1) -th atome, avec i = 2, ..., N. De cette façon, la topologie est bien définie et persistante. Ensuite, considérons les deux interactions séparément, non liées et cautionnées, et ajoutez-les à la fin.

quelque chose comme ceci, en pseudo-code: xxx


2 commentaires

Il y avait quelques erreurs dans les index. Corrigé maintenant.


J'ai édité mon code ci-dessous. Pouvez-vous s'il vous plaît jeter un oeil.



0
votes

ci-dessous Vous trouverez une version modifiée de votre code. Pour rendre les choses plus simples, dans cette version, il n'y a pas de boîte ni de conditions limites, juste une chaîne dans un espace libre. La chaîne est initialisée en tant que séquence linéaire de particules chacune distante 80% de R0 de l'autre, car R0 est la longueur maximale de la liaison Fene. Le code considère que la particule i est liée avec i + 1 et la liaison n'est pas cassée. Ce code est juste une preuve de concept. xxx

Le code imprime la configuration actuelle à chaque étape, vous pouvez simplement le charger sur VMD et voir comment il se comporte. Les obligations ne figureront pas correctement au début sur la VMD, vous devez utiliser une représentation de billes pour les particules et définir les liaisons manuellement ou avec un script au sein de la VMD. En tout état de cause, vous n'avez pas besoin de voir les obligations pour noter que la chaîne ne s'effondre pas.

Veuillez garder à l'esprit que si vous voulez simuler une chaîne à une certaine densité, vous devez être prudent de générer la topologie correcte. Je recommande le EMC Package pour générer efficacement des polymères dans les conditions thermodynamiques souhaitées. Ce n'est en aucun cas un problème trivial, en particulier pour les plus grandes chaînes.

D'ailleurs, votre code a eu une erreur dans l'évaluation de l'énergie des Fene. RIJ2 est déjà carré, vous le faisiez à nouveau.

ci-dessous Vous pouvez voir comment l'énergie totale en fonction du nombre d'étapes se comporte pour t = 1,0 , n = 20 , rctoff = 3.5 , ainsi que la dernière configuration de courant après 10 000 étapes.

 Energy vs. étapes

 Configuration actuelle à l'étape 10 mille

et ci-dessous pour n = 50 , T = 1.5 , max_delta = 0.01 , k = 40 , r = 1.5 , rcutoff = 3.5 et 10 millions d'étapes. Ceci est la dernière configuration actuelle.

 Entrez la description de l'image ici

La" trajectoire "complète, qui n'est pas vraiment une trajectoire depuis ce document , vous pouvez trouver ici (c'est moins de 6 Mo). < / p>


6 commentaires

La chaîne linéaire va bien! Mais cela n'évolue pas et ne finit pas une bobine ou une globule. J'ai essayé de changer de température.


En fait c'est ce que j'attends. Il devrait s'effondrer comme une bobine avec une température autour de 0,6


J'ai changé le code ci-dessus pour réparer quelques erreurs, s'il vous plaît, essayez d'essayer. AT T = 1.0 avec n = 20 Il semble aller vers l'équilibre après environ 50 000 étapes. Veuillez garder à l'esprit que Monte Carlo n'est pas une dynamique, ce n'est donc pas vraiment une évolution temporelle, mais plutôt l'échantillonnage d'un ensemble.


Je ne suis pas sûr que vous vous attendiez à trouver un globule à cette température. Les obligations devraient être assez courtes et les perles proches les unes des autres, vous auriez donc besoin d'une énergie suffisante pour 1) grimper le mur de répulsion LJ; et 2) comprimer les obligations.


J'ai posté une photo ci-dessus. Les marches MC vs Terrain énergétique sont parfaites, mais la chaîne ne se déforme pas comme prévu. Qu'entendez-vous par suffisamment d'énergie?


Hé! Pouvez-vous m'aider avec le nouveau problème? J'ai modifié le code et modifier le problème ci-dessus.