Calling a function as a variable – another example

The recent posts on the Inverse Quadratic Method and Brent’s Method, and on calling a function as a variable, are leading towards a user defined function (UDF) to analyse circular reinforced concrete sections under combined bending and axial load, but since these methods are of general use, and (strangely) not everyone is interested in reinforced concrete, this post will look at how these methods are used to solve a complex equation, and the specifics of reinforced concrete beam bending theory will be saved for another post.  A spreadsheet with full open source code of the functions discussed here may be downloaded from 

In order to find the stresses and strains in a reinforced concrete section we need to find the location of a line known as the Neutral Axis: 

The Neutral Axis is the base of the area in compression, shaded blue

To do this we must find the value of X such that the function CirclQxoI evaluates to zero: 

See DepthNA.xls for full code

This is simply done by evaluating the data required by CircleQxoI (R, Ast, Xsc, Istc and Ecc) and passing this to the QuadBrent function together with the name of the function to be solved (CircleQxol) and the range within which the desired X value will lie: 

Click for full size view

The screenshot below shows an example of the function in use: 

Click for full size view

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

3 Responses to Calling a function as a variable – another example

  1. Pingback: Daily Download 3: ULS design of reinforced concrete sections | Newton Excel Bach, not (just) an Excel Blog

  2. metroxx says:

    What to do if Value Coefficients not possible to define with one range?
    I mean, how to solve it if in function I use more than 1 range with data?


    • dougaj4 says:

      There are (at least) three options:

      Simplest – Use spreadsheet formulas to collect all your data into a single column range
      Less Simple – Write a function to collect the data from a number of ranges into a single array, then pass that to the Quadbrent function.
      Even less simple – Change the Quadbrent function to accept more than one “Coefficients” range.


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