Closed dumbman closed 6 years ago
Код вроде был верный. Если в конфиге немного поменять параметры:
tube_axis_start_x = 0.4
tube_axis_start_y = 0.4
tube_axis_start_z = 0.3
tube_axis_end_x = 0.4
tube_axis_end_y = 0.4
tube_axis_end_z = 0.4
заменить на
tube_axis_start_x = 0.5
tube_axis_start_y = 0.5
tube_axis_start_z = 0.3
tube_axis_end_x = 0.5
tube_axis_end_y = 0.5
tube_axis_end_z = 0.4
то все бы заработало.
В первом случае почему-то иногда генерировались частицы с отрицательными координатами по x и y. Когда у частицы отрицательная координата, индексы узлов spat_mesh для раздачи заряда считаются неправильно. При попытке обратиться в массив с зарядовой плотностью по этим индексам программа падает.
Почему генерируются отрицательные координаты мне сходу не ясно. Скорее всего ошибка была где-то в Particle_source_tube::uniform_position_in_tube. Из-за того, что была попытка сделать произвольное направление для оси трубки все получилось слишком сложно.
Пока оставил трубку только вдоль оси Z. На ближайшее время хватит, потом надо будет добавить две другие оси.
То же касается цилиндрических источников.
…to run