Battletoad
Ensign
- Registriert
- Apr. 2017
- Beiträge
- 144
hallo,
ich habe für meine bachelor arbeit ein aktives-2D-ising-modell programmiert und möchte gerne den code etwas optimieren. die ist mein erstes größeres python projekt und google wurde auch benutzt, nur ist vieles davon nicht so verständlich für mich als anfänger.
zu anfang erstelle ich zwei matrizen: in einer stehen die teilchenzahlen pro platz und in der anderen die magnetisierung (summe von spin 1 und (-1) teilchen).
danach wird ein platz und ein teilchen ausgewählt und dann eine aktion ausgewürfelt (spinflip 1 <-> (-1), sprung nach oben, unten, links oder rechts, nichts tun). am ende werden die teilchendichte/magnetisierung der plätze angepasst.
ich habe die platzanpassungen jetzt direkt in die funktionen geschrieben damit das programm, sobald es eine aktion ausgeführt hat, mit dem nächsten schritt anfangen kann; damit sollte es schneller durchlaufen mMn.
vorher wurde die am ende der schleife ausgeführt (jetzt auskommentiert).
da dies als MC-simulation läuft komme ich hier auf mehrere mrd. durchläufe und würde gerne die laufzeit minimieren (momentan 10h+).
wäre toll wenn jemand ein paar vorschläge hätte.
ich habe für meine bachelor arbeit ein aktives-2D-ising-modell programmiert und möchte gerne den code etwas optimieren. die ist mein erstes größeres python projekt und google wurde auch benutzt, nur ist vieles davon nicht so verständlich für mich als anfänger.
zu anfang erstelle ich zwei matrizen: in einer stehen die teilchenzahlen pro platz und in der anderen die magnetisierung (summe von spin 1 und (-1) teilchen).
danach wird ein platz und ein teilchen ausgewählt und dann eine aktion ausgewürfelt (spinflip 1 <-> (-1), sprung nach oben, unten, links oder rechts, nichts tun). am ende werden die teilchendichte/magnetisierung der plätze angepasst.
ich habe die platzanpassungen jetzt direkt in die funktionen geschrieben damit das programm, sobald es eine aktion ausgeführt hat, mit dem nächsten schritt anfangen kann; damit sollte es schneller durchlaufen mMn.
vorher wurde die am ende der schleife ausgeführt (jetzt auskommentiert).
da dies als MC-simulation läuft komme ich hier auf mehrere mrd. durchläufe und würde gerne die laufzeit minimieren (momentan 10h+).
wäre toll wenn jemand ein paar vorschläge hätte.
Zuletzt bearbeitet: