IRIS
IRIS Finite Element Code — Main Features
IRIS is a general-purpose finite element program designed for computational solid, fluid, and structural mechanics. It emphasizes clarity, extensibility, and research flexibility while maintaining good performance for medium to large problems.
🔑 Key Characteristics
- Handles linear and nonlinear problems.
- Supports quasistatic and transient analyses.
- Provides a flexible input language for defining models and analyses.
- Built in C++, using external high-performance libraries for linear algebra.
🧩 Element Library
IRIS offers a wide range of elements for different physics:
- Solid mechanics: small strain and finite strain solids, displacement-based, mixed, and enhanced formulations.
- Fluid mechanics: Stokes and Navier–Stokes elements with stabilization (SUPG, GLS, VMS, OSS).
- Thermal analysis: elements for (nonlinear) Poisson and diffusion equations.
- Special analyses: topology optimization, eigenvalue/mode computation, dispersion diagrams.
🧪 Material Models
Implemented through the MUESLI library:
- Elastic (small strain isotropic).
- Elastoplastic (von Mises, Tresca, Drucker-Prager with isotropic/kinematic hardening).
- Thermal conductors (Fourier-type heat conduction).
- Extensions possible by adding custom models.
⚙️ Solvers and Integration
Nonlinear Step Solvers
- Newton–Raphson
- Quasi-Newton
- Nonlinear Conjugate Gradient (NLCG)
- Adaptive Dynamic Relaxation
- Explicit and Fractional step methods
Linear Solvers
Interfaces with multiple sparse direct and iterative solvers:
- SuperLU, LDL, Pardiso, WSMP, HSL, PETSc wrappers, and PCG.
Time Integration
- Quasistatic solver
- Implicit: Backward Euler, Newmark, Hilber–Hughes–Taylor (HHT), Midpoint
- Explicit: Central Differences, Verlet
- CFL-based or adaptive time stepping available.
📊 Analysis Types
- Controlled load/displacement analysis
- Eigenvalue and spectral analysis
- Harmonic analysis
- Dispersion analysis
- Inf-sup analysis for mixed formulations
- Stationary (quasistatic) and transient dynamics
- Topology optimization
- Staggered multi-physics analysis
🛠️ Input and Preprocessing
- Plain text
.irisinput files with modular commands. - Built-in primitives: brick, sphere, cylinder, torus, etc.
- Imports meshes from Gmsh or Abaqus.
- Supports node sets, element sets, boundary conditions, and time-dependent loads via scaling functions.
📤 Output and Postprocessing
- Log files with solver and iteration details.
- Result files (stresses, strains, displacements, energies, etc.).
- Reaction logs for boundary condition verification.
- Compatible with external visualization tools (e.g., Gmsh).
📚 External Libraries
- BLAS/LAPACK — basic linear algebra.
- Intel TBB — multithreading.
- SuperLU, WSMP, Pardiso, HSL, LDL — sparse solvers.
- PETSc — linear and nonlinear solvers, preconditioners, ODE integrators.
- MUESLI — material models.
- Gmsh — mesh generation and postprocessing.
🎯 Philosophy
- Focus on clarity and extensibility over raw speed.
- Uses external high-performance libraries for computational bottlenecks.
- Designed as a research and teaching platform, enabling the addition of new solvers, elements, or material models without breaking existing functionality.
📘 User manual
A user manual can be freely accessed.