Проблема при объявлении x = somelist.append и использовании x для добавления некоторого значения в somelist - PullRequest
0 голосов
/ 04 августа 2020

В следующем коде в первом if T < 2.3 есть строка, в которой используется переменная self_magnetization_evolution_append, объявленная перед запуском l oop. Это правильно добавляет результат метода self.calc_magnetization() в список self.magnetization_evolution. Однако, когда я ссылаюсь на ту же переменную внутри блока else, она ничего не добавляет. Я проверил, что self.calc_magnetization() производит вывод, и программа действительно находится внутри l oop for mcstep in range(mc_post_eqsteps). Есть идеи, что происходит?

Tlist = np.arange(Ti, Tf, step)

        self_magnetization_evolution_append = self.magnetization_evolution.append
        self_magnetization_append = self.magnetization.append
        for T in Tlist:

            if T < 2.3:

                for gilstep in range(gil_eq_steps):
                    self.continuous_time_step(T, 0, False)
                for gilstep in range(gil_post_eqsteps):
                    self.continuous_time_step(T, 0, False)
                    self_magnetization_evolution_append(self.calc_magnetization())

            else:
                for mcstep in range(int(mc_eq_steps)):
                    self.metropolis_step(T)
                for mcstep in range(mc_post_eqsteps):
                    self.metropolis_step(T)
                    self_magnetization_evolution_append(self.calc_magnetization())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...