This Python script is used for tower design calculations based on ACI 307-08 and ASCE 7-16 guidelines. The script includes various methods to determine different design parameters for the tower, such as maximum load, salt density and enthalpy, sodium density and enthalpy, receiver weight, and bending resistance of the tower's concrete shell cross-section.
A detailed description of the design and costing methodology and references can be found at the Reference Document
- Python 3.x
- NumPy library
- SciPy library
- Clone the repository to your local machine:
git clone https://github.com/arfontalvoANU/ConcreteTower.git
- Install the required libraries using pip:
pip install numpy scipy
- Run the
tower_design.py
script:
python3 TowerDesign.py
- Verify the output:
---------------------------------------------------
Type of load:Wind and seismic
---------------------------------------------------
Thickness bottom (m): 0.566
Thickness top (m): 0.447
Minimum vertical reinforcement ratio: 2.6e-02
Minimum circumferential reinforcement ratio: 1.0e-03
Pu iteration residual: 1.2e-10
Minimum vertical safety factor: 1.0e+00
Minimum circumferential safety factor: 7.2e+00
---------------------------------------------------
Concrete volume [CY]: 13939.2
Steel mass [tons]: 2447.3
---------------------------------------------------
Concrete volume [m3]: 10657.3
Steel mass [metric tons]: 2220.1
---------------------------------------------------
Cost of tower [$]: 33529190
---------------------------------------------------
The TowerDesign.py
script provides various methods for tower design calculations. You can call these methods with appropriate parameters to obtain the desired design parameters. The methods available in the script are as follows:
-
calculate_cost()
: Calculates the cost of a concrete reinforced tower with a user-defined geometry. -
max_load(D, W, E, load_type)
: Determines the maximum factored load for design purposes based on ACI 307-08 guidelines. ParametersD
,W
, andE
are arrays representing dead loads, wind loads, and earthquake loads, respectively.load_type
is an integer value indicating the type of load (1 for wind only, 2 for seismic only, and 3 for wind and seismic). -
salt(T)
: Computes the salt density and enthalpy for receiver weight based on specified temperatureT
. -
sodium(T)
: Computes the sodium density and enthalpy for receiver weight based on specified temperatureT
. -
scaling_w_receiver()
: Calculates the weight of the receiver based on its capacity, geometry, heat transfer fluid (HTF), and operation temperatures. -
neutral_axis_angle(load, rhot, rm_tow, t_tow, alpha)
: Computes the neutral axis angle for the tower's concrete shell cross-section subjected to bending moment. Parametersload
,rhot
,rm_tow
,t_tow
, andalpha
are required for the calculation. -
bending_resistance(rhot, rm_tow, t_tow, alpha)
: Computes the bending resistance of the tower's concrete shell cross-section subjected to bending moment. Parametersrhot
,rm_tow
,t_tow
, andalpha
are required for the calculation.
This project is licensed under the LGPL-2.1 License - see the LICENSE file for details.
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make changes and commit them with descriptive commit messages.
- Push your changes to your fork.
- Submit a pull request.
- Armando Fontalvo (@arfontalvoANU) - GitHub Profile
- The ACI 307-08 guidelines for tower design.
- The ASCE 7-16 guidelines for tower design.