Source code for gtsimulation.MagneticFields.summed_field

from datetime import datetime

from gtsimulation.MagneticFields import AbsBfield


[docs] class Summed(AbsBfield): def __init__(self, models, **kwargs): super().__init__(**kwargs) self.ModelName = "Summary" self.models = models
[docs] def CalcBfield(self, x, y, z, **kwargs): Bx_s, By_s, Bz_s = 0, 0, 0 for model in self.models: Bx, By, Bz = model.CalcBfield(x / model.ToMeters, y / model.ToMeters, z / model.ToMeters) Bx_s += Bx By_s += By Bz_s += Bz return Bx_s, By_s, Bz_s
[docs] def UpdateState(self, new_date: datetime): for model in self.models: if hasattr(model, "UpdateState"): model.UpdateState(new_date)
[docs] def to_string(self): s = f"""Summed #-#-#-#-#-#-#-#-#\n""" for model in self.models: s += "\t\t"+model.to_string() s += "\n\t\t#-#-#-#-#-#-#-#-#\n" return s