in3Utils.cfgUtils.parseSimName

parseSimName(name)[source]

Parse simulation name handling both old and new formats.

Auto-detects: - Old format: relName_simHash_defID_[frictIndi]_simType_modelType[_layer][_resType][_timeStep] - New format: relName_simHash_modName_defID_[frictIndi]_simType_modelType[_layer][_resType][_timeStep] [ ] denotes optional items Layer component matches pattern L followed by digits (e.g., L1, L2, L12)

Parameters

name (str) – Simulation name or full filename to parse

Returns

Dictionary with keys: - releaseName: str (required) - simHash: str (required) - modName: str (required, “NA” for old format) - defID: str (required, defaults to “C”) - frictIndi: str | None (optional, values: “S”, “M”, “L”) - simType: str (required) - modelType: str (required) - layer: str | None (optional, e.g., “L1”, “L2”) - resType: str | None (optional, only in filenames) - timeStep: str | None (optional, only in filenames)

Return type

dict

Raises

ValueError – If required components are missing or format is invalid

Examples

>>> parseSimName("release1_a1b2c3_C_S_ent_dfa")
{'releaseName': 'release1', 'simHash': 'a1b2c3', 'modName': 'NA', 'defID': 'C',
 'frictIndi': 'S', 'simType': 'ent', 'modelType': 'dfa', 'resType': None, 'timeStep': None}
>>> parseSimName("release1_a1b2c3_com1_C_S_ent_dfa")
{'releaseName': 'release1', 'simHash': 'a1b2c3', 'modName': 'com1', 'defID': 'C',
 'frictIndi': 'S', 'simType': 'ent', 'modelType': 'dfa', 'resType': None, 'timeStep': None}