Skip to content

AttributeError: 'GaussianDC' object has no attribute '_radius'

Exception in thread Thread-2:
Traceback (most recent call last):
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/threading.py", line 1041, in _bootstrap_inner
    self.run()
    ~~~~~~~~^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/control/threading.py", line 176, in run
    self._simulation.run()
    ~~~~~~~~~~~~~~~~~~~~^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/timings.py", line 32, in wrapper
    result = method(self, *args, **kwargs)
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/simulation.py", line 109, in run
    self._execute(iteration)
    ~~~~~~~~~~~~~^^^^^^^^^^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/simulation.py", line 248, in execute
    self._particle_tracking.propagate_particles(self._progress)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/timings.py", line 32, in wrapper
    result = method(self, *args, **kwargs)
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/particle_tracking/manager.py", line 90, in propagate_particles
    self.initialize(queued_particles, progress)
    ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/timings.py", line 32, in wrapper
    result = method(self, *args, **kwargs)
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/particle_tracking/manager.py", line 70, in initialize
    self._model.initialize(particles, progress)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/particle_tracking/models.py", line 273, in initialize
    self.runge_kutta.propagate(particles, progress)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/particle_tracking/models.py", line 179, in propagate
    E = self.electric_field_for(particles, progress)
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/particle_tracking/models.py", line 83, in electric_field_for
    return self._em_fields.electric_field_at(particles.position_four_vector, progress)
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/timings.py", line 32, in wrapper
    result = method(self, *args, **kwargs)
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/particle_tracking/em_fields/__init__.py", line 78, in electric_field_at
    return sum(map(
        lambda manager: manager.electric_field_at(position_four_vectors, progress),
        self._field_managers
    ))
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/particle_tracking/em_fields/__init__.py", line 79, in <lambda>
    lambda manager: manager.electric_field_at(position_four_vectors, progress),
                    ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/timings.py", line 32, in wrapper
    result = method(self, *args, **kwargs)
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/beams/beams.py", line 95, in electric_field_at
    return sum(map(
        lambda beam: beam.electric_field_at(position_four_vectors, progress),
        self._beams
    ))
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/beams/beams.py", line 96, in <lambda>
    lambda beam: beam.electric_field_at(position_four_vectors, progress),
                 ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/beams/factory.py", line 173, in electric_field_at
    return sum(map(
        lambda bunch: bunch.electric_field_at(position_four_vectors, progress),
        self._bunch_train.relevant_bunches(progress)
    ))
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/beams/factory.py", line 174, in <lambda>
    lambda bunch: bunch.electric_field_at(position_four_vectors, progress),
                  ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/beams/bunches/bunch.py", line 226, in electric_field_at
    return self.electric_and_magnetic_field_at(position_four_vectors, progress)[0]
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/beams/bunches/bunch.py", line 271, in electric_and_magnetic_field_at
    * self._bunch_electric_field_model.eval(
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        self.compute_positions_in_bunch_frame(position_four_vectors)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/home/username/miniconda3/envs/vipm-sim/lib/python3.13/site-packages/virtual_ipm/simulation/beams/bunches/electric_field_models.py", line 120, in eval
    / (2 * constants.pi * constants.epsilon_0 * self._shape._radius**2)
                                                ^^^^^^^^^^^^^^^^^^^
AttributeError: 'GaussianDC' object has no attribute '_radius'
Edited by Lukas Golino