def getPushoverRecorders(OuputDirName, AnalysisName): baseName = OuputDirName + '\\' + AnalysisName op.recorder('Node', '-file', baseName + '_Top_Dsp.out', '-time', '-nodeRange', 4, 4, '-dof', 1, 2, 3, 'disp') op.recorder('Node', '-file', baseName + '_Reactions.out', '-time', '-nodeRange', 1, 1, '-dof', 1, 2, 3, 'reaction')
def ops_cyclic(): ops.remove('recorders') ops.wipeAnalysis() ops.loadConst('-time', 0.0) # set hysteresis ops.recorder('Node', '-file', 'output\\cyclic_657.out', '-time', '-node', 651, '-dof', 1, 'disp') ops.pattern('Plain', 2, 1) ops.load(651, 1, 0, 0, 0, 0, 0) CyclicDisplace(1e-3, 80, 1e-3, 651, 1, 1, 1e6)
def ops_gravity(): ops.recorder('Node', '-file', 'output\\gravity_disp.out', '-nodeRange', 651, 663, '-time', '-dof', 3, 'disp') ops.recorder('Node', '-file', 'output\\gravity_reaction.out', '-nodeRange', 651, 663, '-time', '-dof', 3, 'reaction') ops.timeSeries('Linear', 1) ops.pattern('Plain', 1, 1) load: float = [0, 0, (gravity_load + dead_load) / 13, 0, 0, 0] for i in range(651, 664): ops.load(i, *load) ops.constraints('Plain') ops.numberer('Plain') ops.system('BandGen') ops.test('NormDispIncr', 1.0, 1000) ops.algorithm('Newton') ops.integrator('LoadControl', 0.01) ops.analysis('Static') ok = ops.analyze(100) logger.info("gravity analyze result is %s", ok == 0)
def define_node_recorders(self, node_recorders): ''' Define node recorders that will track the specified results type for each node. Args: node_recorder: A list of nodes to be tracked in the form [recorder_name (str), node (int), dof(int), restype (str)]. restype type can be seleceted from the following: 'disp' displacement, 'vel' velocity, 'accel' acceleration, 'incrDisp' incremental displacement, 'reaction' nodal reaction. ''' for nr in node_recorders: name, node, dof, restype = nr ops.recorder('Node', '-file', name, '-closeOnWrite', '-node', node, '-dof', dof, restype)
def recs(Nnodes, Nnodes_dir): Nelems = Nnodes - 1 # Last node's recorder: ops.recorder('Node', '-file', Nnodes_dir + 'plotCantilevel_displ.txt', '-time', '-node', *[Nnodes], '-dof', *[2], 'disp') # Elements' recorders: ops.recorder('Element', '-file', Nnodes_dir + 'eleBasicForce.txt', '-time', '-ele', *[i + 1 for i in range(Nelems)], 'basicForces') ops.recorder('Element', '-file', Nnodes_dir + 'eleLocalForces.txt', '-time', '-ele', *[i + 1 for i in range(Nelems)], 'localForce') ops.recorder('Element', '-file', Nnodes_dir + 'eleGlobalForces.txt', '-time', '-ele', *[i + 1 for i in range(Nelems)], 'globalForce') ops.recorder('Element', '-file', Nnodes_dir + 'eleBasicDispl.txt', '-time', '-ele', *[i + 1 for i in range(Nelems)], 'basicDeformation')
op.mass(2, Mass, 1e-9, 0.0) ColTransfTag = 1 op.geomTransf('Linear', ColTransfTag) #A = 3600000000.0 #E = 4227.0 #Iz = 1080000.0 fc = -4.0 # CONCRETE Compressive Strength (+Tension, -Compression) Ec = 57 * math.sqrt( -fc * 1000) # Concrete Elastic Modulus (the term in sqr root needs to be in psi op.element('elasticBeamColumn', 1, 1, 2, ACol, Ec, IzCol, ColTransfTag) op.recorder('Node', '-file', 'Data-2a/DFree.out', '-time', '-node', 2, '-dof', 1, 2, 3, 'disp') op.recorder('Node', '-file', 'Data-2a/DBase.out', '-time', '-node', 1, '-dof', 1, 2, 3, 'disp') op.recorder('Node', '-file', 'Data-2a/RBase.out', '-time', '-node', 1, '-dof', 1, 2, 3, 'reaction') #op.recorder('Drift', '-file', 'Data-2a/Drift.out','-time', '-node', 1, '-dof', 1,2,3, 'disp') op.recorder('Element', '-file', 'Data-2a/FCol.out', '-time', '-ele', 1, 'globalForce') op.recorder('Element', '-file', 'Data-2a/DCol.out', '-time', '-ele', 1, 'deformations') #defining gravity loads op.timeSeries('Linear', 1) op.pattern('Plain', 1, 1) op.load(2, 0.0, -PCol, 0.0)
def GetRecordersPushover(AnalysisName): # Record Results op.recorder('Node', '-file',AnalysisName + "_NodeDisp.out", '-time', '-node', 4, '-dof', 1,2,3,'disp') op.recorder('Node', '-file', AnalysisName + "_Reaction.out", '-time', '-node', 1,2,3, '-dof', 1,2,3,'reaction') op.recorder('Element', '-file', AnalysisName + "_Elements.out",'-time','-ele', 1,2,3, 'forces')
ops.constraints('Plain') ops.numberer('RCM') ops.system('BandGeneral') ops.test('NormDispIncr', 1.0e-6, 2000) ops.algorithm('Newton') ops.integrator('LoadControl', 0.01) ops.analysis('Static') ops.analyze(100) logger.info("gravity analyze ok...") ops.wipeAnalysis() ops.loadConst('-time', 0.0) ops.recorder('Node', '-file', '53.txt', ' -time', '-node', 53, '-dof', 1, 'disp') ops.recorder('Node', '-file', '1.txt', '-time ', '-node', 1, 2, 3, 4, 5, '-dof', 1, 'reaction') ops.timeSeries('Path', 2, '-dt', 0.1, '-filePath', 'data.txt') ops.pattern('Plain', 2, 2) ops.sp(53, 1, 1) ops.constraints('Penalty', 1e20, 1e20) ops.numberer('RCM') ops.system('BandGeneral') ops.test('NormDispIncr', 1.0e-5, 1000, 0) ops.algorithm('KrylovNewton') ops.integrator('LoadControl', 0.1) ops.analysis('Static') ops.analyze(500)
# create record # ============================================================================= #recorder('Node', '-file', filename, '-xml', filename, '-binary', filename, # '-tcp', inetAddress, port, '-precision', nSD=6, '-timeSeries', # tsTag, '-time', '-dT', deltaT=0.0, '-closeOnWrite', # '-node', *nodeTags=[], '-nodeRange', startNode, endNode, # '-region', regionTag, '-dof', *dofs=[], respType) #recorder('EnvelopeNode', '-file', filename, '-xml', filename, '-precision', # nSD=6, '-timeSeries', tsTag, '-time', '-dT', deltaT=0.0, # '-closeOnWrite', '-node', *nodeTags=[], '-nodeRange', # startNode, endNode, '-region', regionTag, '-dof', *dofs=[], respType) filename_1 = "disp_x.txt" ops.recorder("Node", "-file", filename_1, "time", "-node", *retained_node_group, "-dof", 1, "disp") filename_1 = "resisting_force.txt" nodes_lvl_00 = frame_lvl_14.to_columns_nth(0) resisting_force_group = [] for i in nodes_lvl_00: resisting_force_group.append(i[1]) # print(resisting_force_group) # for i in resisting_force_group: # print(stu.node_manager.anti_get(i)) ops.recorder("Node", "-file", filename_1, "time", "-node", *resisting_force_group, "-dof", 3, "reaction")