fconcrete.StructuralConcrete.ConcreteBeam module

class fconcrete.StructuralConcrete.ConcreteBeam.ConcreteBeam(loads, beam_elements=None, nodes=None, section=None, design_factor=1.4, division=200, maximum_displacement_allowed=<function ConcreteBeam.<lambda>>, available_long_steel_bars=<fconcrete.StructuralConcrete.AvailableMaterials.AvailableLongConcreteSteelBar object>, bar_steel_removal_step=2, bar_steel_max_removal=100, available_transv_steel_bars=<fconcrete.StructuralConcrete.AvailableMaterials.AvailableTransvConcreteSteelBar object>, tilt_angle_of_compression_struts=45, available_concrete=<fconcrete.StructuralConcrete.AvailableMaterials.AvailableConcrete object>, time_begin_long_duration=0, lifetime_structure=70, verbose=False, max_relative_diff_of_steel_height=0.02, consider_own_weight=True, **options)[source]

Bases: fconcrete.Structural.Beam.Beam

Beam associated with the material concrete. All attbributes from Beam Class can be used.

Attributes:
available_concrete : AvailableConcrete

Same constant from input. Define the available concrete. You can set the available fck, cost_by_m3, aggressiveness and aggregate. See more information in fc.AvailableConcrete docstring or the AvailableMaterials Class documentation. Default AvailableConcrete() which means:

  • 30 MPa;
  • R$353.30 by meterˆ3;
  • The aggressiveness is 3;
  • Aggregate is granite;
  • Biggest aggregate dimension is 1.5cm.
available_long_steel_bars : AvailableLongConcreteSteelBar

Same constant from input. Define the available longitudinal steel bars. You can set the available diameters, cost_by_meter, fyw, E, etc. See more information in fc.AvailableLongConcreteSteelBar docstring or the AvailableMaterials Class documentation. Default AvailableLongConcreteSteelBar([8]) which means:

  • 8mm diameter;
  • 0.5cmˆ2 area;
  • R$2.0575 by meter cost;
  • fyw equal to 50kN/cmˆ2;
  • Young Modulus (E) is 21000kN/cmˆ2;
  • Max number of steel in the section is 200;
  • Surface type is ribbed.
available_transv_steel_bars : AvailableTransvConcreteSteelBar

Same constant from input. Define the available transversal steel bars. You can set the available diameters, cost_by_meter, fyw, E, etc. See more information in fc.AvailableTransvConcreteSteelBar docstring or the AvailableMaterials Class documentation. Default AvailableTransvConcreteSteelBar([8]) which means:

  • 8mm diameter;
  • 0.5cmˆ2 area;
  • R$2.0575 by meter cost;
  • The longitudinal space between transversal steel are multiple of 5;
  • fyw equal to 50kN/cmˆ2;
  • Transversal bar inclination angle of 90 degrees;
  • Tilt angle of compression struts of 45 degrees.
bar_steel_max_removal : python:int

Same constant from input. Define the max times it is possible to remove the bar. Default value is 100.

bar_steel_removal_step : python:int

Same constant from input. Define the step during the removal of the bar. Instead of taking the steel bars one by one, the bar_steel_removal_step will make the removal less constant. I makes the building process easier. Default value is 2.

cost : number

Total material cost of the beam.

cost_table : number

Detailed table with all materials and their costs.

design_factor : number

Same constant from input. Define the number that is going to be multiplied to de momentum diagram and shear diagram. If your load is already a design load, you should set design_factor=1. Default value is 1.4.

division : python:int

Same constant from input. Define the number of division solutions for the beam. The beam will be divided in equally spaced points and all results (displacement, momentum, shear) will be calculated to these points. Default value is 1.4.

lifetime_structure : number

The time, in months, when the value of the deferred arrow is desired; Default value is 70.

long_steel_bars : LongSteelBars

Longitudinal steels used in the beam.

long_steel_bars_solution_info : LongSteelBarSolve

Information about the solution for longitudinal steels used in the beam. More information in the LongSteelBarSolve Class documentation.

maximum_displacement_allowed : number

Same constant from input. For each beam element, compare its maximum displacement with maximum_displacement_allowed(beam_element_length). This is used to solve the ELS shown in NBR 6118. If a beam_element length is 120cm, its maximum displacement is 1cm and maximum_displacement_allowed is 120/250=0.45cm < 1cm. Therefore, in this condition, the ELS step will raise an error. Default value is lambda beam_element_length : beam_element_length/250.

processing_time : number

Time for resolution of the concrete beam.

subtotal_table : number

Table with each type of material and their costs.

tilt_angle_of_compression_struts : number

Same constant from input. Tilt angle of compression struts in degrees. Default 45 degrees.

time_begin_long_duration : number

The time, in months, relative to the date of application of the long-term load Default value is 0.

transv_steel_bars : TransvSteelBar

Transversal steels used in the beam.

transv_steel_bars_solution_info : TransvSteelBarSolve

Information about the solution for transversal steels used in the beam. More information in the TransvSteelBarSolve Class documentation.

verbose : bool

Print the the steps and their durations. Default value is False.

Methods

checkRecalculationOfD(self) Recalculate all beam with the true value of steel height (d)
copy(self) Makes a deep copy of the instance of Beam.
getBeamElementInX(self, x) Get the beam element in x (in cm).
getConcreteDisplacementDiagram(self, \*\*options) Returns necessary steel area given the position and momentum.
getDisplacement(self, x) Get the vertical displacement in a position x (in cm) or multiple positions.
getDisplacementDiagram(self, \*\*options) Apply beam.getDisplacement for options[“division”] parts of the beam.
getInternalMomentumStrength(self, x) Get the internal momentum strength in a position x (in cm) or multiple positions.
getInternalShearStrength(self, x) Get the internal shear strength in a position x (in cm) or multiple positions.
getMomentumDiagram(self, \*\*options) Apply beam.getInternalMomentumStrength for options[“division”] parts of the beam.
getRotation(self, x) Get the rotation in a position x (in cm) or multiple positions.
getRotationDiagram(self, \*\*options) Apply beam.getRotation for options[“division”] parts of the beam.
getShearDesignDiagram(self, \*\*options) Apply beam.getShearDiagram for options[“division”] parts of the beam and multiplies by concrete_beam.design_factor.
getShearDiagram(self, \*\*options) Apply beam.getInternalShearStrength for options[“division”] parts of the beam.
matrix_rigidity_global(self) Returns the global rigidity matrix.
plotConcreteDisplacementDiagram(self, …) Apply concrete_beam.getConcreteDisplacementDiagram for options[“division”] parts of the beam.
plotDisplacementDiagram(self, \*\*options) Simply applies the beam.getDisplacementDiagram method results (x,y) to a plot with plt.plot(x, y).
plotMomentumDiagram(self, \*\*options) Simply applies the beam.getMomentumDiagram method results (x,y) to a plot with plt.plot(x, y).
plotRotationDiagram(self, \*\*options) Simply applies the beam.getRotationDiagram method results (x,y) to a plot with plt.plot(x, y).
plotShearDesignDiagram(self, \*\*options) Simply applies the beam.getShearDesignDiagram method results (x,y) to a plot with plt.plot(x, y).
plotShearDiagram(self, \*\*options) Simply applies the beam.getShearDiagram method results (x,y) to a plot with plt.plot(x, y).
plotTransversalInX(self, x, \*\*options) Plot an image of the transversal section with the longitudinal and transversal steel.
saveas(self[, file_name, column_height, …]) Save all essential plots to a dxf file.
solve_ELS(self) Starts the process of solution for ELS (Estado Limite de Serviço)
solve_cost(self) Starts the process of solution for the cost table.
solve_displacement(self) Starts the process of solution for the structural beam displacement.
solve_long_steel(self) Starts the process of solution for the used longitudinal steel.
solve_structural(self) Starts the process of solution for the structural beam.
solve_transv_steel(self) Starts the process of solution for the used transversal steel.
plot  
checkRecalculationOfD(self)[source]

Recalculate all beam with the true value of steel height (d)

getConcreteDisplacementDiagram(self, **options)[source]

Returns necessary steel area given the position and momentum.

Parameters:
**options
division:

Number of divisions equally spaced (int).

x_begin:

Begin of the x_axis (number).

x_end:

End of the x_axis (number).

Returns:
x : python:list of number

X axis in cm.

displacement : python:list of number

Vertical displacement value in cm.

getShearDesignDiagram(self, **options)[source]

Apply beam.getShearDiagram for options[“division”] parts of the beam and multiplies by concrete_beam.design_factor.

Parameters:
**options
division:

Number of divisions equally spaced (int). Default concrete_beam.division.

x_begin:

Begin of the x_axis (number).

x_end:

End of the x_axis (number).

Returns:
x : python:list of number

The x position of the division in cm

y : python:list of number

The value of shear for each x.

plotConcreteDisplacementDiagram(self, **options)[source]

Apply concrete_beam.getConcreteDisplacementDiagram for options[“division”] parts of the beam.

Parameters:
**options
division:

Number of divisions equally spaced (int).

x_begin:

Begin of the x_axis (number).

x_end:

End of the x_axis (number).

Returns:
x : python:list of number

The x position of the division in cm

y : python:list of number

The value of displacement for each x.

plotShearDesignDiagram(self, **options)[source]

Simply applies the beam.getShearDesignDiagram method results (x,y) to a plot with plt.plot(x, y).

Parameters:
**options
division:

Number of divisions equally spaced (int).

x_begin:

Begin of the x_axis (number).

x_end:

End of the x_axis (number).

plotTransversalInX(self, x, **options)[source]

Plot an image of the transversal section with the longitudinal and transversal steel.

Call signatures:

concrete_beam.plotTransversalInX.getSteelArea(x)
Returns:
fig

Figure generated by matplotlib.

ax

Axis generated by matplotlib.

saveas(self, file_name=False, column_height=30, gap=50, scale_y_long_bar=10, transversal_plot_positions=[])[source]

Save all essential plots to a dxf file.

solve_ELS(self)[source]

Starts the process of solution for ELS (Estado Limite de Serviço)

solve_cost(self)[source]

Starts the process of solution for the cost table.

solve_long_steel(self)[source]

Starts the process of solution for the used longitudinal steel.

solve_transv_steel(self)[source]

Starts the process of solution for the used transversal steel.