Source code for sirepo.sim_data.cortex
"""simulation data operations
:copyright: Copyright (c) 2025 RadiaSoft LLC. All Rights Reserved.
:license: http://www.apache.org/licenses/LICENSE-2.0.html
"""
from pykern.pkcollections import PKDict
from pykern.pkdebug import pkdc, pkdlog, pkdp
import re
import sirepo.sim_data
import sirepo.srtime
import sirepo.util
[docs]
class SimData(sirepo.sim_data.SimDataBase):
SUMMARY_GLOB = "*-summary.json"
[docs]
@classmethod
def fixup_old_data(cls, data, qcall, **kwargs):
cls._init_models(data.models)
[docs]
@classmethod
def lib_file_from_parts(cls, report, material_id, stat, suffix):
return f"{report}-{material_id}-{stat}.{suffix}"
[docs]
@classmethod
def lib_glob(cls, suffix):
return f"*-[0-9]*-*.{suffix}"
[docs]
@classmethod
def parts_from_lib_file(cls, filename):
m = re.search(r"^(.*?)-(\d+)-(.+)\.[^.]+$", filename)
if not m:
raise AssertionError(f"Unexpected lib filename: {filename}")
return m.group(1), int(m.group(2)), m.group(3)
[docs]
@classmethod
def parts_from_summary_file(cls, filename):
m = re.search(r"(.*?)-(.*?)-summary.json", filename)
if not m:
raise AssertionError(f"Unexpected summary filename: {filename}")
return m.group(1, 2)
[docs]
@classmethod
def summary_file_from_parts(cls, report, material_id):
return f"{report}-{material_id}-summary.json"
@classmethod
def _compute_model(cls, analysis_model, *args, **kwargs):
if "tileAnimation" in analysis_model:
return "tileAnimation"
if "slabAnimation" in analysis_model:
return "slabAnimation"
return analysis_model
@classmethod
def _lib_file_basenames(cls, data):
return []