Computes the diameter of a bar based on various stress conditions.

View versions (1)

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 \overrightarrow{F_1}, \overrightarrow{F_2}, \ldots, \overrightarrow{F_n} be the stress forces that act along the axis of the bar. We define N_k for k = 1, 2, \ldots, n the norm of the resultant of the first k forces, thus:

N_k = \left| \sum_{i=1}^k \overrightarrow{F_i} \right|.
(1)

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 d_2 corresponding to the maximum stress N_2.

The force R is the reaction force and l_1, l_2, \ldots, l_n are the lengths that give the origin of the axial forces.

1/suff_shape-378.jpg

References

Gh. Buzdugan - "Strength of Materials"

GPL Licence — free for non commercial use. See Licence details.

FUNCTION

bar_diameter

Considering \sigma the value of the maximum allowable stress per unit area, we compute the diameter of the bar using the following formula:

d = \max \left\{ 2 \sqrt{\frac{N_k}{\pi \sigma}} \,\mid\, k = \overline{1,n} \right\}
(2)

where the value of \sigma is expressed as:

\sigma = \frac{\sigma_f}{s_c}
(3)

with \sigma_f the failure stress per unit area and s_c \geq 1 the safety coefficient. The values of \sigma_f for various materials are given in the following table.

<center> <table border="1"> <tr> <td><center>Material</center></td> <td><center>\sigma_f (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 m

Parameters

n
the number of axial forces
forces
an array containing the signed value of each force (<i>Newtons</i>)
sigma
the value of the maximum allowable stress per unit area (<i>Newtons per sq. meters</i>)

Returns

The diameter of the bar (<i>meters</i>).

FUNCTION

bar_diameter

Considering \delta the value of the maximum allowable elongation/shortening and E the elastic modulus, we compute the diameter of the bar using the following formula:

d = \max \left\{ 2 \sqrt{\frac{N_k}{\pi E \delta}} \,\mid\, k = \overline{1,n} \right\}.
(4)

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

Parameters

n
the number of axial forces
forces
an array containing the signed value of each force (<i>Newtons</i>)
E
the elastic modulus (<i>Newtons per sq. meters</i>)
delta
the value of the maximum allowable elongation/shortening (<i>meters</i>)

Returns

The diameter of the bar (<i>meters</i>).