n_points_rough = 5 #number of points provided to the interpolation algorithm n_points_fine = 101 #number of points interpolated #Anchorage slip deltaL_mm = 5 #anchorage draw-in (provided by manufacturer) [mm] deltaL_m = 5e-3 #anchorage draw-in (provided by manufacturer) [m] #Exact parabola from model.geometry import geom_utils a, b, c = geom_utils.fit_parabola(x=np.array([0, lBeam_mm / 2.0, lBeam_mm]), y=np.array([eEnds, eMidspan_mm, eEnds])) x_parab_rough, y_parab_rough, z_parab_rough = geom_utils.eq_points_parabola( 0, lBeam_mm, n_points_rough, a, b, c, angl_Parab_XZ) #Tendon [mm] definition, layout and friction losses tendon_mm = presconc.PrestressTendon([]) tendon_mm.roughCoordMtr = np.array( [x_parab_rough, y_parab_rough, z_parab_rough]) #Interpolated 3D spline tendon_mm.pntsInterpTendon(n_points_fine, smoothness=1, kgrade=3) # Losses of prestressing due to friction lssFrict_mm = tendon_mm.getLossFriction(coefFric=mu, k=k_mm, sigmaP0_extr1=sigmap0max_mm, sigmaP0_extr2=0.0) # Losses of prestressing due to anchorage slip (loss due to friction must be # previously calculated lssAnch_mm = tendon_mm.getLossAnchor(Ep=Ep_mm, anc_slip_extr1=deltaL_mm, anc_slip_extr2=0.0) stressAfterLossAnch_mm = tendon_mm.stressAfterLossFriction - lssAnch_mm
fy=fy, b=0.001, initialStress=fpi) #Geometry n_points_rough = 5 #number of points provided to the interpolation algorithm n_points_fine = 91 #number of points interpolated #Exact parabola from model.geometry import geom_utils a, b, c = geom_utils.fit_parabola(np.array([0, span / 2.0, span]), np.array([eEnds, eMidspan, eEnds])) x_parab_rough, y_parab_rough, z_parab_rough = geom_utils.eq_points_parabola( 0, span, n_points_rough, a, b, c, 0) #Tendon1 definition, layout tendon1 = presconc.PrestressTendon([]) tendon1.roughCoordMtr = np.array([x_parab_rough, y_parab_rough, z_parab_rough]) #Interpolated 3D spline tendon1.pntsInterpTendon(n_points_fine, 1) #Plot #tendon1.plot2D(XaxisValues='X',fileName='plot.png',symbolRougPoints='r*',symbolFinePoints='g+',symbolTendon='g-') corCooTr = modelSpace.newLinearCrdTransf(trfName='corCooTr', xzVector=xc.Vector([0, -1, 0])) nodes.defaultTag = 101 tendon1Set = tendon1.creaTendonElements(preprocessor=preprocessor, materialName='prestressingSteel', elemTypeName='Truss', crdTransfName='corCooT', areaTendon=Aps, setName='tendon1Set')
# Interpolation n_points_rough=5 #number of points provided to the interpolation algorithm n_points_fine=101 #number of points interpolated #Anchorage slip deltaL=5 #anchorage draw-in (provided by manufacturer) [mm] #XC calculation #Exact parabola from model.geometry import geom_utils a,b,c=geom_utils.fit_parabola(x=np.array([0,lBeam/2.0,lBeam]), y=np.array([eEnds,eMidspan,eEnds])) x_parab_rough,y_parab_rough,z_parab_rough=geom_utils.eq_points_parabola(0,lBeam,n_points_rough,a,b,c,angl_Parab_XZ) #Tendon definition, layout and friction losses tendon=presconc.PrestressTendon([]) tendon.roughCoordMtr=np.array([x_parab_rough,y_parab_rough,z_parab_rough]) #Interpolated 3D spline tendon.pntsInterpTendon(n_points_fine,smoothness=1,kgrade=3) # Losses of prestressing due to friction lssFrict=tendon.getLossFriction(coefFric=mu,k=k,sigmaP0_extr1=sigmap0max,sigmaP0_extr2=0.0) # Losses of prestressing due to anchorage slip (loss due to friction must be # previously calculated lssAnch=tendon.getLossAnchor(Ep=Ep,anc_slip_extr1=deltaL,anc_slip_extr2=0.0) stressAfterLossAnch=tendon.stressAfterLossFriction-lssAnch ''' #Plot fig1,ax2d=tendon.plot2D(XaxisValues='X',resultsToPlot=[[stressAfterLossAnch,'r-','Stress after loss due to anchorage slip']]) fig1.show() '''