def uniaxial_mono(model,matname,strainincr,totalstep,prjname=None): # read analysis template file f1 = open(os.path.join(folder,'uniaxial_mono.tcl'),'r') text = f1.read() # get material export string exp1 = exporter(model,'opensees.txt','ex_OpenSees') mat = model.matlist[matname] exportdoc = exp1.write_mat(matname) # generate source file name if prjname == None: sourcefile = 'uniaxial_mono_'+matname +'.tcl' else: sourcefile = prjname + '.tcl' sourcefilepath = os.path.join('source',sourcefile) # Fill the template file output = text % {'exportdoc':exportdoc,'mat.tag':matname,'strainincr':strainincr, 'totalstep':totalstep,'prjname':prjname} # write source file to working folder if not os.path.exists('source'): os.makedirs('source') f1 = open(sourcefilepath,'w') f1.write(output) f1.close() # call external opensees program run_OpenSees(sourcefile) #run_OpenSees_interact(sourcefile,loop) return 1
def uniaxial_mono(model, matname, strainincr, totalstep, prjname=None): # read analysis template file f1 = open(os.path.join(folder, 'uniaxial_mono.tcl'), 'r') text = f1.read() # get material export string exp1 = exporter(model, 'opensees.txt', 'ex_OpenSees') mat = model.matlist[matname] exportdoc = exp1.write_mat(matname) # generate source file name if prjname == None: sourcefile = 'uniaxial_mono_' + matname + '.tcl' else: sourcefile = prjname + '.tcl' sourcefilepath = os.path.join('source', sourcefile) # Fill the template file output = text % { 'exportdoc': exportdoc, 'mat.tag': matname, 'strainincr': strainincr, 'totalstep': totalstep, 'prjname': prjname } # write source file to working folder if not os.path.exists('source'): os.makedirs('source') f1 = open(sourcefilepath, 'w') f1.write(output) f1.close() # call external opensees program run_OpenSees(sourcefile) #run_OpenSees_interact(sourcefile,loop) return 1
def create_model(prjname,fsection,run=True,itype='Displacement',nstep=500, incr=-0.005): model1 = model(settings) model1.settings['prjname'] = prjname # create all available material models model1.material('mat1','uniaxial_elastic',{'E':29000.0,'mu':0.3,'mass':0.0}) model1.material('CFRPBAR_BASE','uniaxial_elastic',{'E':18000.0,'mu':0.3,'mass':0.0}) model1.material('CFRPCABLE_BASE','uniaxial_elastic',{'E':22300.0,'mu':0.3,'mass':0.0}) model1.material('CFRPBAR','uniaxial_elastic_minmax',{'epsi_ut':0.016,'epsi_uc':-0.016,'baseseq':'CFRPBAR_BASE'}) model1.material('CFRPCABLE','uniaxial_elastic_minmax',{'epsi_ut':0.016,'epsi_uc':-0.016,'baseseq':'CFRPCABLE_BASE'}) model1.material('CFRPBAR_pre','uniaxial_elastic_InitStrain',{'iepsi':0.01,'basetag':'CFRPBAR'}) model1.material('CFRPCABLE_pre','uniaxial_elastic_InitStrain',{'iepsi':0.01,'basetag':'CFRPCABLE'}) model1.material('MMFX2','uniaxial_steel_02',{'E':29000.0,'mu':0.3,'mass':0.0, 'fy':165.0,'b':0.001,'r0':2.0, 'cr1':0.925,'cr2':0.15}) model1.material('pstrand','uniaxial_steel_02',{'E':28000.0,'mu':0.3,'mass':0.0, 'fy':225,'b':0.001,'r0':2.0, 'cr1':0.925,'cr2':0.15}) model1.material('pstrand_pre','uniaxial_elastic_InitStrain',{'iepsi':0.015,'basetag':'pstrand'}) model1.material('UHPC1','uniaxial_UHPC',{'E':8000.0,'mu':0.3,'mass':0.0, 'sigt0':1.3, 'epst0':0.000179, 'sigt1':1.5, 'epst1':0.004, 'sigt2':1.501, 'epst2':0.016, 'epst3':0.016, 'epsc0':0.003286, 'sigc0':28, 'sigc1':28.1, 'epsc1':0.004, 'epsc2':0.01, 'alphaT1':1, 'alphaT2':1, 'alphaT3':1, 'alphaC':1, 'alphaC1':1, 'alphaCU':1, 'betaT':1, 'betaC':1, }) model1.material('UHPC2','uniaxial_UHPC2',{'E':6000.0,'mu':0.3,'mass':0.0, 'sigt0':1.1, 'epst0':0.000183, 'sigt1':1.1, 'epst1':0.004, 'epst2':0.016, 'epsc0':-0.003286, 'sigc0':-28, 'epsc1':-0.01, 'alphaT1':1, 'alphaT2':1, 'alphaC':1, 'alphaCU':1, 'betaT':1, 'betaC':1, }) matkeylist = ['mat1','CFRPBAR_BASE','CFRPCABLE_BASE','CFRPBAR','CFRPCABLE','MMFX2','UHPC1','UHPC2','CFRPBAR_pre','CFRPCABLE_pre','pstrand','pstrand_pre'] #fsection = create_section.create_rec_section(1,2,20,mat='mat1',reinf=None) model1.section('section','fibersection',fsection) model1 = twopoint_bending(model1,'section',48,20,24,itype=itype,nstep=nstep, incr=incr) model1 = create_section.create_section_recorder(model1,12,'section',2, option='maxy') model1 = create_section.create_section_recorder(model1,12,'section',2, option='miny') model1 = create_section.create_section_recorder(model1,12,'section',2, option='fiberlib') model1 = create_section.create_section_recorder(model1,12,'section',2, option='all') exp1 = exporter(model1,'bending.tcl','ex_OpenSees') exp1.export(folder=prjname,matkeylist=matkeylist) ss = os.path.join(folder,prjname,'bending.tcl') ss = ss.replace('\\','\\\\') if run: run_OpenSees_abs(ss,version ='2.4.0') return model1
def create_model(prjname, fsection, run=True, itype='Displacement', nstep=500, incr=-0.005): model1 = model(settings) model1.settings['prjname'] = prjname # create all available material models model1.material('mat1', 'uniaxial_elastic', { 'E': 29000.0, 'mu': 0.3, 'mass': 0.0 }) model1.material('CFRPBAR_BASE', 'uniaxial_elastic', { 'E': 18000.0, 'mu': 0.3, 'mass': 0.0 }) model1.material('CFRPCABLE_BASE', 'uniaxial_elastic', { 'E': 22300.0, 'mu': 0.3, 'mass': 0.0 }) model1.material('CFRPBAR', 'uniaxial_elastic_minmax', { 'epsi_ut': 0.016, 'epsi_uc': -0.016, 'baseseq': 'CFRPBAR_BASE' }) model1.material('CFRPCABLE', 'uniaxial_elastic_minmax', { 'epsi_ut': 0.016, 'epsi_uc': -0.016, 'baseseq': 'CFRPCABLE_BASE' }) model1.material('CFRPBAR_pre', 'uniaxial_elastic_InitStrain', { 'iepsi': 0.01, 'basetag': 'CFRPBAR' }) model1.material('CFRPCABLE_pre', 'uniaxial_elastic_InitStrain', { 'iepsi': 0.01, 'basetag': 'CFRPCABLE' }) model1.material( 'MMFX2', 'uniaxial_steel_02', { 'E': 29000.0, 'mu': 0.3, 'mass': 0.0, 'fy': 165.0, 'b': 0.001, 'r0': 2.0, 'cr1': 0.925, 'cr2': 0.15 }) model1.material( 'pstrand', 'uniaxial_steel_02', { 'E': 28000.0, 'mu': 0.3, 'mass': 0.0, 'fy': 225, 'b': 0.001, 'r0': 2.0, 'cr1': 0.925, 'cr2': 0.15 }) model1.material('pstrand_pre', 'uniaxial_elastic_InitStrain', { 'iepsi': 0.015, 'basetag': 'pstrand' }) model1.material( 'UHPC1', 'uniaxial_UHPC', { 'E': 8000.0, 'mu': 0.3, 'mass': 0.0, 'sigt0': 1.3, 'epst0': 0.000179, 'sigt1': 1.5, 'epst1': 0.004, 'sigt2': 1.501, 'epst2': 0.016, 'epst3': 0.016, 'epsc0': 0.003286, 'sigc0': 28, 'sigc1': 28.1, 'epsc1': 0.004, 'epsc2': 0.01, 'alphaT1': 1, 'alphaT2': 1, 'alphaT3': 1, 'alphaC': 1, 'alphaC1': 1, 'alphaCU': 1, 'betaT': 1, 'betaC': 1, }) model1.material( 'UHPC2', 'uniaxial_UHPC2', { 'E': 6000.0, 'mu': 0.3, 'mass': 0.0, 'sigt0': 1.1, 'epst0': 0.000183, 'sigt1': 1.1, 'epst1': 0.004, 'epst2': 0.016, 'epsc0': -0.003286, 'sigc0': -28, 'epsc1': -0.01, 'alphaT1': 1, 'alphaT2': 1, 'alphaC': 1, 'alphaCU': 1, 'betaT': 1, 'betaC': 1, }) matkeylist = [ 'mat1', 'CFRPBAR_BASE', 'CFRPCABLE_BASE', 'CFRPBAR', 'CFRPCABLE', 'MMFX2', 'UHPC1', 'UHPC2', 'CFRPBAR_pre', 'CFRPCABLE_pre', 'pstrand', 'pstrand_pre' ] #fsection = create_section.create_rec_section(1,2,20,mat='mat1',reinf=None) model1.section('section', 'fibersection', fsection) model1 = twopoint_bending(model1, 'section', 48, 20, 24, itype=itype, nstep=nstep, incr=incr) model1 = create_section.create_section_recorder(model1, 12, 'section', 2, option='maxy') model1 = create_section.create_section_recorder(model1, 12, 'section', 2, option='miny') model1 = create_section.create_section_recorder(model1, 12, 'section', 2, option='fiberlib') model1 = create_section.create_section_recorder(model1, 12, 'section', 2, option='all') exp1 = exporter(model1, 'bending.tcl', 'ex_OpenSees') exp1.export(folder=prjname, matkeylist=matkeylist) ss = os.path.join(folder, prjname, 'bending.tcl') ss = ss.replace('\\', '\\\\') if run: run_OpenSees_abs(ss, version='2.4.0') return model1
model1.link_mat_prop('mat1', 'prop1') model1.link_sec_prop('sec3', 'prop1') model1.link_orient_prop('orient1', 'prop1') model1.link_prop_conn('prop1', [1, 2, 3]) model1.bond('left support', {'xyz': [1, 1, 1, 1, 1, 1], 'nodelist': [1, 2, 3]}) print model1.get_mat_prop('mat1', 'E') model1.parameter('E1', {'lib': 'matlist', 'obj': 'mat1', 'prop': 'E'}) # ==========test exporter ======== #exp1 = exporter(model1,'Opensees.txt','ex_OpenSees') #exp1 = exporter(model1,'Ansys.txt','ex_Ansys') #exp1.write_variables() #exp1.write_settings() #exp1.write_coord() #exp1.write_conn_prop() #exp1.write_mat() #exp1.write_sec() #exp1.write_out() exp1 = exporter(model1, 'Marc.txt', 'ex_Marc') exp1.write_settings() exp1.write_coord() exp1.write_conn_prop() exp1.write_out() print 1 libop.save('model', model1, 'trial_model')
model1.link_sec_prop('sec3','prop1') model1.link_orient_prop('orient1','prop1') model1.link_prop_conn('prop1',[1,2,3]) model1.bond('left support',{'xyz':[1,1,1,1,1,1],'nodelist':[1,2,3]}) print model1.get_mat_prop('mat1','E') model1.parameter('E1',{'lib':'matlist','obj':'mat1','prop':'E'}) # ==========test exporter ======== #exp1 = exporter(model1,'Opensees.txt','ex_OpenSees') #exp1 = exporter(model1,'Ansys.txt','ex_Ansys') #exp1.write_variables() #exp1.write_settings() #exp1.write_coord() #exp1.write_conn_prop() #exp1.write_mat() #exp1.write_sec() #exp1.write_out() exp1 = exporter(model1,'Marc.txt','ex_Marc') exp1.write_settings() exp1.write_coord() exp1.write_conn_prop() exp1.write_out() print 1 libop.save('model',model1,'trial_model')