BaseTrajectoryModule#
- class BaseTrajectoryModule(name=None)[source]#
- Base implementation for Trajectory modules compatible with the Bloch simulation module as well as containing a guaranteed method for position pre-calculation on call. - All derived classes must implement the abstract method “increment_particles” which must be compatible with a tf.function decoration. The __call__ function must also be implemented but is not meant to be called inside a tf.function - Methods: - __call__(initial_positions, timing, **kwargs)- Evaluates the positions for particles at given initial positions for all times specified in the timing argument. - increment_particles(particle_positions, dt, ...)- Evaluates the new position of particles at given locations r for a temporal step width dt. - abstract __call__(initial_positions, timing, **kwargs)[source]#
- Evaluates the positions for particles at given initial positions for all times specified in the timing argument. For implementations using the increment_particles function in a loop the maximal time-delta must be specified. - Parameters:
- initial_positions ( - Tensor) – (N, 3)
- timing ( - Tensor) – (T, )
- kwargs – Can vary in concrete implementation 
 
- Return type:
- ( - Tensor,- dict)
- Returns:
- r_new [tf.Tensor, (T, N, 3)] 
- additional_fields [dict] containing the lookup values for each step 
 
 
 - abstract increment_particles(particle_positions, dt, **kwargs)[source]#
- Evaluates the new position of particles at given locations r for a temporal step width dt. If the concrete implementation involves a look up (e.g. velocity fields) the values at the old location is also returned as dictionary. - Note - concrete implementations must be compatible with tf.function decoration - Parameters:
- particle_positions ( - Tensor) – (N, 3) Current particle positions.
- dt ( - Tensor) – (,) Temporal step width in milliseconds to evaluate the next positions
- kwargs – Can vary in concrete implementation 
 
- Return type:
- ( - Tensor,- dict)
- Returns:
- r_new [tf.Tensor, (N, 3)], additional_fields [dict] containing the lookup values