bar_diameter
Computes the diameter of a bar based on various stress conditions.
Interface
#include <codecogs/engineering/materials/strength/axial/bar_diameter.h>
using namespace Engineering::Materials::Strength::Axial;
Overview
Consider the case of a bar made of a certain material on which various forces are exerted along its longitudinal axis, in an upward or downward direction. This module computes the minimum diameter of the bar such that it will withstand the sum of forces that act upon it, also taking into account a safety coefficient.
<b>Technical details</b>
This module computes the diameter of a bar in the case of tensial and/or compressive stress, where each section of the bar is found between the origins of two consecutive forces.
Let be the stress forces that act along the axis of the bar. We define
for
the norm of the resultant of the first
forces, thus:
For the sake of clarity, the forces should be given in a consecutive order such that the diameters will correspond to consecutive sections of the bar.
In the following image you may notice the final shape of the bar (the red contour at the right side of the image) based on the various axial forces that act upon it. The diameter of sufficient size is in this case equal to corresponding to the maximum stress
.
The force is the reaction force and
are the lengths that give the origin of the axial forces.

References
Gh. Buzdugan - "Strength of Materials"
FUNCTION
bar_diameter
Considering the value of the maximum allowable stress per unit area, we compute the diameter of the bar using the following formula:
where the value of is expressed as:
with the failure stress per unit area and
the safety coefficient. The values of
for various materials are given in the following table.
<center> <table border="1"> <tr> <td><center>Material</center></td> <td><center> (N/sq.m)</center></td> </tr> <tr> <td>Steel</td> <td>6.2E+8 - 6.6E+8</td> </tr> <tr> <td>Iron</td> <td>2.6E+8 - 4.0E+8</td> </tr> <tr> <td>Copper</td> <td>3.2E+8</td> </tr> <tr> <td>Wood</td> <td>0.6E+8 - 1.0E+8</td> </tr> </table> </center>
The example code below computes the diameter of a copper bar on which axial forces with various values are exerted.
Example 1
#include <codecogs/engineering/materials/strength/axial/bar_diameter.h>
#include <stdio.h>
int main()
{
// input data
double F[4] = {32000, 11000, -8000, 2500}, sigma = 3.2E+8;
// display the input data
printf("Forces:\n\n");
for (int i = 0; i < 4; i++)
printf("F[%d] = %8.2lf N\n", i+1, F[i]);
printf("\nSigma = %.2lf N/sq.m\n\n", sigma);
// compute the diameter of the bar
double diameter = Engineering::Materials::Strength::Axial::bar_diameter
(4, F, sigma);
// display the result
printf("Diameter = %.10lf m\n\n", diameter);
return 0;
}Output
Forces:
F[1] = 32000.00 N
F[2] = 11000.00 N
F[3] = -8000.00 N
F[4] = 2500.00 N
Sigma = 320000000.00 N/sq.m
Diameter = 0.0130801974 mParameters
Returns
FUNCTION
bar_diameter
Considering the value of the maximum allowable elongation/shortening and E the elastic modulus, we compute the diameter of the bar using the following formula:
The values of the elastic modulus E for various materials are given in the following table.
<center> <table border="1"> <tr> <td><center>Material</center></td> <td><center>E (N/sq.m)</center></td> </tr> <tr> <td>Steel</td> <td>0.2E+12 - 0.21E+12</td> </tr> <tr> <td>Iron</td> <td>0.115E+12 - 0.16E+12</td> </tr> <tr> <td>Copper</td> <td>0.11E+12 - 0.13E+12</td> </tr> <tr> <td>Wood</td> <td>0.9E+10 - 1.2E+10</td> </tr> </table> </center>
The example code below computes the diameter of a copper bar on which axial forces with various values are exerted.
Example 1
#include <codecogs/engineering/materials/strength/axial/bar_diameter.h>
#include <stdio.h>
int main()
{
// input data
double F[4] = {32000, 11000, -8000, 2500},
E = 0.12E+12, delta = 1E-5;
// display the input data
printf("Forces:\n\n");
for (int i = 0; i < 4; i++)
printf("F[%d] = %8.2lf N\n", i+1, F[i]);
printf("\nE = %.2lf N/sq.m", E);
printf("\nDelta = %.5lf m\n\n", delta);
// compute the diameter of the bar
double diameter = Engineering::Materials::Strength::Axial::bar_diameter
(4, F, E, delta);
// display the result
printf("Diameter = %.10lf m\n\n", diameter);
return 0;
}Output
Forces:
F[1] = 32000.00 N
F[2] = 11000.00 N
F[3] = -8000.00 N
F[4] = 2500.00 N
E = 120000000000.00 N/sq.m
Delta = 0.00001 m
Diameter = 0.2135987290 m