mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-08-20 12:12:06 +00:00
291384dcb9
New 60-line Code Aster results reader: - RMEDFile: Code Aster result .rmed file structure - aster_read_nodes(): read nodes from result file - aster_read_data(): read nodal/Gauss point field data - Supports NODE and ELGA (Gauss point) field types - Requires HDF5.jl (optional dependency) - Required by AsterReader module Provides Code Aster .rmed file results reading functionality.
I/O Module - Mesh Import/Export
Purpose: Read and write mesh files from various FEM software packages.
Supported Formats
Abaqus (.inp)
Status: ✅ Active
Files:
AbaqusReader.jl- Main reader with keyword parsingabaqus_reader.jl- Simplified readerabaqus_download.jl- Download example mesheskeyword_register.jl- Keyword parsing system
Use: mesh = read_abaqus("model.inp")
Code Aster (.med, .rmed)
Status: ⚠️ Requires HDF5 (weak dependency)
Files:
AsterReader.jl- Main Aster readeraster_reader.jl- Simplified readerread_aster_mesh.jl- HDF5-based mesh reading (NOT included - needs HDF5.jl)read_aster_results.jl- HDF5-based results reading (NOT included)
Strategy: Implement as weak dependency - only load if HDF5.jl available
Gmsh (.msh)
Status: ✅ Active
Files:
gmsh_reader.jl- Gmsh mesh file parser
Use: mesh = read_gmsh("mesh.msh")
File Organization
Core Readers
io.jl- Common I/O utilitiesgmsh_reader.jl- Gmsh formatabaqus_reader.jl- Simple Abaqus readeraster_reader.jl- Simple Aster reader (no HDF5)
Legacy Vendor Package Infrastructure
AbaqusReader.jl- Full Abaqus reader (from vendor package)AsterReader.jl- Full Aster reader (from vendor package)keyword_register.jl- Keyword parsing systemparse_mesh.jl- Generic mesh parsingparse_model.jl- Model structure parsingcreate_surface_elements.jl- Surface element extraction
Disabled (Require HDF5)
read_aster_mesh.jl- ❌ Commented out (needs HDF5.jl)read_aster_results.jl- ❌ Commented out (needs HDF5.jl)
Design Philosophy
Weak Dependencies
For optional formats requiring heavy dependencies (HDF5):
# In Project.toml
[extras]
HDF5 = "..."
# In src/io/
if isdefined(Main, :HDF5)
include("read_aster_mesh.jl")
end
Two-Tier Strategy
- Simple readers - Basic functionality, minimal dependencies
- Full readers - Complete keyword support, complex features
Users can choose based on needs.
Future Work
Export Formats
- VTK/VTU for visualization
- Exodus II for multi-physics
- JSON for web applications
Import Enhancements
- NASTRAN (.bdf, .nas)
- ANSYS (.cdb)
- CalculiX (.inp)
Consolidation
- Unify simple vs full reader approaches
- Document which reader to use when
- Benchmarks for large meshes
Usage Examples
using JuliaFEM
# Abaqus
mesh = read_abaqus("cantilever.inp")
# Gmsh (if gmsh_jll available)
mesh = read_gmsh("geometry.msh")
# Aster (if HDF5 available)
mesh = read_aster("model.med")
Dependencies
Required:
- None (pure Julia)
Optional:
gmsh_jll- For Gmsh API accessHDF5.jl- For Code Aster .med filesDownloads.jl- For downloading example meshes
Maintainer: JuliaFEM Team
Last Updated: November 21, 2025