def __init__(self, field, observed_component=None, steps_per_frame=10, scale=1,
frame_delay=1e-2):
"""Class constructor.
Args:
field: Field to be observed.
observed_component: Component to be observed (as string).
steps_per_frame: Simulation steps between updates of the animation.
scale: Scale of the animation.
frame_delay: Delay between animation updates.
"""
self.field = field
self.field_components = {name: getattr(self.field, name) for name in dir(self.field)
if type(getattr(self.field, name)) == fld.FieldComponent}
if observed_component:
if observed_component in self.field_components.keys():
self.observed_component = observed_component
else:
raise KeyError('Field component {} not found in given field.'
.format(observed_component))
else:
self.observed_component = list(self.field_components.keys())[0]
self.steps_per_frame = int(steps_per_frame)
self.scale = scale
self.frame_delay = frame_delay
self.show_boundaries = True
self.show_materials = True
self.show_output = True
self._plot_queue = mp.Queue()
self._x_axis_prefix, self._x_axis_factor = get_prefix(max(self.field.x.vector))
self._t_prefix, self._t_factor = get_prefix(max(self.field.t.vector))
self.axes = None
self.plot_title = ''
self.x_label = '$x$'
self.time_precision = 2
评论列表
文章目录