A coupled multiphysics finite element implementation for moisture diffusion in epoxy materials with stress-assisted transport mechanisms.
This project implements a User Element (UEL) for ABAQUS that simulates the coupled hydro-mechanical behavior of moisture diffusion in polymer materials. The element captures bidirectional coupling between mechanical stress fields and moisture transport phenomena, making it a multiphysics simulation.
- Stress-assisted diffusion: Hydrostatic stress influences moisture transport
- Coupled field equations: Simultaneous solution of mechanical and diffusion problems
- Nonlinear coupling: Stress gradients create preferential diffusion pathways
- 🔧 Multiphysics Coupling: Stress-assisted diffusion with hydrostatic stress influence
- 🧮 20-Node Elements: Quadratic hexahedral elements with 80 DOF (60 mechanical + 20 concentration)
- ⚡ Monolithic Solution: Simultaneous solution of mechanical and diffusion fields
- 🔗 ABAQUS Integration: Full integration with ABAQUS Standard
- 📊 Visualization Support: MATLAB tools for result post-processing
- 🧪 Material Flexibility: Configurable material properties for different polymers
∂c/∂t = ∇·(D∇c) - (D·Vh)/(R·T) ∇·(σh∇c)
↑_______↑ ↑_________________↑
Pure diffusion Stress-assisted term
∇·σ = 0
σ = D:(ε - εswelling)
κ = Vh/(R·T) = 8000/(8314.5 × 300) ≈ 3.2 × 10⁻³ MPa⁻¹
Where:
c
: Moisture concentration [mol/mm³]D
: Diffusion coefficient [mm²/s]σh
: Hydrostatic stress [MPa]Vh
: Molar volume of water (8000 mm³/mol)R
: Gas constant (8314.5 J/(mol·K))T
: Temperature (300 K)
- ABAQUS Standard 2020 or later
- Intel Fortran Compiler (part of ABAQUS installation)
- MATLAB R2018a or later (for visualization)
- Windows/Linux operating system
-
Download the UEL
git clone https://github.com/BBahtiri/ABAQUS-Multiphysics-Diffusion-UEL.git cd ABAQUS-Multiphysics-Diffusion-UEL
-
Run ABAQUS analysis
abaqus -standard -job MyAnalysis -user Diffusion_3D.for
-
Generate visualization mesh (MATLAB)
% Place your ABAQUS input file as 'CT.inp' run('VisualMesh.m')
-
Post-process results in ABAQUS/Viewer
*USER ELEMENT, NODES=20, TYPE=U1, PROPERTIES=3, COORDINATES=3, VAR=128
1,2,3
1,11
*ELEMENT, TYPE=U1, ELSET=SOLID
1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20
*UEL PROPERTY, ELSET=SOLID
210000., 0.3, 0.0127
! E [MPa], ν [-], D [mm²/s]
- Tensile stress (σh > 0): Enhances diffusion by opening material microstructure
- Compressive stress (σh < 0): Reduces diffusion by closing pore networks
- Stress gradients: Create preferential diffusion pathways
The coupling term (Vh/RT)∇·(σh∇c)
represents:
- Pressure-driven moisture transport
- Stress-concentration effects
- Hydrostatic stress influence on chemical potential
- Element Type: 20-node quadratic hexahedral (C3D20-like)
- Integration: 8-point Gauss quadrature
- DOF: 80 total (3 displacement + 1 concentration per node)
- Time Integration: Backward Euler for diffusion
- Convergence: Monolithic Newton-Raphson
- Composite laminates: Carbon fiber/epoxy moisture absorption
- Environmental certification: Hot/wet qualification testing
- Stress concentration: Bolt holes and cutouts in humid environments
- Underwater structures: Pressure vessel moisture penetration
- Adhesive joints: Combined mechanical and environmental loading
- Fatigue analysis: Moisture-assisted crack growth
- IC encapsulation: Moisture diffusion under thermal cycling
- Reliability testing: Combined thermal-mechanical-moisture effects
- Delamination prediction: Interface failure mechanisms
- Bridge components: Moisture penetration under traffic loads
- Protective coatings: Mechanical damage accelerating moisture ingress
- Durability assessment: Long-term environmental degradation
Property | Symbol | Value | Unit |
---|---|---|---|
Young's Modulus | E | 3000-4000 | MPa |
Poisson's Ratio | ν | 0.35-0.40 | - |
Diffusion Coefficient | D | 1×10⁻³ - 1×10⁻² | mm²/s |
Molar Volume (Water) | Vh | 8000 | mm³/mol |
Temperature | T | 300 | K |
- Temperature dependence: D = D₀ exp(-Q/RT)
- Concentration dependence: D = D₀(1 + βc)
- Stress dependence: Implemented through coupling term
*UEL PROPERTY, ELSET=MATERIAL_A
! E [MPa], ν [-], D_step1 [mm²/s], D_step2 [mm²/s]
3500., 0.37, 0.008, 0.012
! Moisture flux boundary condition
*DFLUX
NodeSet_Surface, 11, 1.0E-6
! Concentration boundary condition
*BOUNDARY
NodeSet_Exposed, 11, 11, 0.1
*STEP, NAME=Drying
*COUPLED TEMPERATURE-DISPLACEMENT, STEADY STATE
! Use D = props(3)
*STEP, NAME=Loading
*COUPLED TEMPERATURE-DISPLACEMENT
! Use D = props(4)
- Pure diffusion (σ = 0) vs. Fick's law
- Stress-free moisture uptake
- Simple tension with diffusion
- Complex loading scenarios
- Moisture uptake curves
- Stress-strain response
- Coupled behavior validation
Variable | Description | Access |
---|---|---|
U1, U2, U3 | Displacements | Standard ABAQUS output |
NT | Concentration (as temperature) | Field output |
SDV1-SDV6 | Stress components | State variables |
SDV7-SDV12 | Strain components | State variables |
SDV14 | Hydrostatic stress | State variables |
# Python script for ODB processing
from abaqus import *
from abaqusConstants import *
odb = openOdb('Analysis.odb')
step = odb.steps['Loading']
frame = step.frames[-1]
# Extract concentration field
concentration = frame.fieldOutputs['NT']
# Extract stress components
stress_xx = frame.fieldOutputs['SDV1']
hydrostatic = frame.fieldOutputs['SDV14']
Contributions are welcome! Please feel free to:
- 🐛 Report bugs via Issues
- 💡 Suggest features or improvements
- 🔧 Submit pull requests with enhancements
- 📖 Improve documentation
- 🧪 Add validation cases
- Follow Fortran 90+ standards
- Include test cases for new features
- Update documentation accordingly
- Maintain backward compatibility
If you use this code in your research, please cite:
@software{bahtiri2025abaqus,
title={ABAQUS Multiphysics Diffusion UEL: Coupled Stress-Diffusion Analysis},
author={Bahtiri, Betim},
year={2025},
url={https://github.com/BBahtiri/ABAQUS-Multiphysics-Diffusion-UEL},
note={User Element for coupled hydro-mechanical analysis in ABAQUS}
}
This project is licensed under the MIT License - see the LICENSE file for details.
- GitHub: @BBahtiri
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- ABAQUS User Community for documentation and examples
- Research community in computational mechanics
- Open source contributors and users
Made with ❤️ for the computational mechanics community
Star ⭐ this repository if you find it useful!