A while ago (like over a year now), I added the New Zealand concrete design code to the excellent concrete-properties repository. I had COVID and got really bored, and actually ended up completing something!
I’ve realised I never posted anything about it here at the time. It took about a week of work to get things mostly up and running and a lot longer to finesse and get the code committed to the repository.
Basically, the concrete-properties repository allows you to analyse virtually any arbitrary concrete section with any material properties. You can either approach this from a pure analysis perspective independent of any design code or analyse a section from a specific design code perspective. This flexibility allows you to adapt an analysis to virtually any analysis code by applying relevant design factors even if that design code has not been specifically implemented.
As of writing this only AS3600 and NZS3101 design codes (including NZSEE guidelines) have been fully implemented (meaning the hard lifting in terms of creating an analysis that complies with a design code is done for you). I’m sure any other pull requests to incorporate other international concrete design codes would be welcomed.
At this point in time, the only bugbear I have with concrete-properties is that the axial/moment interaction curves generated are not correct, in so far as they assume the neutral axis angle = load angle which is not correct except for a few special configurations. The solution lies in solving for the neutral axes angle for a given load angle, this has not been implemented yet though, and I’ve not designed anything in concrete since to use it in anger …… (living in timber design hell for the last year …)
To get around this shortcoming you can utilise the biaxial analysis undertaken at a given axial load until this is addressed if utilising the code for an actual design (I’m sure it will be addressed at some stage…. but the repository hasn’t seen much love for the last year apart from bumping some dependencies).
This shortcoming is discussed in this issue here on GitHub, where you can see the impact on the plots and the N/M plots wandering on the 3D interaction surface rather than being a true vertical Mx/My slice through the 3D interaction surface.
The use and features relating to the NZ code can be seen below in the documentation … scroll away:-
The full documentation can be found here.