Solving non-linear equations with two or more unknowns – 3

For the next stage of the non-linear solver saga I am looking at the same problem as in the previous post (finding the curvature or a reinforced concrete section under specified bending moment and axial load), but with more realistic materials properties.

For concrete in compression I will use the curve from Eurocode 2, recommended for structural analysis:


For concrete in tension I will use a modified version of the curve used in a previous post:

The paper this curve was taken from suggested using the stepped linear form (labelled b above) for both cracked and uncracked sections, but some testing suggests that better results are obtained using linear properties until cracking (at a stress of ft), then the tri-linear line (with a plateau at f’t) after cracking.  At this stage a simple bi-linear approach was used for the steel stress-strain; i.e. a constant E up to the yield point, then constant stress with increasing strain.

The following VBA functions are used in the calculation:

  • Stressatx and xStressatx call EC2Stress and return the stress and stress times x, at distance x from the Neutral Axis, for any given x, strain at the compression face, and concrete properties.
  • The total force and moment about the section centroid are found by SectForceMV, which calls EC2ForceM for the concrete force and moment, and SForceM for the actions in the steel.  EC2ForceM calls GaussIntF to integrate the stresses returned by Stressatx and xStressatx.
  • CurveatMA  returns the section curvature for any specified axial load, moment and concrete properties, using MSolve to find the required depth of neutral axis and compression face strain, calling SectForceMV.
  • MSolve is also used by TStiffNL, which returns the bending moment and curvature immediately before and after cracking, then at uniform strain increments up to any specified maximum compressive strain. Msolve is used in finding the compression face strain and neutral axis depth immediately after cracking.  Thereafter the top face strain is incremented in equal steps, and the depth of the neutral axis is found using the function QuadBrentPA.

Typical output from TSiffNL is shown in the screen-shot below, followed by a graph comparing results with curvature calculated with the Eurocode 2 formula:


The RC Design Functions spreadsheet will be re-issued in the next few days, including open-source code for all the functions listed above.

This entry was posted in Beam Bending, Excel, Maths, Newton, UDFs, VBA and tagged , , , , , , , . Bookmark the permalink.

1 Response to Solving non-linear equations with two or more unknowns – 3

  1. krishengineer says:

    Waiting for the spreadsheet.. Thanks in advance..


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.