Concrete Material Modeling and ANSYS Implementation Using SOLID65 Elements

7 minute read

Published:

Defining Material Properties for Concrete model using SOLID 65 elements in ANSYS

1. Overview of Concrete Material Properties

Concrete is a composite material with nonlinear behavior under compressive and tensile loads. When modeling concrete in ANSYS (especially using the SOLID65 element), key material properties must be defined, including:

  • Density (ρ)
  • Elastic modulus (Ec)
  • Poisson’s ratio (ν)
  • Tensile strength (ft)
  • Yield surface models (Drucker-Prager or Multilinear Isotropic Hardening - MISO)
  • Shear transfer coefficients
  • Stress-strain curves

2. Key Material Parameters for Concrete in ANSYS using SOLID65 Elements

SOLID65 is a 3D solid element that simulates concrete cracking, crushing, and nonlinear behavior. The primary input parameters required for this element include:

ParameterDescription
Density (ρ)Defines the mass density (kg/m³)
Elastic Modulus (Ec)Defines stiffness (MPa)
Poisson’s Ratio (ν)Defines lateral strain effects
Tensile Strength (ft)Defines cracking initiation
Shear Transfer CoefficientsControls shear across cracks
Yield Surface ModelDrucker-Prager (DP) or Multilinear Isotropic Hardening (MISO)
Stress-Strain BehaviorDefines the parabolic compressive response for MISO

3. Density of Concrete

Concrete’s density depends on type and composition:

  • Normal-weight concrete: 2300 - 2500 kg/m³
  • Lightweight concrete: 1400 - 1800 kg/m³
  • Heavyweight concrete: 3000 - 5000 kg/m³

🔹 ANSYS Implementation:

MP,DENS,1,0.0024 ! Normal-weight concrete

4. Elastic Modulus and Poisson’s Ratio

(a) Eurocode Equation

Elastic modulus (Ec) for concrete is estimated using Eurocode 2:

\[E_c = 22 \times (f_c + 8)^{0.3} \quad \text{(MPa)}\]

Example for \( f_c = 40 \) MPa:

\[E_c = 22 \times (40 + 8)^{0.3} = 34,145 \text{ MPa}\]

(b) ACI Equation

According to ACI 318, the elastic modulus is:

\[E_c = 4700 \sqrt{f_c} \quad \text{(MPa)}\]

Example for \( f_c = 40 \) MPa:

\[E_c = 4700 \times \sqrt{40} = 29,748 \text{ MPa}\]

🔹 ANSYS Implementation:

MP,EX,1,34145   ! Eurocode
MP,EX,1,29748   ! ACI
MP,PRXY,1,0.2   ! Poisson's Ratio

5. Yield Surface Models

Concrete is modeled using two main yield surface models:

(a) Drucker-Prager (DP) Model

The Drucker-Prager model defines based on:

  • \(c\) = cohesion (MPa)
  • \(\phi\) = internal friction angle (°)

Interpolation for Cohesion & Friction Angle

Using data from Ertekin Öztekin et al [1]., cohesion (c) and friction angle (φ) are interpolated:

fc (MPa)Cohesion (MPa)Internal Friction Angle (°)
22.25.2527.5
30.28.1429.5
41.210.8530.9
51.912.4032.8
70.116.2236.7

Python Code for Interpolation:

import numpy as np
from scipy.interpolate import interp1d

fc_values = [22.2, 30.2, 41.2, 51.9, 70.1]
c_values = [5.25, 8.14, 10.85, 12.40, 16.22]
phi_values = [27.5, 29.5, 30.9, 32.8, 36.7]

fc_target = 40
c_interp = interp1d(fc_values, c_values, kind='linear')(fc_target)
phi_interp = interp1d(fc_values, phi_values, kind='linear')(fc_target)

print(f"Cohesion: {c_interp:.2f} MPa")
print(f"Friction Angle: {phi_interp:.2f}°")

🔹 ANSYS Implementation:

! Define Drucker-Prager Parameters
TB,DP,SOLID65_MATID
TBDATA,1,cohesion,friction_angle,0  ! Cohesion & Internal Friction Angle Interpolated

(b) Multilinear Isotropic Hardening (MISO) with Parabolic-Plastic Curve Stress-strain relationship

From PCA’s Notes on ACI 318, the compressive stress-strain relation is:

\[f_c = f_{c,max} \times (2(\epsilon/\epsilon_0) - (\epsilon/\epsilon_0)^2)\]

🔹 ANSYS Implementation [2]:

TB,MISO,SOLID65_MATID,1,8,0  
TBTEMP,22
! Assign Computed Stress-Strain Data to ANSYS
TBPT,,0,0
TBPT,,0.00036,13.1
TBPT,,0.00060,20.40
TBPT,,0.00130,35.10
TBPT,,0.00190,39.90
TBPT,,0.00200,40.00
TBPT,,0.00243,40.00
TBPT,,0.00350,40.00 

6. Concrete-Specific Properties – Cracking and Shear Transfer

Shear Transfer Coefficients

  • ShrCf-Op (Open Crack): 0.5 (normal), 0.25 (high-stress)
  • ShrCf-Cl (Closed Crack): 0.9 - 1.0

🔹 ANSYS Implementation:

TB,CONC,1,1,9
TBDATA,1,0.5,0.9,ft,-1

7. Tensile Strength

(a) Eurocode 2:

For concrete class \(\leq\) C50/60

\[f_t = 0.3 \times f_c^{2/3}\]

For concrete class \(\geq\) C50/60

\[f_{t} = 2.12 \times \ln\left(1 + \frac{f_{cm}}{10} \right) \quad \text{(MPa)}\]

🔹 ANSYS Implementation:

! Compute Tensile Strength ft Based on EC2
*IF,fc,LE,50,THEN
  ft=0.3*(fc)**(2/3)   
*ELSE
  ft=2.12*LOG(1+0.1*fc) 
*ENDIF

For \(f_c = 40\) MPa:

\[f_t = 0.3 \times 40^{2/3} = 3.5 \text{ MPa}\]

(b) ACI 318:

\[f_t = 0.623 \sqrt{f_c}\]

For \(f_c = 40\) MPa:

\[f_t = 0.623 \times \sqrt{40} = 3.94 \text{ MPa}\]

8. Complete ANSYS Code

MISO implementations

! Complete ANSYS implementation for fc = 40 MPa
!Author: Dr. Han
!Automatically determine parameters and define the material model for the SOLID65 concrete element, using the input values of fc and e0.
/PREP7
! Define Material ID
SOLID65_MATID = 1234 !Material ID
! Define Constants
f2max=40        ! Maximum compressive stress fc (MPa)
e0=0.002        ! Peak strain

! Compute Tensile Strength ft Based on EC2
*IF,f2max,LE,50,THEN
  ft=0.3*(f2max)**(2/3)   
*ELSE
  ft=2.12*LOG(1+0.1*f2max) 
*ENDIF

! Define Predefined Strain Values (ε2)
*DIM,eps_array,ARRAY,8
eps_array(1)=0.00000
eps_array(2)=0.00036
eps_array(3)=0.00060
eps_array(4)=0.00130
eps_array(5)=0.00190
eps_array(6)=0.00200
eps_array(7)=0.00243
eps_array(8)=0.00350  

! Define Stress Values Manually
*DIM,f2_array,ARRAY,8
f2_array(1)=0.0
f2_array(2)=f2max*(2*(eps_array(2)/e0)-(eps_array(2)/e0)*(eps_array(2)/e0))
f2_array(3)=f2max*(2*(eps_array(3)/e0)-(eps_array(3)/e0)*(eps_array(3)/e0))
f2_array(4)=f2max*(2*(eps_array(4)/e0)-(eps_array(4)/e0)*(eps_array(4)/e0))
f2_array(5)=f2max*(2*(eps_array(5)/e0)-(eps_array(5)/e0)*(eps_array(5)/e0))
f2_array(6)=f2max  ! Stress remains constant for ε ≥ ε0
f2_array(7)=f2max  ! Stress remains constant for ε ≥ ε0
f2_array(8)=f2max  ! Stress remains constant for ε ≥ ε0

EC=f2_array(2)/eps_array(2)

! Define Solid5 element
ET,SOLID65_MATID,SOLID65
R,SOLID65_MATID,0,0,0,0,0,0
RMORE,0,0,0,0,0
! Define Material Properties
MP,EX,SOLID65_MATID,EC  ! Young's Modulus
MP,PRXY,SOLID65_MATID,0.2  ! Poisson's Ratio
MP,DENS,SOLID65_MATID,0.0024 ! Density of Concrete  2400 (kg/m³)

! Define Concrete Material Model
TB,CONCR,SOLID65_MATID,1,9
TBTEMP,22
TBDATA,1,0.3,0.8,ft,-1  ! Tensile strength automatically calculated

! Define Multilinear Isotropic Hardening for Stress-Strain
TB,MISO,SOLID65_MATID,1,8,0  
TBTEMP,22

! Assign Computed Stress-Strain Data to ANSYS
TBPT,,eps_array(1),f2_array(1)
TBPT,,eps_array(2),f2_array(2)
TBPT,,eps_array(3),f2_array(3)
TBPT,,eps_array(4),f2_array(4)
TBPT,,eps_array(5),f2_array(5)
TBPT,,eps_array(6),f2_array(6)
TBPT,,eps_array(7),f2_array(7)
TBPT,,eps_array(8),f2_array(8) 



Drucker-Prager (DP) implementations

/PREP7
! Complete ANSYS implementation for fc = 40 MPa
!Author: Dr. Han
!Automatically determine parameters and define the material model for the SOLID65 concrete element, using the input values of fc 
! Define Material ID
!SOLID65_MATID=1  ! Concrete Material

! Define Constants
fc=40   ! Given Compressive Strength (MPa)

! Compute Young’s Modulus Ec Based on Eurocode 2
Ec=22000*(((fc+8)/10)**0.3)  ! Young's Modulus in MPa

! Define Sorted Data Points (fc, c, Ø) for Interpolation
*DIM,fc_table,ARRAY,16
fc_table(1)=22.216
fc_table(2)=24.717
fc_table(3)=30.240
fc_table(4)=40.618
fc_table(5)=41.175
fc_table(6)=45.232
fc_table(7)=51.934
fc_table(8)=53.209
fc_table(9)=56.498
fc_table(10)=58.838
fc_table(11)=61.803
fc_table(12)=62.235
fc_table(13)=70.109
fc_table(14)=71.562
fc_table(15)=81.164
fc_table(16)=84.443

*DIM,cohesion_table,ARRAY,16
cohesion_table(1)=5.245
cohesion_table(2)=5.907
cohesion_table(3)=8.142
cohesion_table(4)=9.013
cohesion_table(5)=10.849
cohesion_table(6)=10.638
cohesion_table(7)=12.403
cohesion_table(8)=12.814
cohesion_table(9)=13.807
cohesion_table(10)=13.839
cohesion_table(11)=14.319
cohesion_table(12)=14.530
cohesion_table(13)=16.228
cohesion_table(14)=16.735
cohesion_table(15)=17.875
cohesion_table(16)=18.892

*DIM,friction_table,ARRAY,16
friction_table(1)=27.497
friction_table(2)=28.765
friction_table(3)=29.479
friction_table(4)=31.087
friction_table(5)=30.904
friction_table(6)=33.071
friction_table(7)=32.805
friction_table(8)=33.897
friction_table(9)=34.184
friction_table(10)=34.564
friction_table(11)=35.368
friction_table(12)=35.572
friction_table(13)=36.732
friction_table(14)=36.399
friction_table(15)=37.133
friction_table(16)=38.636

! Linear Interpolation Function for Cohesion and Friction Angle
*DO,i,1,15
  *IF,fc,GE,fc_table(i),THEN
    *IF,fc,LE,fc_table(i+1),THEN
      ratio=(fc - fc_table(i)) / (fc_table(i+1) - fc_table(i))
      cohesion=cohesion_table(i) + ratio * (cohesion_table(i+1) - cohesion_table(i))
      friction_angle=friction_table(i) + ratio * (friction_table(i+1) - friction_table(i))
      *EXIT
    *ENDIF
  *ENDIF
*ENDDO

! Compute Tensile Strength ft Based on EC2
*IF,fc,LE,50,THEN
  ft=0.3*(fc)**(2/3)   
*ELSE
  ft=2.12*LOG(1+0.1*fc) 
*ENDIF

! Define Material Properties
MP,EX,SOLID65_MATID,Ec      ! Young's Modulus from EC2
MP,PRXY,SOLID65_MATID,0.2   ! Poisson's Ratio
MP,DENS,SOLID65_MATID,0.0024  ! Density of Concrete 2400 (kg/m³)

! Define Drucker-Prager Parameters
TB,DP,SOLID65_MATID
TBDATA,1,cohesion,friction_angle,0  ! Cohesion & Internal Friction Angle Interpolated

! Define Concrete Cracking Properties
TB,CONC,SOLID65_MATID,1,9
TBTEMP,0

! Open Crack and Closed Crack Shear Transfer Coefficients
! - `β_t = 0.3` → Shear transfer coefficient for **open cracks** (low value reduces shear after cracking)
! - `β_c = 0.8` → Shear transfer coefficient for **closed cracks** (higher value restores shear when cracks close)
! - `ft` → Tensile strength (computed from EC2)
! - `-1` → Disables crushing capability (crushing not considered)
TBDATA,1,0.3,0.8,ft,-1  
!*
ET,solid65_matid,SOLID65
!KEYOPT,solid65_matid,7,1 !Include tensile stress relaxation after cracking to help convergence
!KEYOPT,solid65_matid,6,3 !Print solution also at each integration point

References:

[1] Öztekin, E., Pul, S., & Hüsem, M. (2016). Experimental determination of Drucker-Prager yield criterion parameters for normal and high strength concretes under triaxial compression. Construction and Building Materials, 112, 725-732.

[2] Thanapon Buamongkol, ANSYS Tutorial: Learn APDL Command for SOLID65 Concrete Modeling Using ANSYS Workbench 2019, https://youtu.be/0JiKNWt095I?si=7lz3-Ja3Qj6o1dT2