Prestressed materials

Prestressed concrete

class materials.prestressing.prestressed_concrete.PrestressTendon(lstRoughPnts)

Bases: object

Geometry and prestressing losses of a prestressing tendon

Variables:
  • lstRoughPnt – list of 3D-coordinate tuples defining the points from which to interpolate the cubic spline that will delineate the tendon geometry. e.g. [(x1,y1,z1),(x2,y2,z2),…]
  • roughCoordMtr – matrix 3*n_rough_ptos [[x1,x2, ..],[y1,y2,..],[z1,z2,..]]
ScoordToXYprojCoord(Scoord)

return the projected XYcoordinate of the tendon point corresponding to the value Scoord given as parameter

applyStressToElems(stressMtr)

Initializes the stress in each tendon element with the corresponding value of stress defined in stressMtr

Parameters:stressMtr – matrix of dimension 1*number of elements in the tendon with the stress to be applied to each of the elements (from left to right)
calcLossAnchor(Ep, anc_slip_extr1=0.0, anc_slip_extr2=0.0)

Creates the attributes lossAnchor and stressAfterLossAnchor of type array that contains for each point in fineCoordMtr the cumulative immediate loss of prestressing due to anchorage slip and the stress after this loss, respectively. Loss due to friction must be previously calculated

Parameters:
  • Ep – elasic modulus of the prestressing steel
  • anc_slip_extr1 – anchorage slip (data provided by the manufacturer of the anchorage system) at extremity 1 of the tendon (starting point) (= deltaL)
  • anc_slip_extr2 – anchorage slip at extremity 2 of the tendon (ending point) (= deltaL)
calcLossFriction(coefFric, k, sigmaP0_extr1=0.0, sigmaP0_extr2=0.0)

Creates the attributes lossFriction and stressAfterLossFriction of type array that contains for each point in fineCoordMtr the cumulative immediate loss of prestressing due to friction and the stress after this loss, respectively.

Parameters:
  • sigmaP0_extr1 – maximum stress applied at the extremity 1 of the tendon (starting point) (stress refers to its value at the end of the anchorage, in the contact with concrete). Defaults to 0.0 (no prestress applied)
  • sigmaP0_extr2 – idem for prestress applied at extremity 2 (end point of the tendon). Defaults to 0.0 (no prestress applied)
  • coefFric – coefficient of friction between the tendon and its sheathing
  • k – wobble coefficient or coefficient for wave effect, that refers to the unintentional deviation of the position of the tendon along the duct. It’s expressed by unit length of tendon. The value of k varies from 0.0015 to 0.0050 per meter length of the tendon depending on the type of tendon.
creaTendonElements(preprocessor, materialName, elemTypeName, crdTransfName, areaTendon, setName)

Creates the nodes and elements of the tendon and appends them to a set. Creates also the attribute lstOrderedElems as a list with the elements of the tendon ordered from left to right.

Parameters:
  • preporcessor – preprocessor
  • materialName – name of the material
  • elemTypeName – name of the type of element
  • crdTransfName – name of the coordinate transformation
  • areaTendon – area of the cross-section of the tendon
  • setName – name of the set to which append the nodes and elements created (if the set doesn’t exist, it’s created)
fAnc_ext1(s)

Funtion to minimize when searching the point from which the tendon is not affected by the anchorage slip in extremity 1

fAnc_ext2(s)

Funtion to minimize when searching the point from which the tendon is not affected by the anchorage slip in extremity 2

getAngleSequence()

Return for each point in fineCoordMtr the deviation deviation (angle in rad) with respect to the preceding point

getCumAngle()

Return for each point in fineCoordMtr the cumulative angular deviation (angle in rad) of the tendon from its starting point

getCumLength()

Return for each point in fineCoordMtr the cumulative lenght of tendon from its starting point

getLengthSequence()

Return for each point in fineCoordMtr the distance to the preceding point

getReverseCumAngle()

Return for each point in fineCoordMtr the cumulative angular deviation (angle in rad) of the tendon from its ending point

getReverseCumLength()

Return for each point in fineCoordMtr the cumulative lenght of tendon from its ending point

plot2D(XaxisValues='X', axisEqualScale='N', symbolRougPoints=None, symbolFinePoints=None, symbolTendon=None, symbolLossFriction=None, symbolStressAfterLossFriction=None, symbolLossAnch=None, symbolStressAfterLossAnch=None)

Return in a 2D graphic the results to which a symbol is assigned. Symbol examples: ‘r-‘: red solid line, ‘mo’: magenta circle, ‘b–’: blue dashes, ‘ks’:black square,’g^’ green triangle_up, ‘c*’: cyan star, … :param XaxisValues: =’X’ (default) to represent in the diagram X-axis

the X coordinates of the tendon,
=’Y’ to represent in the diagram X-axis
the Y coordinates of the tendon,
=’XY’ to represent in the diagram X-axis
the coordinate by the projection of the curve on the XY plane
Parameters:axisEqualScale – =’Y’, ‘y’,’yes’ or ‘Yes’ for equal aspect ratio (defaults to ‘N’)
plot3D(axisEqualScale='N', symbolRougPoints=None, symbolFinePoints=None, symbolTendon=None, symbolLossFriction=None, symbolStressAfterLossFriction=None, symbolLossAnch=None, symbolStressAfterLossAnch=None)

Return in a 3D graphic the results to which a symbol is assigned. Symbol examples: ‘r-‘: red solid line, ‘mo’: magenta circle, ‘b–’: blue dashes, ‘ks’:black square,’g^’ green triangle_up, ‘c*’: cyan star, … :param axisEqualScale: =’Y’, ‘y’,’yes’ or ‘Yes’ for equal aspect ratio

(defaults to ‘N’)
pntsInterpTendon(nPntsFine, smoothness, kgrade=3)

Generates a cubic spline (default) or a spline of grade kgrade interpolation from the rough points and calculates its value and the value of its derivative in nPntsFine equispaced. Creates the following attributes:

  • fineCoordMtr: matrix with coordinates of the interpolated points

[[x1,x2, ..],[y1,y2,..],[z1,z2,..]] - fineDerivMtr: matrix with the vector representing the derivative in each interpolated - tck: tuple (t,c,k) containing the vector of knots, the B-spline

coefficients, and the degree of the spline.
  • fineScoord: curvilinear coordinate (cummulative length of curve
    for in each point)
  • fineProjXYcoord: coordinate by the projection of the curve on the XY

plane. Matrix 1*nPntsFine whose first elements is 0 and the rest the cumulative distance to the first point

materials.prestressing.prestressed_concrete.angle_between(a, b)

Return the angle between vectors a and b

materials.prestressing.prestressed_concrete.set_axes_equal(ax)

Make axes of 3D plot have equal scale so that spheres appear as spheres, cubes as cubes, etc.. This is one possible solution to Matplotlib’s ax.set_aspect(‘equal’) and ax.axis(‘equal’) not working for 3D.

Input
ax: a matplotlib axis, e.g., as output from plt.gca().