Convert Code_Aster MED/RMED simulation files to LIMIT .linp / .lui input format
Project description
med2limit
Convert Code_Aster MED/RMED simulation results into LIMIT .linp / .lui input files for fatigue analysis.
Features
- Shell workflows (DKT elements: S3, S4) with REPLO/CARCOQUE handling
- Linear solid workflows (C3D8 / HEXA8, C3D6 / PENTA6) with validated LIMIT node ordering
- Multi-step / multi-increment displacement and stress transfer
- Optional shell orientation file, or read directly from
IMPR_CONCEPT-embedded result file - Automatic detection of shell support level (works for shell-only and mixed hexa+shell models)
Code_aster Requirement
- Identify weld groups as Group_NO (not Group_MA), 1 node set per weld
- For shell element, extract top/bottom stresses as:
SIEF_SUP=POST_CHAMP(RESULTAT=RESU,
EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO',
NUME_COUCHE=1,
NIVE_COUCHE='SUP',),);
SIEF_INF=POST_CHAMP(RESULTAT=RESU,
EXTR_COQUE=_F(NOM_CHAM='SIEF_ELNO',
NUME_COUCHE=1,
NIVE_COUCHE='INF',),);
- For shell element, extract orientation/tichkness as:
IMPR_CONCEPT(FORMAT='MED',
UNITE=80, --> Same unit as your results or in a dedicated file
CONCEPT=(_F(CARA_ELEM=Elem,
REPERE_LOCAL='ELEM',
MODELE=Modell,),),)
Installation
Install med2limit with pip into a virtual python environnement (venv):
python3 -m venv .venv
source .venv/bin/activate
pip install git+https://github.com/simvia-tech/med2limit.git@dev
Usage
Command line
From 01_exemple in folder:
med2limit/exemples/data
med2limit 01_exemple.rmed output.linp output.lui --groups "Shell1,Shell2" --nsets "WeldNo"
With separate orientation file:
med2limit 01_exemple.rmed output.linp output.lui 01_carcoc.rmed --groups "Shell1,Shell2" --nsets "WeldNo"
01_exemple
02_exemple
Python API
from med2limit import MEDToLimitConverter
conv = MEDToLimitConverter(
med_filename="LIMIT1.rmed",
linp_filename="out.linp",
lui_filename="out.lui",
active_groups=["Shell1", "Shell2"],
active_nsets=["Weld"],
)
conv.convert()
Package layout
med2limit/
├── element_types.py # MED↔LIMIT type mapping + helpers (pure)
├── reader.py # MED file open + field lookup
├── mesh.py # nodes, elements, GROUP_MA, GROUP_NO
├── fields.py # DEPL + SIEF over all timesteps
├── orientation.py # REPLO + CARCOQUE (embedded or separate)
├── filter.py # active group selection + shell metadata mapping
├── result_mapper.py # per-timestep stress/displacement mapping
├── writer.py # .linp + .lui output
├── converter.py # orchestrator (step_1 .. step_6 + convert)
└── cli.py # CLI + in-script config
Testing
pytest # all tests
pytest tests/test_element_types.py # one module
Known limitations
- Quadratic solids (C3D10, C3D15, C3D20) — node ordering not yet validated in LIMIT
- Shell elsets with mixed thicknesses use the most-frequent value (with warning)
Acknowledgments
Special thanks to Tobias and Nikolaus for their feedback as early adopters and their patience during the iterative development of the converter.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file med2limit-0.0.1.tar.gz.
File metadata
- Download URL: med2limit-0.0.1.tar.gz
- Upload date:
- Size: 19.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e691a32adc727a9fd83e3d2f440361318f26c31467ba05e780186ee73ca3fb0a
|
|
| MD5 |
a5471db37c3b3bdc54e41485f12d3c7d
|
|
| BLAKE2b-256 |
408b904378ba4fa1051dfecec89242ab98e2ba7eb10867ad3e91c3a19ea5a7e8
|
File details
Details for the file med2limit-0.0.1-py3-none-any.whl.
File metadata
- Download URL: med2limit-0.0.1-py3-none-any.whl
- Upload date:
- Size: 20.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7ca62cd74ff69458598774475918805cee855dc76fe815dcc753ff512bcfee1
|
|
| MD5 |
d30fe2a76a9517cb8b7ccb8c3a488609
|
|
| BLAKE2b-256 |
87be60a51009d97ab3d12ac1da031fd896b185f4bd431f8967ab04db6f817310
|