예제 #1
0
def e55_damage_element_size():
    w_max = 0.1
    po = PullOutModel(n_e_x=80, k_max=1000, w_max=w_max)
    po.tline.step = 0.01
    po.loading_scenario.set(loading_type='cyclic')
    po.loading_scenario.set(number_of_cycles=1)
    po.cross_section.set(A_f=16.67, P_b=1.0, A_m=1540.0)
    po.material.set(K=100000.0, gamma=-0.0, tau_bar=45.0)
    po.material.omega_fn.set(alpha_1=1.0, alpha_2=1000.0, plot_max=0.01)
    po.geometry.L_x = 200.0

    import pylab

    n_e_array = [20, 40, 60, 80, 100]
    for n_e_x in n_e_array:
        po.n_e_x = n_e_x
        po.run()
        P = po.get_P_t()
        w0, wL = po.get_w_t()
        pylab.subplot(2, 2, 1)
        pylab.plot(wL, P, label='n_e=%d' % n_e_x)
        ax = pylab.subplot(2, 1, 2)
        po.plot_sf(ax, 1.0)
    pylab.legend()
    pylab.show()
예제 #2
0
def e54_damage_length_dependency():
    w_max = 2.0
    po = PullOutModel(n_e_x=100, k_max=1000, w_max=w_max)
    po.tline.step = 0.01
    po.loading_scenario.set(loading_type='cyclic')
    po.loading_scenario.set(number_of_cycles=1)
    po.geometry.L_x = 100.0
    po.cross_section.set(A_f=16.67, P_b=1.0, A_m=1540.0)
    po.material.set(K=100000.0, gamma=0.0, tau_bar=45.0)
    po.material.omega_fn.set(alpha_1=1.0, alpha_2=50.0, plot_max=0.62)

    sig_f_max = 2400.00
    A_f = po.cross_section.A_f
    P_f_max = A_f * sig_f_max

    import pylab
    L_max = np.log10(350.0)
    L_array = np.logspace(0, L_max, 4)
    for L in L_array:
        po.geometry.L_x = L
        po.run()
        P = po.get_P_t()
        w0, wL = po.get_w_t()
        pylab.subplot(2, 1, 1)
        pylab.plot(wL, P, label='L=%f' % L)
        dG_bar = po.get_dG_t()
        pylab.subplot(2, 1, 2)
        pylab.plot(wL, dG_bar, label='L=%f' % L)

    pylab.subplot(2, 1, 1)
    pylab.plot([0.0, w_max], [P_f_max, P_f_max], label='yarn strength')
    pylab.legend()
    pylab.show()
    show(po)
예제 #3
0
def e51_isotropic_negative_hardening():
    '''Show the effect of strain softening represented 
    by kinematic or isotripic hardening.
    '''
    po = PullOutModel(n_e_x=100, k_max=500, w_max=0.1)
    po.tline.step = 0.005
    po.loading_scenario.set(loading_type='cyclic')
    po.loading_scenario.set(number_of_cycles=1)
    po.cross_section.set(A_f=16.67, P_b=1.0, A_m=1540.0)
    po.geometry.L_x = 200.0
    po.material.set(gamma=0.0, K=-100.0, tau_bar=10.0)
    po.material.omega_fn.set(alpha_1=0.0, alpha_2=1.0, plot_max=10.0)
    po.run()

    show(po)
예제 #4
0
def e53_damage_softening():
    '''Show the effect of strain softening represented 
    by negative kinematic hardening.

    @todo: motivate fracture energy.
    '''
    po = PullOutModel(n_e_x=100, k_max=1000, w_max=0.62)
    po.tline.step = 0.01
    po.loading_scenario.set(loading_type='cyclic')
    po.loading_scenario.set(number_of_cycles=1)
    po.geometry.L_x = 100.0
    po.cross_section.set(A_f=16.67, P_b=1.0, A_m=1540.0)
    po.material.set(K=100000.0, gamma=0.0, tau_bar=45.0)
    po.material.omega_fn.set(alpha_1=1.0, alpha_2=50.0, plot_max=0.62)
    po.run()
    show(po)
def get_pullout_model_carbon_concrete(u_f0_max=5.0):
    '''Helper method to get the constructing the default
    configuration of the pullout model.
    '''
    '''Helper method to get the constructing the default
    configuration of the pullout model.
    '''
    po = PullOutModel(n_e_x=100, k_max=1000, u_f0_max=u_f0_max)
    po.tline.step = 0.01
    po.loading_scenario.set(loading_type='cyclic')
    po.loading_scenario.set(number_of_cycles=1)
    po.geometry.L_x = 100.0
    po.cross_section.set(A_f=16.67, P_b=1.0, A_m=1540.0)
    po.material.set(K=100000.0, gamma=0.0, tau_bar=45.0)
    po.material.omega_fn.set(alpha_1=1.0, alpha_2=50.0, plot_max=0.62)

    return po
예제 #6
0
def e52_frp_lap_joint_test():
    '''Show the effect of strain softening represented 
    by negative kinematic hardening.
    The parameters were taken from
    [Baena e. al. 2009]
    '''
    po = PullOutModel(n_e_x=100, k_max=1000, w_max=25.0)
    po.tline.step = 0.01
    po.loading_scenario.set(loading_type='cyclic')
    po.loading_scenario.set(number_of_cycles=1)
    po.geometry.L_x = 45.0
    po.cross_section.set(A_f=64.0, P_b=28.0, A_m=28000.0)
    po.material.set(K=-0.2, gamma=0.0, tau_bar=13.137)
    po.material.set(E_m=35000.0, E_f=170000.0, E_b=6700.0)
    po.material.omega_fn.set(alpha_1=0.0, alpha_2=1.0, plot_max=0.01)
    po.run()
    show(po)
예제 #7
0
def e52_kinematic_hardening():
    '''Show the effect of strain softening represented 
    by negative kinematic hardening.

    @todo - fix - the values of stress upon loading should not 
    go to negative range.
    '''
    po = PullOutModel(n_e_x=10, k_max=50, w_max=0.05)
    po.tline.step = 0.01
    po.loading_scenario.set(loading_type='cyclic')
    po.loading_scenario.set(number_of_cycles=1)
    po.geometry.L_x = 1.0
    po.cross_section.set(A_f=16.67, P_b=1.0, A_m=1540.0)
    po.material.set(K=0.0, gamma=-5000.0, tau_bar=45.0)
    po.material.omega_fn.set(alpha_1=0.0, alpha_2=1.0, plot_max=10.0)
    po.run()

    show(po)
def get_pullout_model_carbon_concrete(u_f0_max=5.0):
    '''Helper method to get the constructing the default
    configuration of the pullout model.
    '''
    '''Helper method to get the constructing the default
    configuration of the pullout model.
    '''
    po = PullOutModel(n_e_x=200, k_max=500, u_f0_max=u_f0_max)
    po.tline.step = 0.005
    po.loading_scenario.set(loading_type='cyclic',
                            amplitude_type='constant',
                            loading_range='non-symmetric'
                            )
    po.loading_scenario.set(number_of_cycles=1,
                            unloading_ratio=0.98,
                            )
    po.geometry.L_x = 100.0
    po.cross_section.set(A_f=16.67, P_b=9.0, A_m=1540.0)
    po.mats_eval.set(E_m=28480, E_f=170000)
    po.mats_eval.set(gamma=1.5, K=0.0, tau_bar=5.0)
    po.mats_eval.omega_fn.set(alpha_1=1.0, alpha_2=1, plot_max=2.8)
    return po