Source code for simba.Modules.Matrices.elegant

import os
from ..SDDSFile import SDDSFile
import numpy as np
from .. import constants
from ..units import UnitValue


[docs] def read_elegant_matrix_files(self, filename, reset=True): if isinstance(filename, (list, tuple)): for f in filename: read_elegant_matrix_files(self, f, reset=False) elif os.path.isfile(filename): pre, ext = os.path.splitext(filename) self.sddsindex += 1 elegantObject = SDDSFile(index=(self.sddsindex)) elegantObject.read_file(pre + ".flr") elegantObject.read_file(pre + ".mat") elegantData = elegantObject.columns() update_arrays(self, elegantData, reset=reset) elegantData = elegantObject.parameters() update_arrays(self, elegantData, reset=reset)
[docs] def update_arrays(self, elegantData, reset=True): if reset: [delattr(self, k) for k in elegantData.keys() if hasattr(self, k)] [ ( self.append(k, v.data) if hasattr(self, k) else self.initialize_array(k, v.data, units=v.unit) ) for k, v in elegantData.items() ] # if not k == 's'