___ ___ ___
_____ / /\ / /\ / /\
/ /::\ / /::\ / /::\ / /:/_
/ /:/\:\ / /:/\:\ / /:/\:\ / /:/ /\
/ /:/~/::\ / /:/~/::\ / /:/~/:/ / /:/ /:/
/__/:/ /:/\:/__/:/ /:/\:\/__/:/ /:/__/__/:/ /:/
\ \:\/:/~/:| \:\/:/__\/\ \:\/:::::| \:\/:/
\ \::/ /:/ \ \::/ \ \::/~~~~ \ \::/
\ \:\/:/ \ \:\ \ \:\ \ \:\
\ \::/ \ \:\ \ \:\ \ \:\
\__\/ \__\/ \__\/ \__\/
v0 - (super rough demo)
BARF is a collection of programs for structural analysis and design written in Go.
- Direct stiffness analysis (/kass): Direct stiffness analysis of (2d/3d) bar member frameworks.
- RCC design (/mosh): Design of rcc slabs, beams, columns and footings as per is456 and bs8110.
- Steel design (/bash): Design of steel beam and column members as per bs449.
- Timber design (/tmbr): Design of timber beam and column members as per is883.
- Go
- follow instructions at https://go.dev/doc/install
- Gnuplot
- follow instructions at https://sourceforge.net/projects/gnuplot/files/gnuplot/
Clone and build this repo -
git clone https://github.com/akhileshsv/barf
cd barf
go build -o barf.exe
Run tui menu (uses https://github.com/AlecAivazis/survey) with -
./barf.exe -tui
Note - using "read json txt" as an input option copies the base struct to clipboard and opens a new editor window to edit struct fields.
Hit "?" to see an explanation of individual struct fields (as seen in the gifs below); paste the struct into the editor (ctrl + v) and save the edited file before exiting the editor window.
- Flags
- inf (string) - input json file path
- term (string) - gnuplot terminal string (supported - "dumb","mono","qt","svg")
- calc (bool) - stiffness analysis flag (kass.Model json input)
- rcc (string) - rcc design flag
- stl (string) - steel design flag
- wood (string) - wood design flag
- cmdz (string) - flag sub-commands
- tui (bool) - start text menu
flag | info | type | vals | cmdz | info |
---|---|---|---|---|---|
calc | analysis | bool | basic model direct stiffness analysis | ||
calc | ep | elastic plastic beam/frame analysis | |||
calc | np | non uniform beam/frame analysis | |||
calc | blt, bolt | bolt group analysis | |||
calc | wld, weld | weld group analysis | |||
rcc | rcc design | string | slb,slab | rcc slab design | |
rcc | cb, cbeam | rcc continuous beam analysis and design | |||
rcc | bm, beam | az, analyze | rcc beam section analysis | ||
rcc | bm, beam | dz, design | rcc beam section design | ||
rcc | col, column | az, analyze | rcc column section analysis | ||
rcc | col, column | dz, design | rcc column section design | ||
rcc | ftng, footing | az, analyze | rcc footing analysis | ||
rcc | ftng, footing | dz, design | rcc footing design | ||
rcc | sf, subfrm | az, analyze | rcc subframe analysis | ||
stl | steel design | string | col, column | az, analyze | steel column check |
stl | col, column | dz, design | steel column design | ||
stl | bm, beam | az, analyze | steel beam check | ||
stl | bm, beam | dz, design | steel beam design | ||
wood | wood design | string | col, column | dz, design | solid timber column design |
wood | bm, beam | dz, design | solid timber beam design |
Navigate to the folder barf/kass and run the following command with the test name and the -v flag as below:
cd barf/kass
go test -run "test name" -v
go test -run KFacMos -v
- KFacMos - calc stiffness and distribution factors
- TestNpBm - non prismatic beam calc
- TestNpFrm - non prismatic frame calc
- beamsfbmtest - beam bm/sf funcs (hulse)
- Trs2d - 2d truss (chapter 3/4, kassimali)
- Trs2dJsd - 2d truss (chapter 3/4, kassimali)
- Bm1d - 1d beam (chapter 5, kassimali)
- BmJsd - joint support displacements calc (chapter 7, kassimali)
- Frm2d - 2d frame (chapter 6, kassimali)
- Frm2dJsd - 2d frame support disp./member releases (chapter 7, kassimali)
- Grd3d - 3d grid analysis (chapter 8, kassimali)
- Frm3d - 3d frame (chapter 8, kassimali)
- Trs3d - 3d truss (chapter 8, kassimali)
- add ons - chapter 7, kassimali examples (member releases, temp changes etc)
- NlCalcTrs2d - chapter 10 - special topics (non linear truss analysis) (kassimali)
- boltss - bolt group analysis (harrison)
- weldss - weld group analysis (harrison)
- CalcEp - elastic - plastic analysis (harrison) close the deflection bit (read)
- EffLen - iterative column effective length calcs (harrison) finish ze test
- SecProp calc - mosley general section properties calculation
- SecGen - 22 sections so far
Navigate to the folder barf/mosh and run the following command with the test name and the -v flag as below:
cd barf/mosh
go test -run "test name" -v
go test -run Slb1DBs -v
- SlbSdrat - slab span depth ratio tests (in deflectiontest)
- TestSlb2DIs - slab 1 way tests (subramanian) (in slabdesignistest)
- TestSlbSsShah - shah sec. 6.2 tests
- TestSlb2WShah - shah sec. 6.3 2w slb tests
- BalSecAst - balanced section area of steel tests (slabdesigntest)
- Slb1DBs - bs code one way slab design
- Slb2DBs - bs code two way slab design
- Slb2BmCoeffBs - bs code 2 way coeff checks
- RSlb2Chk - waffle slab check tests (in slabcstest)
- RSlb1Chk - ribbed slab check
- CSlb1Dz - cs 1 way slab test
- CSlb1DepthCs - cs 1 way slab depth test
- SlbQuant - slab quant/table test (slabtest)
- SlbDraw - slab draw test
- SlbEndC2W - slab 2 way end condition test (slabyieldtest)
- TestSlb2WCoefComp - 2 way coeff comparison (bs/is/yield line)
- SlbYld - yield line analysis tests
- SlbYldRect - rect 2 way slab yield line tests
- BmSecAzIs - (is code) shah beam section analysis (styp 1, 6, 7, 14)
- BmDIs - (is code) shah beam design
- BmDzBs - (bs code) hulse beam rebar design (styp ze usual)
- BmAzGen - (bs code) hulse beam section analysis (again the usual styps)
- BmAzTaper - tapered beam analysis
- BmBarGen - (general) - beam rebar generation funcs
- BmAsvrat - beam stirrup area/spacing ratio (hulse)
- BmTorDBs - design for torsion (hulse)
- BmShrIs - beam shear design (shah) - WRITE THIS
- BmShrDz - might be redundant, tests for beam shear(shah)
- BmSdrat - beam span depth ratio tests (in deflectiontest)
- ColDzBasic - basic (styp == 1/0) column design tests (in coldesignistest)
- ColSizeIs - column sizing funcs
- ColSecArXu - col. section area test (in coldesigntest)
- ColAzBs - hulse col. analysis (rect sect alone)
- ColDzBs - hulse col. design
- ColNMBs - hulse nm curves
- ColEffHt - hulse eff. height calcs
- ColSlmDBs - hulse slender column
- ColFlip - column 'flip' test (in coltest)
- ColBx - col. biaxial bending test
- ColWeirdBs - weird column tests (start with styp 0)
- ColAzGen - col gen. analysis funcs
- FtngPadAz - pad footing analysis tests (hulse 6.1) (in footingdesigntest)
- FtngBxOz - ozmen footing analysis tests
- FtngDzRojas - basic footing tests (rojas, hulse, subramanian)
- CBmOpt - cbeam opt test (govindraj ex 1 n 2)
- CBmDz - cbeam design funcs
- TestFltSlb - flat slab design tests (subframetest)
- SubFrmDz - subframe design tests
- SubFrmMosley - subframe analysis test
- Aslam Kassimali - Matrix Analysis of Structures , Second Edition - CL Engineering (2011)
- H. B. Harrison - Structural Analysis and Design, Some Microcomputer Applications-Elsevier Ltd, Pergamon (1990)
- W. H. Mosley, W. J. Spencer - Microcomputer Applications in Structural Engineering-Macmillan Education UK (1984)
- R. Hulse, W. H. Mosley - Reinforced Concrete Design by Computer-Macmillan Education UK (1986)
- Dr. V.L Shah - Computer Aided Design in Reinforced Concrete - Structures Publications (1998)
- Subramanian, Narayanan - Design of Reinforced Concrete Structures-Oxford University Press (2013)
- A. Allen - Reinforced Concrete Design to BS 8110 Simply Explained-CRC Press (1988)
- Abel O. Olorunnisola - Design of Structural Elements with Tropical Hardwoods - Springer (2017)
- Arnulfo Luevanos Rojas - Design of isolated rectangular footings of rectangular form using a new model (2013)