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}