Source code for sirepo.sim_data.madx
# -*- coding: utf-8 -*-
"""simulation data operations
:copyright: Copyright (c) 2020 RadiaSoft LLC. All Rights Reserved.
:license: http://www.apache.org/licenses/LICENSE-2.0.html
"""
from pykern.pkdebug import pkdc, pkdlog, pkdp
import sirepo.sim_data.lattice
[docs]
class SimData(sirepo.sim_data.lattice.LatticeSimData):
_BUNCH_REPORT_DEPENDENCIES = [
"bunch",
"commands",
"rpnVariables",
"simulation.visualizationBeamlineId",
]
[docs]
@classmethod
def fixup_old_data(cls, data, qcall, **kwargs):
super().fixup_old_data(data, qcall, **kwargs)
cls._init_models(
data.models,
(
"bunch",
"simulation",
"twissReport",
),
)
@classmethod
def _compute_job_fields(cls, data, report, compute_model):
res = super()._compute_job_fields(data, report, compute_model)
if report == "twissReport":
res += [
"beamlines",
"elements",
"simulation.activeBeamlineId",
"rpnVariables",
]
return res
@classmethod
def _lib_file_basenames(cls, data):
res = super()._lib_file_basenames(data)
if data.models.bunch.beamDefinition == "file" and data.models.bunch.sourceFile:
res += [
cls.lib_file_name_with_model_field(
"bunch", "sourceFile", data.models.bunch.sourceFile
),
]
return res