#Materials from materials.sia262 import SIA262_materials concrete = SIA262_materials.c30_37 reinfSteel = SIA262_materials.SpecialII1956SIA161 #Actions FxLoc = 10e3 MyLoc = 1e3 FyLoc = 1e3 eSize = 1.0 #length of elements # *** GEOMETRY *** FEcase = xc.FEProblem() model = gm.GridModel(FEcase) preprocessor = model.getPreprocessor() # coordinates in global X,Y,Z axes for the grid generation xList = [0, 1, 2] yList = [0] zList = [0] #auxiliary data lastXpos = len(xList) - 1 lastYpos = len(yList) - 1 lastZpos = len(zList) - 1 # grid of X,Y,Z axes coordinates rejXYZ = model.setGrid(xList, yList, zList)
colSpacing = 6.50 #spacing between columns [m] windPress = 1.35e3 #wind pressure [N/m2] vehicCrashF = 750e3 #component of vehicle crash perpendicular to the wall [N] zvehicCrashF = 3.05 #Z coordinate of the point where the force acts [m] ULwindTC = colSpacing * windPress # uniform load on the top column due to wind [N/m] ULwindCC = colSpacing / 3.0 * windPress # uniform load on the curve column due to wind [N/m] PLwind2C = 2 * colSpacing / 3.0 * 4.12 * windPress #horizontal point load transfered to the head of the #top column due to wind supported by the 2 #central metallic curved columns eSize = 0.2 #length of elements # *** GEOMETRY *** FEcase = xc.FEProblem() model = gm.GridModel(FEcase) preprocessor = model.getPreprocessor() # coordinates in global X,Y,Z axes for the grid generation xList = [0, excentInf, excentInf + excentSup] yList = [0] zList = [0, HinfColumn, HinfColumn + HSupColumn] #we add Z coordinates (after moving these points in X they would #shape the curve column that sustains the glass) incrAngRad = math.radians(AnglIncr) zBottomGlass = HinfColumn + HSupColumn for i in range(1, int(AnglGlass / AnglIncr) + 1): zList.append(zBottomGlass + RGlass * math.sin(i * incrAngRad)) #auxiliary data
#Elements' mean size [Grandeur moyen des éléments] eSize=0.5 #Charges auxiliary data deadLoadInterior=3.0 #(kN/m2) deadLoadFacade=8.0 #(kN/m) snow=1.70 #(kN/m2) wind10m=0.77 #(kN/m2) wind below 10 m wind19m=1.04 #(kN/m2) wind at 19 m (linear rising between 10 and 19 m) serviceLoad1Dwelling=2.0 #(kN/m2) level 1-6 serviceLoad1Office=4.0 #(kN/m2) level 0 stairs office serviceLoad2parking=2.5 #(kN/m2) level -1 -2, parking and external area # *** GEOMETRY [GÉOMÉTRIE]*** EC2building= xc.FEProblem() model= gm.GridModel(EC2building) prep=model.getPreprocessor() # coordinates in global X,Y,Z axes for the grid generation # X coordinates xList=[0] xAxis=0 for i in range (0,2): xAxis=xAxis+SpanX[i] xList.append(xAxis-lengthFacadeColumns/2) xList.append(xAxis) xList.append(xAxis+lengthFacadeColumns/2) dimAux=(SpanX[2]-dimXHole)/2 xList.append(xAxis+dimAux) xList.append(xAxis+dimAux+dimXHole)
def loadReports(self, gridmodl, pathGr, texFile, grWdt): '''Creates the graphics files of loads for the load case and insert them in a LaTex file :param gridmodl: object of type GridModel :param pathGr: directory to place figures (ex: 'text/graphics/loads/') :param texFile: laTex file where to include the graphics (e.g.:'text/report_loads.tex') :param grWdt: width to be applied to graphics ''' labl = self.loadCaseName for st in self.setsToDispLoads: grfname = pathGr + self.loadCaseName + st.elSet.name capt = self.loadCaseDescr + ', ' + ', ' + self.unitsLoads gridmodl.displayLoad(setToDisplay=st.elSet, loadCaseNm=self.loadCaseName, unitsScale=self.unitsScaleLoads, vectorScale=self.vectorScaleLoads, multByElemArea=self.multByElemAreaLoads, viewDef=self.cameraParameters, caption=capt, fileName=grfname + '.jpg') gridmodl.displayLoad(setToDisplay=st.elSet, loadCaseNm=self.loadCaseName, unitsScale=self.unitsScaleLoads, vectorScale=self.vectorScaleLoads, multByElemArea=self.multByElemAreaLoads, viewDef=self.cameraParameters, caption=capt, fileName=grfname + '.eps') insertGrInTex(texFile=texFile, grFileNm=grfname, grWdt=grWdt, capText=capt, labl=labl) for st in self.setsToDispBeamLoads: grfname = pathGr + self.loadCaseName + st.elSet.name capt = self.loadCaseDescr + ', ' + ', ' + self.unitsLoads lcs = GridModel.QuickGraphics(gridmodl) lcs.dispLoadCaseBeamEl(loadCaseName=self.loadCaseName, setToDisplay=st.elSet, fUnitConv=self.unitsScaleLoads, elLoadComp=self.compElLoad, elLoadScaleF=self.vectorScaleLoads, nodLoadScaleF=self.vectorScalePointLoads, viewDef=self.cameraParameters, caption=capt, fileName=grfname + '.jpg') lcs.dispLoadCaseBeamEl(loadCaseName=self.loadCaseName, setToDisplay=st.elSet, fUnitConv=self.unitsScaleLoads, elLoadComp=self.compElLoad, elLoadScaleF=self.vectorScaleLoads, nodLoadScaleF=self.vectorScalePointLoads, viewDef=self.cameraParameters, caption=capt, fileName=grfname + '.eps') insertGrInTex(texFile=texFile, grFileNm=grfname, grWdt=grWdt, capText=capt, labl=labl) return
wcantlv = 1 #Actions Qcantlv = 10e3 #N/m2 #Materials fcmConcr = 30e6 EcConcr = 8500 * (fcmConcr / 1e6)**(1 / 3.0) * 1e6 cpoisConcr = 0.2 #Poisson's coefficient of concrete densConcr = 2500 #specific mass of concrete (kg/m3) eSize = 1 #length of elements # *** GEOMETRY *** FEcase = xc.FEProblem() model = gm.GridModel(FEcase) preprocessor = model.getPreprocessor() # coordinates in global X,Y,Z axes for the grid generation xList = [0, wcantlv] yList = [0.1 * i for i in range(int(Lcantlv / 0.1) + 1)] zList = [0] #auxiliary data lastXpos = len(xList) - 1 lastYpos = len(yList) - 1 lastZpos = len(zList) - 1 # grid of X,Y,Z axes coordinates rejXYZ = model.setGrid(xList, yList, zList) #Displacements of the grid points in a range
# alphQExcTr=1.00 # #Braking load # brakingQhw=min(1.2*alphQ1hw*Qk1+0.1*alphq1hw*qk1*3*totalwidth,900e3) #in highway # brakingQsr=min(1.2*alphQ1sr*Qk1+0.1*alphq1sr*qk1*3*totalwidth,900e3) #in subsidiary road # #Road sub-base thickness # subbThHw=1.8 #mean sub-base thickness under the highway # subbThSr=1.2 #mean sub-base thickness under the subsidiary road # densSubb=2.2e3 #mass density (kg/m3) of the sub-base material # *** GEOMETRY *** TBBridge= xc.FEProblem() model= gm.GridModel(TBBridge) # coordinates in global X,Y,Z axes for the grid generation xList=[0,1.475,2.15,4.425,5.15,7.375,8.15,9.65,10.325,11.8] yList=[0,15,30,45] zList=[0,1.24-0.3,diaphHeight,diaphHeight+0.20+deckSlabTh/2.0] #auxiliary data lastXpos=len(xList)-1 lastYpos=len(yList)-1 lastZpos=len(zList)-1 # grid of X,Y,Z axes coordinates rejXYZ= model.setGrid(xList,yList,zList) #Displacements of the grid points in a range