Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations pierreick on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Bi-axial bending chart - concrete column 29

Pretty Girl

Structural
Nov 22, 2022
118
This is from "Reinforced concrete design to eurocodes" by prab bhat, page 371 and 372.
It has mentioned the it's for My/ (hb^2) = 2.

But I don't know how to reproduce with that ratio kept constant. So, I tried to create it with making the alpha and beta values at a constant ratio of 0.8 (beta = 0.8 alpha). Then I produced a chart.

Since I didn't reproduce the exact chart in the book, now I have another problem. I have got no reference chart to compare my chart with. Can anyone kindly help me find out if my chart is correct for the column dimensions and data I provided.

Are there any free software/ excel sheet to enter the column details mentioned below and compare it with my chart?

I'm concerned that my chart may not be correct as I don't see the part the book's chart have I have shown in the green rectangle below, when I produce my chart. I understand it cannot be the same chart, but if my chart is correct that "nose" like curve should also be in my chart isn't it.

1. Chart from the book

1734934729980.png
Untitled 5.jpg



2. The chart I produced

This is a rectangular column, h = 2000 mm, b = 1000 mm. I maintained "beta/ alpha ratio = 0.8".
4 reinforcement bars, 1 bar each corner. Steel percentage 4% (So, 1% bh area for each bar).
40 mm distance from column surface to the centroid of r/f for each bar.
fck = 30 MPa, fcd = 20 MPa, fyk = 500 MPa, fyd = 434.7 MPa.


Screenshot 2024-12-23 at 5.14.55 pm.png

Screenshot 2024-12-23 at 5.14.33 pm.png
Screenshot 2024-12-23 at 5.14.21 pm.png
 
Last edited:
Replies continue below

Recommended for you

A couple of points regarding the reduction in maximum strain:

The reduction is not just for pure compression. With increasing axial load and reducing bending moment, the full strain at the compression face is maintained until the NA reaches the bottom of the section. From that point the strain at (approximately) mid-height is maintained constant, at 0.00175 or 0.002, and the strain at the compression face reduces.

On the other hand, under pure compression the stress distribution is exactly the same for the parabolic-rectangular and the uniform stress block. They both have uniform strain and stress across the full section, so it makes no sense to me to require a reduced strain for the uniform stress block. My suggested procedure is:

1) Find the section capacity with the NA at the base of the section and the full compressive strain at the top face.
2) Find the axial load for uniform stress across the full section with a strain of 0.002 (or as required for higher strength concrete)
3) Use linear interpolation to find the maximum axial load with the specified minimum load eccentricity, and section capacity for any intermediate axial loads.

Also note that for uniform compression the 0.9 reduction factor for triangular sections is not required, because again the parabolic-rectangular and the full uniform stress block have exactly the same stress distribution in this case.

@IDS
To confirm what you have said above in step 1 to 3, are you saying to do the following, or something similar? Can you pls provide exact steps like the following.
So, this is completely different than the one we did in your spreadsheet to find strain, isn't it.

NA at bottom
1) Move NA to bottom
2) Get concrete force (Cc) with 0.85 * fc * compression block area
3) Get strain per mm length, with, 0.0035/h
4) Get strain of the steel, with, (0.0035 - ((0.0035/h) * distance to steel from bottom)
5) Get stress fs with, (0.0035 - ((0.0035/h) * distance to steel from bottom) * 200,000 = lets say we got 700 MPa and we're capping it at 500 MPa.
6) Get steel force (Cs) with, 500 MPa * total steel area of the 4 bars
7) Get total force (P1) with, Cc + Sc
8) Get moment with, ???

At pure compression (using strain 0.002)
9) Get Cc with, 0.85 * fc * hb
10) Get fs with, 0.002 * 200,000 = 400 MPa
11) Get steel force (Cs) with, 400 MPa * total steel area of the 4 bars
12) Get P2 with, Cc + Cs
13) Get moment M2 = 0

Interpolation
14) Get weight with (w), (P - P1)/(P2-P1)
15) so strain at top = (0.0035 - (P - P1)/(P2-P1)) * (0.0035 - 0.002) , and lets say we got 0.0025 as strain
16) at mid half (250 mm) we cap strain 0.00175 (or 0.002)
17) below mid half (250 mm +) we keep the constant strain 0.00175 (or 0.002)

Concrete force
18) Upper half compression block depth (0 to 250 mm) = (0.0025*0.002) / ((0.0025 - 0.00175)/250) * 0.8 = 190.47 mm * 0.8 = 152.38 mm
19) Upper half force (U) (0-250 mm) = 0.85 * fcd * block depth * b = 0.85 * 22.667 N/mm2 * 152.38 mm * 250mm = 733.97 kN
20) Lower half concrete force = 0.8 * 250 mm * fcd * 250 mm = 1113 kN.

Total Lower + upper = 733.97 + 1113 = 1846.97 kN
 
You are over-complicating again.

1) The basic principle that plane sections remain plane still applies, so the strain line is always a straight line from top to bottom.
2) You don't need to calculate the strains for the sections where the NA is outside the section. I am suggesting a straight line interpolation for axial force and bending moment between the section with the NA at the bottom and the section with uniform strain.

The procedure is:
1) Calculate the axial force and bending moment when the NA is at the bottom of the section.
2) Calculate the axial force for uniform strain. If the reinforcement is not symmetrical also calculate the bending moment.
3) Draw a straight line between those two points.
 
You are over-complicating again.

1) The basic principle that plane sections remain plane still applies, so the strain line is always a straight line from top to bottom.
2) You don't need to calculate the strains for the sections where the NA is outside the section. I am suggesting a straight line interpolation for axial force and bending moment between the section with the NA at the bottom and the section with uniform strain.

The procedure is:
1) Calculate the axial force and bending moment when the NA is at the bottom of the section.
2) Calculate the axial force for uniform strain. If the reinforcement is not symmetrical also calculate the bending moment.
3) Draw a straight line between those two points.

@IDS did you mean something like this?

h = 500 mm, b = 250 mm, fcd = 22.667 N/mm2, fyd = 434.783 N/mm2
Bar diameter = 25 mm, A_bar = π*(25)^2/4 = 490.9 mm2
4 bars (1 in each corner), cover = 42.5 mm
For bending about one axis, assume 2 bars in tension and 2 in compression
Ast = 2 × 490.9 = 981.8 mm2

Case 1: NA at bottom (bending limit)
0.8 * fcd * b * x = Ast * fyd
x = (981.8 * 434.783) / (0.8 * 22.667 * 250) = 94.2 mm
Effective depth, d = h − cover = 500 − 42.5 = 457.5 mm
Lever arm, z = d − 0.4 * x = 457.5 − 0.4* 94.2 = 419.8 mm
Concrete compression force, Cc = 0.8 * fcd * b* x = 0.8×22.667×250×94.2 = 427,000 N
Moment capacity, M₁ = Cc * z = 427,000 × 419.8 = 179,000,000 Nmm (= 179 kNm)
N1 = 0 N

Case 2: Fully compressed (uniform strain 0.002)
Total concrete area, Ac = b * h = 250 * 500 = 125,000 mm2
Total reinforcement area, As = 4 * 490.9 = 1963.6 mm2
Steel strain, εs = 0.002 (uniform)
Steel stress, fs = εs * Es = 0.002 * 200,000 = 400 N/mm2 (does not yield)
N2 = fcd * (Ac − As) + fs * As
= 22.667 × (125,000 − 1963.6) + 400 × 1963.6
= 22.667 × 123,036 + 400 × 1963.6
= 2,788,000 N + 785,440 N = 3,573,440 N
M2 = 0 (pure compression, no eccentricity)

Interpolation (α between 0 and 1),
For α = 0.5,
N = N1 + α * (N2 − N1) = 0 + 0.5 × 3,573,440 = 1,786,720 N
M = M1 + α * (M2 − M1) = 179,000,000 + 0.5 * (0 − 179,000,000) = 89,500,000 Nmm (= 89.5 kNm)
 
That's it in principle, but why did you set N1 to 0. It should be the total axial force with the NA at the base of the section, which is a long way from 0.
 
That's it in principle, but why did you set N1 to 0. It should be the total axial force with the NA at the base of the section, which is a long way from 0.

@IDS

Thank you for the response.

N1 should be like this I guess.

Axial force, N1 = Cc + Asc*fsc - Ast*fst
= 2,266,700 + 981.8×434.783 - 981.8*434.783
= 2,266,700 N (= 2266.7 kN)
Moment capacity, M1 = Cc * (h/2 - 0.4*h) + Asc*fsc*(h - cover - h/2) - Ast* fst*(h/2 - cover)
= 2,266,700*(250 - 200) + 981.8*434.783 * (457.5 - 250) - 981.8 * 434.783 * (250 - 42.5)
= 2,266,700*50 + 981.8*434.783*207.5 - 981.8*434.783*207.5
= 113,335,000 Nmm (= 113.3 kNm)

However, I believe this method is completely different than the previous method which we did in the spreadsheet you provided earlier.
Was the method in your spreadsheet less accurate? Was the strains we calculated less accurate?

I don't want a smooth beautiful curve, even I don't need smooth transition from non-pure-compression to pure-compression (I mean I notice there can be sudden change since we cap the strain) still, just want to be safe and Eurocode complient than producing a smooth beautiful curve.

I liked and enjoyed the calculations we did in the spreadsheet, finding strains of each steel bar etc. Now in this one I don't see that kind of deep detail. Is it possible that we combine those with this new method?

If I want to keep the previous calculation (spreadsheet method) and add new things to comply to Eurocode, without completely deviating from spreadsheet method. How should I do it?


If we just calculate strains like the previous

in non-pure compression cases

strain = distance to r/f from NA * (0.0035/depth of NA)

in pure compression cases

Method 1:
I
f we just cap the strain at 0.00175 (or 0.002) when the column enters pure-compression

Method 2: using 0.00175 (or 0.002) instead of 0.0035

when the column enters pure-compression, we use 0.00175 (or 0.002)
strain = distance to r/f from NA * (0.00175/depth of NA)

--
I don't understand why that does not comply to Eurocode? I feel like that's also compliant (although the curve may not be smooth at the transition, I don't need a beautiful curve).

But it's also safe isn't it? I don't get why we need to complicate by adapting a completely new method of calculation.
 
Last edited:
@IDS

Thank you for the response.

N1 should be like this I guess.

Axial force, N1 = Cc + Asc*fsc - Ast*fst
= 2,266,700 + 981.8×434.783 - 981.8*434.783
= 2,266,700 N (= 2266.7 kN)
Moment capacity, M1 = Cc * (h/2 - 0.4*h) + Asc*fsc*(h - cover - h/2) - Ast* fst*(h/2 - cover)
= 2,266,700*(250 - 200) + 981.8*434.783 * (457.5 - 250) - 981.8 * 434.783 * (250 - 42.5)
= 2,266,700*50 + 981.8*434.783*207.5 - 981.8*434.783*207.5
= 113,335,000 Nmm (= 113.3 kNm)

However, I believe this method is completely different than the previous method which we did in the spreadsheet you provided earlier.
Was the method in your spreadsheet less accurate? Was the strains we calculated less accurate?

I don't want a smooth beautiful curve, even I don't need smooth transition from non-pure-compression to pure-compression (I mean I notice there can be sudden change since we cap the strain) still, just want to be safe and Eurocode complient than producing a smooth beautiful curve.

I liked and enjoyed the calculations we did in the spreadsheet, finding strains of each steel bar etc. Now in this one I don't see that kind of deep detail. Is it possible that we combine those with this new method?

If I want to keep the previous calculation (spreadsheet method) and add new things to comply to Eurocode, without completely deviating from spreadsheet method. How should I do it?


If we just calculate strains like the previous

in non-pure compression cases

strain = distance to r/f from NA * (0.0035/depth of NA)

in pure compression cases

Method 1:
I
f we just cap the strain at 0.00175 (or 0.002) when the column enters pure-compression

Method 2: using 0.00175 (or 0.002) instead of 0.0035

when the column enters pure-compression, we use 0.00175 (or 0.002)
strain = distance to r/f from NA * (0.00175/depth of NA)

--
I don't understand why that does not comply to Eurocode? I feel like that's also compliant (although the curve may not be smooth at the transition, I don't need a beautiful curve).

But it's also safe isn't it? I don't get why we need to complicate by adapting a completely new method of calculation.
I'm not sure what you are doing with your calculation of N1, but N1 is exactly as it was in the original calculation. The strain at the compression face is 0.0035, so why would anything change?

The "pure compression" case is uniform compression across the full section. Between those two extremes there is a smooth transition, where using the rectangular stress block numbers:
- The compression face strain reduces smoothly from 0.0035 to 0.00175
- The mid height strain stays constant at 0.00175
- The bottom face strain increases smoothly from 0 to 0.00175

If you must, you can calculate those strains and then calculate the forces and moments as before, but the results will be very close to a straight line.

In addition, using the rectangular stress block when the NA is outside the section has two problems:

1) When the base of the stress block reaches the base of the section (i.e. NA at D/0.8), the top strain is still very close to 0.0035 and the full concrete section is at maximum stress, but using the parabolic-rectangular stress block there would be a significant portion of the concrete with significantly less than maximum stress, so that case is unconservative.
2) Under uniform compression the strain is reduced to 0.00175, but the concrete stress distribution is the same as for the parabolic stress block, so that case is unnecessarily conservative.

So doing the linear interpolation is not only much simpler, it is also closer to the results you would get with a parabolic-rectangular stress block.
 
I'm not sure what you are doing with your calculation of N1, but N1 is exactly as it was in the original calculation. The strain at the compression face is 0.0035, so why would anything change?

The "pure compression" case is uniform compression across the full section. Between those two extremes there is a smooth transition, where using the rectangular stress block numbers:
- The compression face strain reduces smoothly from 0.0035 to 0.00175
- The mid height strain stays constant at 0.00175
- The bottom face strain increases smoothly from 0 to 0.00175

If you must, you can calculate those strains and then calculate the forces and moments as before, but the results will be very close to a straight line.

In addition, using the rectangular stress block when the NA is outside the section has two problems:

1) When the base of the stress block reaches the base of the section (i.e. NA at D/0.8), the top strain is still very close to 0.0035 and the full concrete section is at maximum stress, but using the parabolic-rectangular stress block there would be a significant portion of the concrete with significantly less than maximum stress, so that case is unconservative.
2) Under uniform compression the strain is reduced to 0.00175, but the concrete stress distribution is the same as for the parabolic stress block, so that case is unnecessarily conservative.

So doing the linear interpolation is not only much simpler, it is also closer to the results you would get with a parabolic-rectangular stress block.

@IDS

Thank you for the response.
However, I don't get the purpose of doing the previous spreadsheet method if we already knew it's not going to produce an accurate code compliant curve.
However, I enjoyed doing the strain calculations etc, but feel like I was like walking too far on a wrong path.
So, we spent time learning a wrong method, that was guaranteed to produce a substandard chart?
And there is a simpler and accurate method. I'm just curious why did we do the spreadsheet method in the first place if it meant to produce inaccurate code non-compliant chart?

Are you sure the new method you're proposing will be accurate and code compliant?

The previous method still produces very close results to yours, I don't understand how that could be producing straight lines as you mentioned.

Screenshot 2025-03-09 at 1.29.31 pm.jpg
 
Last edited:
I don't get the purpose of doing the previous spreadsheet method if we already knew it's not going to produce an accurate code compliant curve.
The calculated spreadsheet results are used all the way until the NA is outside the concrete section. On the graph above the only part using interpolated values is the top-left portion where the axial load is greater than 2900 kN, and your results are close to a straight line in that area.

Another reason for using the interpolation method for results close to the maximum axial load is that the 0.9 reduction factor for sections that reduce in width towards the compression face is only applicable where a rectangular stress block is being used. When the concrete has uniform stress over the full section the rectangular and the parabolic-rectangular stress blocks give exactly the same results, so there is no need to apply the additional reduction.
 
The calculated spreadsheet results are used all the way until the NA is outside the concrete section. On the graph above the only part using interpolated values is the top-left portion where the axial load is greater than 2900 kN, and your results are close to a straight line in that area.

Another reason for using the interpolation method for results close to the maximum axial load is that the 0.9 reduction factor for sections that reduce in width towards the compression face is only applicable where a rectangular stress block is being used. When the concrete has uniform stress over the full section the rectangular and the parabolic-rectangular stress blocks give exactly the same results, so there is no need to apply the additional reduction.

@IDS
Thank you.

However, I no longer apply 0.9 reduction factor as I believe it's not applicable for rectangular shaped columns. It's for L or T shaped ones as I know (pointy sections, not pointy compression blocks as I realised).
So, that chart is without 0.9 reduction.
I only apply 0.8x to the NA depth to find the simplified compression block area.

In pure compression, for steel, I applied 0.00175 (Eurocode says to use it if using simplified stress block) cap, and again capped the stress at fyd. It makes a difference as I see, because it caps the strain at 0.00175 and then check for fyd later, we take minimum of the two values. So as I see it does matter whether to use 0.00175 or 0.002.

For me, It's ok to have a straight line. And since Eurocode simplified model follows simplicity, I understand at some point it just uses capped values, which may result in straight like lines, that's fine for me.
All I need to check, if my chart is Eurocode compliant and so, that means if it's in the safe limits. At this moment I really don't want to have a parabolic level extreme refinement. I just need to follow the simplified method and produce the conservative and safe diagram.

Is it possible for you to check if my diagram is safe and code compliant.

Screenshot 2025-03-09 at 6.00.38 pm.jpg

Screenshot 2025-03-09 at 6.00.49 pm.jpg


Axial (kN)​
Mx (kN)​
My (kN)​
-853.68477​
0.00230461​
0.00115141​
-845.38614​
1.99238082​
0.97201953​
-698.06656​
33.0281874​
13.7202266​
-522.77427​
69.5599158​
28.683844​
-392.17925​
96.0000623​
39.4710945​
-268.73852​
119.632123​
47.9192008​
-56.404069​
159.878594​
48.0973857​
131.983101​
192.816971​
48.948872​
305.871989​
219.900751​
49.2288823​
519.753595​
233.06543​
53.9676395​
759.41792​
245.351504​
57.3783664​
997.995983​
256.800513​
58.9378507​
1242.71938​
260.617727​
58.7818507​
1504.63078​
254.248442​
56.3238507​
1742.72418​
246.485658​
53.2978507​
1981.79258​
232.395376​
51.4718507​
2212.61198​
214.048596​
49.8738507​
2382.22223​
181.501661​
45.416973​
2572.79504​
157.304881​
42.83216​
2731.81059​
135.903581​
39.7931086​
2882.09118​
113.069412​
34.8514981​
3012.97327​
91.5220997​
29.3189627​
3124.83828​
71.6897365​
23.5897626​
3217.99831​
54.0162231​
18.0592373​
3292.71472​
38.9536894​
13.1217784​
3349.20818​
26.9648508​
9.17292554​
3387.66149​
18.5182747​
6.60506117​
3407.33433​
14.259​
5.669​
3415.92433​
12.476​
4.96​
3423.92233​
10.817​
4.301​
3431.38633​
9.268​
3.685​
3438.36933​
7.819​
3.109​
3444.91633​
6.46​
2.569​
3451.06533​
5.184​
2.061​
3456.85333​
3.983​
1.584​
3462.31133​
2.851​
1.134​
3467.46533​
1.782​
0.708​
3472.34033​
0.77​
0.306​
3476.05033​
0​
0​
3476.05033​
0​
0​
3476.05033​
0​
0​
3476.05033​
0​
0​
3476.05033​
0​
0​
3476.05033​
0​
0​
3476.05033​
0​
0​
3476.05033​
0​
0​
3476.05033​
0​
0​
3476.05033​
0​
0​
3476.05033​
0​
0​
3476.05033​
0​
0​
3476.05033​
0​
0​
 
Last edited:
I will check your latest graphs (numerical data for the 2 graphs would also be useful), but I disagree with your comment about the 0.9 reduction factor.

The code says:
"If the width of the compression zone decreases in the direction of the extreme compression fibre, the
value eta fcd should be reduced by 10%."
So it isn't applicable to rectangular sections when the NA is parallel to the compression face (or to T sections), but it definitely is applicable to rectangular sections with a rotated NA. It is also applicable to circular sections. In both cases only when a rectangular stress block is used and the NA is inside the concrete section.
 
I will check your latest graphs (numerical data for the 2 graphs would also be useful), but I disagree with your comment about the 0.9 reduction factor.

The code says:
"If the width of the compression zone decreases in the direction of the extreme compression fibre, the
value eta fcd should be reduced by 10%."
So it isn't applicable to rectangular sections when the NA is parallel to the compression face (or to T sections), but it definitely is applicable to rectangular sections with a rotated NA. It is also applicable to circular sections. In both cases only when a rectangular stress block is used and the NA is inside the concrete section.

Thank you for your response.

After I apply the 0.9 reduction I got the diagrams as below.

Screenshot 2025-03-09 at 8.00.46 pm.jpg

Screenshot 2025-03-09 at 8.00.59 pm.jpg


Axial (kN)​
Mx (kN)​
My (kN)​
-853.68569​
0.00207415​
0.00103627​
-846.21693​
1.79314274​
0.87481757​
-701.38971​
32.2650687​
13.358004​
-530.25134​
67.9190243​
27.9286596​
-405.47183​
93.2182561​
38.234885​
-289.50817​
115.497011​
46.1537807​
-86.312362​
154.228535​
45.7944471​
91.2745907​
185.541074​
46.1399848​
252.70169​
210.938876​
45.9854941​
452.459936​
222.408187​
50.4010756​
676.339328​
233.040254​
53.6398298​
897.753585​
242.996362​
55.1817656​
1125.16895​
245.812654​
55.0257656​
1369.77231​
238.971098​
52.5677656​
1590.55767​
231.264693​
49.5417656​
1812.31803​
217.759439​
47.7157656​
2025.82939​
200.526336​
46.1177656​
2178.46121​
169.537195​
41.7005757​
2353.60364​
147.007493​
39.323344​
2498.85013​
127.303823​
36.6343977​
2637.02326​
106.147071​
32.1459483​
2757.45964​
86.2061898​
27.1294664​
2860.54035​
67.8585628​
21.9394864​
2946.57778​
51.4973008​
16.9312135​
3015.83305​
37.5238204​
12.4592006​
3068.52696​
26.3500657​
8.87933298​
3104.84234​
18.3938473​
6.54425505​
3124.001​
14.259​
5.669​
3132.591​
12.476​
4.96​
3140.589​
10.817​
4.301​
3148.053​
9.268​
3.685​
3155.036​
7.819​
3.109​
3161.583​
6.46​
2.569​
3167.732​
5.184​
2.061​
3173.52​
3.983​
1.584​
3178.978​
2.851​
1.134​
3184.132​
1.782​
0.708​
3189.007​
0.77​
0.306​
3192.717​
0​
0​
3192.717​
0​
0​
3192.717​
0​
0​
3192.717​
0​
0​
3192.717​
0​
0​
3192.717​
0​
0​
3192.717​
0​
0​
3192.717​
0​
0​
3192.717​
0​
0​
3192.717​
0​
0​
3192.717​
0​
0​
3192.717​
0​
0​
3192.717​
0​
0​
 

Part and Inventory Search

Sponsor