Using RC Design Functions 4 – Umom and new MaxAx function

Previous post in this series.

Download latest version of RC Design Functions6.

Previous posts in this series have looked at elastic design functions.  We now move on to functions for ultimate limit state (ULS) analysis of reinforced concrete sections:

  • UMom: ULS analysis of rectangular reinforced concrete sections with two layers of reinforcement under combined bending moment and axial load. Australian and ACI codes.
  • UMomPF:  As UMom but for codes using a partial factor approach; Eurocode 2, BS 5400 and BS 8110.
  • MaxAx:  New.  Moment magnification factor for slender columns, and maximum axial load, including slenderness effects (AS 3600 only).

Input for the functions is shown below:

Output from the UMom function is controlled by the parameters: Out1 and Out2, as for the EStress functions, with 11 columns (selected by Out1) and up to 17 rows (selected by Out2).  Alternatively a complete column may be displayed by entering the function as an array function, with Ctrl-Shift-Enter.
Umom output columns 1 to 6:uMom-out1
Umom output columns 7 to 11: uMom-out2
UMomPF provides similar functionality for Eurocode 2 and BS 5400 and BS 8110: uMomPF-out
The new MaxAx function provides 3 alternative outputs (controlled by the Out1 parameter):

  1. the moment magnification factor for a specified axial load (Out1 = 1, default)
  2. the maximum axial load for a specified eccentricity, (Out1 = 2)
  3. loading line to the maximum axial load, for a specified eccentricity (Out1 > 2)


Graph of average column stress for maximum axial load against slenderness ratio (Le/r), generated using the MaxAx function:


The “Interaction Diagram” sheet uses the Umom and MaxAx functions to create an interaction diagram, using the input on the Umom Input sheet.

Further details of input and output options are given on the download file:
RC Design Functions6.

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

6 Responses to Using RC Design Functions 4 – Umom and new MaxAx function

  1. andre says:

    I’m looking into mEstress module.
    It looks like condition:
    “If NettMom = 0 And Nettax = 0 ”
    is never fulfilled because ealier you assumed that NettMom wille never be equal to 0:
    “If Abs(NettMom) = 0 Then NettMom = 0.000001”
    or am I wrong?
    What precision is used in VBA?
    Discussed part of code:

    ‘ Calculate nett moment, axial force and eccentricity
    NettMom = (Mome + PSMoment)
    If Abs(NettMom) = 0 Then NettMom = 0.000001
    Nettax = Round(Ax + PSTotal, 6)

    ‘ Check for zero load
    If NettMom = 0 And Nettax = 0 Then
    SigC = 0
    Strc = 0
    Strscomp = 0
    Strstens = 0
    Strctens = 0
    GoTo ZeroLoad
    End If

    Looking at an “about” sheet there is also lack of one chart – your time spent on code developing and implementing improvements🙂
    Thanks for your work.


  2. dougaj4 says:

    andre – Thanks for the feedback and the comments.

    You are right about the check for zero axial load and moment never being true. It doesn’t have any serious effects, but it could do with tidying up.

    This is the spreadsheet I use most in my regular work, which accounts for the large number of revisions!


  3. andre says:

    Yes, it isn’t important thing for results. It’s very useful spreadsheet. Did you used particular book or monograph for equilibrium equations and variable conventions or they are your hand calculations? I guess that it is the second one.
    Are those notifications in Replay field work in your website? I marked them but I don’t get notification for my email.


    • dougaj4 says:

      andre – The formulas in the code I derived myself from first principles, although for ultimate with a rectangular stress block it is quite straightforward, and I’m sure there are books with the equivalent formulas. For elastic design it gets a bit more complicated, and I don’t know of any other published work with the equivalent closed form solutions. See:
      for more details of the derivation.

      The reply notifications are controlled by the WordPress software. I get a notification of every comment, but I don’t know how it works when you comment on a post on someone else’s site. You could try looking in the WordPress support page.

      Also in your first comment you asked about the precision used in VBA. By default (or if you declare a variable as double or variant) it works to about 15 significant figures, which is the same as used in Excel.


  4. andre says:

    If I have both “typical” reinforcement and prestress I have to manipulate with reinforcement area (presstress steel yield)/(reinforcement steel yield) and value of prestress stress to get properly values of “PSForce” and “PSMoment”. Will you change in future input range to include prestress and reinforcement separately?


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 )

Google+ photo

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

Connecting to %s