Source code for omfit_classes.omfit_mmm

try:
    # framework is running
    from .startup_choice import *
except ImportError as _excp:
    # class is imported by itself
    if (
        'attempted relative import with no known parent package' in str(_excp)
        or 'No module named \'omfit_classes\'' in str(_excp)
        or "No module named '__main__.startup_choice'" in str(_excp)
    ):
        from startup_choice import *
    else:
        raise

from omfit_classes.omfit_ascii import OMFITascii
import numpy as np

__all__ = ['OMFITmmm']


[docs]class OMFITmmm(SortedDict, OMFITascii): r""" OMFIT class used to load from Multi Mode Model output files :param filename: filename passed to OMFITascii class :param \**kw: keyword dictionary passed to OMFITascii class """ def __init__(self, filename, **kw): SortedDict.__init__(self) OMFITascii.__init__(self, filename, **kw) self.dynaLoad = True
[docs] @dynaLoad def load(self): with open(self.filename, 'r') as f: lines = f.readlines()[2:] # input inUnits = lines[0].split()[1:] inVars = lines[1].split()[1:] inData = [] i = 2 for l in lines[i:]: if l[0] == '#': break i += 1 inData.append([float(d) for d in l.split()]) # ouput outUnits = lines[i + 1].split()[1:] outVars = lines[i + 2].split()[1:] outData = [] for l in lines[i + 3 :]: outData.append([float(d) for d in l.split()]) # save data for i in range(len(inVars)): self[inVars[i]] = np.transpose(inData)[i] for i in range(len(outVars)): self[outVars[i]] = np.transpose(outData)[i]