Example #1
0
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
Example #2
0
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
Example #3
0
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
Example #4
0
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
Example #5
0
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')
Example #6
0
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')