CFRP-confined concrete cylinder — hardening past the unconfined peak

Wrap a plain concrete cylinder in a CFRP jacket and its load–displacement curve no longer softens — it keeps hardening past the unconfined peak. Inside the wrap, though, the concrete is damaging. CDPM2 in OOFEM reproduces both stories from one input change.

Plain concrete under uniaxial compression softens — microcracks open, stiffness drops, and the load–displacement curve descends. Wrap the same cylinder in a CFRP sheet and the macroscopic curve no longer softens: load capacity keeps growing well past the unconfined peak, often two- or three-fold. Yet if you cut a tested FRP-wrapped specimen open, the concrete inside is damaged.

The two stories are not contradictory. They come from the competition between two mechanisms. Both can be reproduced in OOFEM with CDPM2 (con2dpm) by changing only the boundary: add an array of circumferential truss hoops around the cylinder and the softening curve becomes a hardening one.

The set-up

Two companion analyses share an identical 100 mm × 200 mm concrete cylinder, the same CDPM2 parameters, and the same prescribed axial displacement of 3 mm ramped over 100 steps. They differ in one thing: the confined model has 31 intermediate circumferential CFRP hoops along the cylinder plus two endcap hoops, each meshed as truss3d elements that only carry hoop force; the unconfined model has none.

Concrete: CDPM2 with fc = 30 MPa, ft = 2.7 MPa, E = 31 GPa, ν = 0.2, dilation 0.85. CFRP: linear isotropic, E = 254 GPa, modelled with SimpleCS area = spacing × wrap thickness so the discrete hoops carry the same total hoop force per unit height as a continuous wrap.

The two responses

The unconfined cylinder (blue) reaches its peak at about 0.4 mm shortening and then softens — by the end of the run the load has dropped back below half its peak value. The CFRP-wrapped cylinder (red) carries roughly the same initial load up to the unconfined peak, then continues to harden as the wrap further engages. It reaches over 670 kN at 3 mm shortening, about three times the unconfined peak.

What the damage field shows

The compressive damage variable ω_c at the same axial strain in both specimens, sliced through a vertical mid-plane. (Tensile damage ω_t follows ω_c under this load path; ω_c is the relevant story.)

Unconfined:

Confined:

Two things stand out.

First, damage in the unconfined case localises in region in the middle of the specimen rather than spreading uniformly. That is a boundary effect, not a property of CDPM2: the prescribed-displacement BCs at the top and bottom faces fix all three DOFs at the loaded nodes, which prevents the concrete near the end-faces from expanding radially. The end zones are effectively passively confined “for free” by the BC, much like a platen-bonded cylinder, and damage migrates to the middle where the end restraint has less influence.

Second, for the confined cylinder, the CFRP wrap holds it together macroscopically, but microcrack-equivalent damage spreads through the mid-region of the concrete. This matches what is observed experimentally when FRP-wrapped specimens are cut open: the wrap is intact and the load–displacement curve never softened, yet the interior concrete shows damage.

The mechanism in one sentence

As the concrete damages its stiffness drops and lateral expansion accelerates; the CFRP wrap reacts elastically to that expansion and applies a passive confining pressure; the increased confinement pushes the stress state up the CDPM2 yield surface fast enough to outrun the damage-driven stiffness loss, so the axial load capacity keeps growing. The two effects are competing, and under CFRP confinement the confinement wins.

Why model the wrap as truss hoops

A CFRP wrap is strongly orthotropic — stiff along the fibres, compliant across them. A wrap wound circumferentially carries hoop force essentially without contributing axial or shear stiffness, so modelling it as truss3d elements in the hoop direction is the right discretisation. A continuum shell would impose an axial stiffness that the real material does not have. The hoop spacing is controlled in the T3D mesh; each hoop’s SimpleCS area is set to spacing × wrap thickness so the discrete hoops integrate to the same total per-unit-height hoop force as a continuous wrap of that thickness (here t = 0.334 mm, s = 6.25 mm). The spacing of the hoops is chosen to be smaller than the average element length, so that all surface nodes of the cylinder are connected to the hoops.

Reproduce

The committed oofem.in files mean you do not need T3D to rerun the analyses — only OOFEM. Use the public image:

git clone https://github.com/githubgrasp/oofem-examples.git
cd oofem-examples/column-frp-confined
docker run --rm -v "$PWD":/work \
  ghcr.io/githubgrasp/oofem-public:column-frp-confined bash run-all.sh

The :column-frp-confined tag is immutable — use :latest instead to track the current OOFEM build (results may drift slightly as the code evolves). If you want to regenerate the mesh from mesh.in (e.g. to change the cylinder geometry or wrap layout) you need T3D, which is bundled in the private image; see the student-projects page for setup.

Each ld.dat is committed alongside oofem.in, so you can compare your run against the reference curve without waiting for the analysis to finish (unconfined ~30 min, confined ~10 min on a typical workstation).

The example folder is at github.com/githubgrasp/oofem-examples/tree/main/column-frp-confined; issues and questions go on the issue tracker.

Built with OOFEM.

← All posts