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),…]. For straight tendon only two 3D-coordinate tuples are provided defining the two extremities of the tendon.
  • 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

applyStressLossToElems(stressLossMtr)

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

Parameters:stressLossMtr – matrix of dimension 1*number of nodes in the tendon with the loss of stress to be applied to each of the elements (from left to right)
applyStressToElems(stressMtr)

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

Parameters:stressMtr – matrix of dimension 1*number of nodes in the tendon with the stress to be applied to each of the elements (from left to right)
creaTendonElements(preprocessor, materialName, elemTypeName, crdTransfName, areaTendon, setName)

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

Parameters:
  • preprocessor – 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 length of tendon from its starting point

getLengthSequence()

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

getLossAnchor(Ep, anc_slip_extr1=0.0, anc_slip_extr2=0.0)

Return an array that contains for each point in fineCoordMtr the cumulative loss of prestressing due to anchorage. 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)
getLossFriction(coefFric, k, sigmaP0_extr1=0.0, sigmaP0_extr2=0.0)

Return an array that contains for each point in fineCoordMtr the cumulative immediate loss of prestressing due to friction. The method also creates the attribute stressAfterLossFriction, of type array, that contains for each point in fineCoordMtr the stress after after this loss (it is used in calculation of losses due to anchorage slip)

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.
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 length of tendon from its ending point

plot2D(XaxisValues='X', axisEqualScale='N', symbolRougPoints=None, symbolFinePoints=None, symbolTendon=None, resultsToPlot=[])

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’)
  • resultsToPlot

    list of results to plot. Each result to be displayed is input with the following parameters: (matRes,symb,label), where: - matRes: is the matrix of dimension 1*number of elements in the

    tendon with the value of the result for each of those elements
    • symb: is the symbol to use for representing this result
    • label: is the text to label this result
plot3D(axisEqualScale='N', symbolRougPoints=None, symbolFinePoints=None, symbolTendon=None, resultsToPlot=[])

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’)
Parameters:resultsToPlot

list of results to plot. Each result to be displayed is input with the following parameters: (matRes,symb,label), where: - matRes: is the matrix of dimension 1*number of elements in the

tendon with the value of the result for each of those elements
  • symb: is the symbol to use for representing this result
  • label: is the text to label this result
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

pntsStraightTendon(eSize)

Interpolates coordinates in the straight line defined by two points in lstRoughPnt, spaced eSize. Creates attribute:

  • fineCoordMtr: matrix with coordinates of the interpolated points

[[x1,x2, ..],[y1,y2,..],[z1,z2,..]]

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().