Skip to content

About

Multi-scale FE2 simulation framework for powder compaction in Abaqus with RVE placement and periodic boundary conditions.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Direct FE2 for Powder Compaction in Abaqus

Overview

This repository contains Python scripts for implementing Direct FE2 (Finite Element Squared - two-scale) analysis for powder compaction processes using Abaqus. The FE2 method enables multi-scale simulation by coupling macroscale and microscale models through representative volume elements (RVEs) placed at each Gauss point.

Two distinct simulation frameworks are provided:

  1. Mechanical Simulation - For pure mechanical analysis
  2. Thermo-Mechanical-Electrical Simulation - For coupled thermo-mechanical-electrical analysis

Directory Structure

direct_fe2_abaqus/
├── 3D_RVE.png                              # Reference image for RVE configuration
├── Tan-plastic.pdf                         # Material properties reference
├── readme.docx                             # Original documentation
│
├── 3D_DFE2_Powder_Mechanical/                 # Mechanical Simulation
│   ├── 1_Micro_RVE_placement_3DFE2.py     # RVE placement at Gauss points
│   ├── 2_Surface_Interface.py              # Surface interface treatment
│   ├── 3_Input_PBC_Condition_3DFE2.py     # Periodic boundary conditions
│   └── README.md                           # Additional documentation
│
└── 3D_DFE2_Powder_ThermoMechanicalElectrical/  # Coupled Analysis
    ├── 1_Micro_RVE_placement_3DFE2_TM.py       # RVE placement (TM variant)
    ├── 2_Surface_Interface.py                  # Surface interface treatment
    ├── 3_Input_PBC_Condition_3DFE2_TM.py      # Periodic boundary conditions (TM variant)
    └── git_Abaqus_Files/
        ├── Powder_Master_ETM.cae               # Master Abaqus model (ETM)
        └── Powder_Master_ETM.jnl               # Abaqus journal file

Project Description

3D_DFE2_Powder_Surface (Mechanical Simulation)

This module implements a 3D Direct FE2 framework for mechanical powder compaction analysis:

Scripts:

  1. 1_Micro_RVE_placement_3DFE2.py

    • Automatically places microscale RVEs at each Gauss point of the macroscale mesh
    • Extracts nodes and element connectivity from the input .inp file
    • Computes natural coordinate positions of 8 Gauss points (C3D8R elements)
    • Generates a Python script to instantiate RVEs in the Abaqus assembly
  2. 2_Surface_Interface.py

    • Handles surface interactions between adjacent RVEs
    • Manages interface constraints and contact definitions
    • Creates necessary surface sets according to the reference image (3D_RVE.png)
  3. 3_Input_PBC_Condition_3DFE2.py

    • Implements Periodic Boundary Conditions (PBC) for the microscale RVE
    • Enforces displacement periodicity and anti-periodicity
    • Applies homogenization constraints up to 8 Gauss points
    • Computes shape functions with controlled accuracy (default: 7 significant figures)

3D_DFE2_Powder_ThermoMechanicalElectrical (Coupled Analysis)

This module extends the mechanical framework to include thermal and electrical effects:

Key Differences:

  • Uses Q3D8 elements (thermal-mechanical elements with electrical coupling)
  • Handles 6 loops for temperature and voltage calculations
  • Compatible with Powder_Master_ETM.cae master model
  • Scripts follow same structure with _TM suffix for thermo-mechanical variants

Workflow

Setup Instructions

Prerequisites

  • Abaqus 2016 or later
  • Python 2.7 (for Abaqus scripting) or compatible version
  • NumPy library
  • Access to the example CAE files in git_Abaqus_Files/

Configuration Steps

Before running the scripts, update the following parameters in each Python file:

# Step 1: Set Input Directory
Inp_Directory = 'E:\\2_AbaqusWorkingDir\\3D_Powder_Mechanical\\Powder_DFE2'
Inp_File_Name = 'Powder_V0.inp'

# Step 2: Define Model Configuration
RVE_part_name = 'Powder-mesh-1'       # Must match GUI part name
macro_part_name = 'MACRO'              # Macroscale mesh part name
macro_instance_name = 'MACRO-1'        # Instance name in assembly

# Step 3: Set RVE Properties
RVE_center = (0.5, 0.5, 0.5)           # RVE center coordinates
lx, ly, lz = 1.0, 1.0, 1.0             # RVE dimensions

Execution Order

  1. Prepare Macroscale Model

    • Create macroscale mesh in Abaqus GUI
    • Export to .inp file
  2. Create Microscale RVE

    • Define RVE geometry in Part module
    • IMPORTANT: Create mesh part (do NOT copy 2D parts)
    • Create sets according to 3D_RVE.png reference image
    • Export to .inp file
  3. Run Step 1: RVE Placement

    python 1_Micro_RVE_placement_3DFE2.py
    • Generates RVE instances at all Gauss points
    • Creates Python model generation script
  4. Run Step 2: Surface Interface (if needed)

    python 2_Surface_Interface.py
    • Applies surface interactions
    • Creates contact definitions
  5. Run Step 3: Periodic Boundary Conditions

    python 3_Input_PBC_Condition_3DFE2.py
    • Implements PBC constraints
    • Generates final .inp file with all constraints
  6. Submit Analysis

    • Import modified .inp file into Abaqus
    • Run simulation through Abaqus/Standard or Abaqus/Explicit

Important Notes

3D RVE Configuration

Reference image showing the 3D RVE mesh structure and set definitions. Follow this configuration when creating microscale mesh sets in Abaqus.

  • Follow the reference image 3D_RVE.png for correct set definitions
  • Create sets on the microscale RVE before export
  • Sets include:
    • Face sets (for PBC application)
    • Node sets (for constraint mapping)
    • Surface sets (for contact/interaction)
  • Create mesh part in Abaqus (Below the RVE mesh, mesh>creat mesh part).

About

Multi-scale FE2 simulation framework for powder compaction in Abaqus with RVE placement and periodic boundary conditions.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages