Exemplo n.º 1
0
def configure_incorrect():

    bl = BladeLayup()

    biax = bl.add_material('triax')

    biax.set_props(E1=13.92e9,
                   E2=13.92e9,
                   E3=13.92e9,
                   nu12=0.533,
                   nu13=0.533,
                   nu23=0.533,
                   G12=11.5e9,
                   G13=4.539e9,
                   G23=4.539e9,
                   rho=1845)

    biax.set_resists_strains(failcrit='maximum_strain',
                             e11_t=9.52E-03,
                             e22_t=1.00E+06,
                             e33_t=1.00E+06,
                             e11_c=6.80E-03,
                             e22_c=1.00E+06,
                             e33_c=1.00E+06,
                             g12=1.00E+06,
                             g13=1.00E+06,
                             g23=1.00E+06)

    biax.set_safety_GL2010(gM0=1.25, C1a=1.0, C2a=1.0, C3a=1.0, C4a=1.0)

    # incorrect setting of uniax properties
    uniax = bl.add_material('uniax')
    uniax.E1 = 41.63e9
    uniax.E2 = 14.93e9
    uniax.E3 = 14.93e9
    uniax.nu12 = 0.241
    uniax.nu13 = 0.241
    uniax.nu23 = 0.241
    uniax.G12 = 5.047e9
    uniax.G13 = 5.047e9
    uniax.G23 = 5.047e9
    uniax.rho = 1915.5

    uniax.set_resists_strains(failcrit='maximum_strain',
                              e11_t=9.52E-03,
                              e22_t=1.00E+06,
                              e33_t=1.00E+06,
                              e11_c=6.80E-03,
                              e22_c=1.00E+06,
                              e33_c=1.00E+06,
                              g12=1.00E+06,
                              g13=1.00E+06,
                              g23=1.00E+06)

    # missing safety factors
    #--------------------------------------- uniax.set_safety_GL2010(gM0 = 1.25,
    #----------------------------------------- C1a = 1.0,
    #----------------------------------------- C2a = 1.0,
    #----------------------------------------- C3a = 1.0,
    #----------------------------------------- C4a = 1.0)

    core = bl.add_material('core')
    core.set_props(E1=50e6,
                   E2=50e6,
                   E3=50e6,
                   nu12=0.5,
                   nu13=0.013,
                   nu23=0.013,
                   G12=16.67e6,
                   G13=150e6,
                   G23=150e6,
                   rho=110)

    core.set_resists_strains(failcrit='maximum_strain',
                             e11_t=9.52E-03,
                             e22_t=1.00E+06,
                             e33_t=1.00E+06,
                             e11_c=6.80E-03,
                             e22_c=1.00E+06,
                             e33_c=1.00E+06,
                             g12=1.00E+06,
                             g13=1.00E+06,
                             g23=1.00E+06)

    core.set_safety_GL2010(gM0=1.25, C1a=1.0, C2a=1.0, C3a=1.0, C4a=1.0)

    adhesive = bl.add_material('adhesive')
    adhesive.set_props(E1=50e6,
                       E2=50e6,
                       E3=50e6,
                       nu12=0.5,
                       nu13=0.013,
                       nu23=0.013,
                       G12=16.67e6,
                       G13=150e6,
                       G23=150e6,
                       rho=110)

    adhesive.set_resists_strains(failcrit='maximum_strain',
                                 e11_t=9.52E-03,
                                 e22_t=1.00E+06,
                                 e33_t=1.00E+06,
                                 e11_c=6.80E-03,
                                 e22_c=1.00E+06,
                                 e33_c=1.00E+06,
                                 g12=1.00E+06,
                                 g13=1.00E+06,
                                 g23=1.00E+06)

    adhesive.set_safety_GL2010(gM0=1.25, C1a=1.0, C2a=1.0, C3a=1.0, C4a=1.0)

    bl.s = [0, 0.25, 0.6, 1.]

    bl.init_regions(5)

    bl.DPs['DP00'].arc = np.ones(4) * -1.
    bl.DPs['DP05'].arc = np.ones(4) * 1.
    # incorrect DP length
    bl.DPs['DP01'].arc = np.ones(1) * -0.5
    bl.DPs['DP04'].arc = np.ones(4) * 0.5
    bl.DPs['DP02'].arc = np.ones(4) * -0.35
    bl.DPs['DP03'].arc = np.ones(4) * 0.3

    # add materials to regions
    r = bl.regions['region00']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.002, 0.001])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('core')
    l.thickness = np.array([0.00, 0.07, 0.06, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    # non-existing material in region00 and region04
    l = r.add_layer('biax')
    l.thickness = np.array([0.008, 0.003, 0.002, 0.001])
    l.angle = np.zeros(4)
    bl.regions['region04'] = copy.copy(r)

    r = bl.regions['region01']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    # incorrect thickness and angle lengths
    l.thickness = np.array([0.008, 0.04])  # , 0.04, 0.002
    l.angle = np.zeros(3)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.04, 0.04, 0.002])
    l.angle = np.zeros(4)
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.000, 0.099, 0.000])
    l.angle = np.zeros(4)
    bl.regions['region03'] = copy.copy(r)

    r = bl.regions['region02']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.0015, 0.0011])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.001, 0.0007, 0.00])
    l.angle = np.zeros(4)
    l = r.add_layer('core')
    l.thickness = np.array([0.00, 0.035, 0.02, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.001, 0.0007, 0.00])
    l.angle = np.zeros(4)
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.0015, 0.0011])
    l.angle = np.zeros(4)

    bl.init_webs(2, [[2, 3], [1, 4]])
    w = bl.webs['web00']
    l = w.add_layer('triax')
    l.thickness = np.array([0.0025, 0.0045, 0.004, 0.001])
    l.angle = np.zeros(4)
    l = w.add_layer('core')
    l.thickness = np.array([0.065, 0.05, 0.02, 0.005])
    l.angle = np.zeros(4)
    l = w.add_layer('triax')
    l.thickness = np.array([0.0025, 0.0045, 0.004, 0.001])
    l.angle = np.zeros(4)
    bl.webs['web01'] = copy.copy(w)

    bl.init_bonds(1, [[0, 1, -2, -1]])
    b = bl.bonds['bond00']
    l = b.add_layer('adhesive')
    l.thickness = np.array([0.0, 1.0, 1.0, 0.0])
    l.angle = np.zeros(4)

    bl.check_consistency()

    return bl
    pass
Exemplo n.º 2
0
def configure():

    bl = BladeLayup()

    # --- 2

    biax = bl.add_material('triax')

    biax.set_props(E1=13.92e9,
                   E2=13.92e9,
                   E3=13.92e9,
                   nu12=0.533,
                   nu13=0.533,
                   nu23=0.533,
                   G12=11.5e9,
                   G13=4.539e9,
                   G23=4.539e9,
                   rho=1845)

    # --- 3

    biax.set_resists_strains(failcrit='maximum_strain',
                             e11_t=9.52E-03,
                             e22_t=1.00E+06,
                             e33_t=1.00E+06,
                             e11_c=6.80E-03,
                             e22_c=1.00E+06,
                             e33_c=1.00E+06,
                             g12=1.00E+06,
                             g13=1.00E+06,
                             g23=1.00E+06)

    # --- 4

    biax.set_safety_GL2010(gM0=1.25, C1a=1.0, C2a=1.0, C3a=1.0, C4a=1.0)

    # --- 5

    uniax = bl.add_material('uniax')
    uniax.set_props(E1=41.63e9,
                    E2=14.93e9,
                    E3=14.93e9,
                    nu12=0.241,
                    nu13=0.241,
                    nu23=0.241,
                    G12=5.047e9,
                    G13=5.047e9,
                    G23=5.047e9,
                    rho=1915.5)

    uniax.set_resists_strains(failcrit='maximum_strain',
                              e11_t=9.52E-03,
                              e22_t=1.00E+06,
                              e33_t=1.00E+06,
                              e11_c=6.80E-03,
                              e22_c=1.00E+06,
                              e33_c=1.00E+06,
                              g12=1.00E+06,
                              g13=1.00E+06,
                              g23=1.00E+06)

    uniax.set_safety_GL2010(gM0=1.25, C1a=1.0, C2a=1.0, C3a=1.0, C4a=1.0)

    core = bl.add_material('core')
    core.set_props(E1=50e6,
                   E2=50e6,
                   E3=50e6,
                   nu12=0.5,
                   nu13=0.013,
                   nu23=0.013,
                   G12=16.67e6,
                   G13=150e6,
                   G23=150e6,
                   rho=110)

    core.set_resists_strains(failcrit='maximum_strain',
                             e11_t=9.52E-03,
                             e22_t=1.00E+06,
                             e33_t=1.00E+06,
                             e11_c=6.80E-03,
                             e22_c=1.00E+06,
                             e33_c=1.00E+06,
                             g12=1.00E+06,
                             g13=1.00E+06,
                             g23=1.00E+06)

    core.set_safety_GL2010(gM0=1.25, C1a=1.0, C2a=1.0, C3a=1.0, C4a=1.0)

    # --- 6

    bl.s = [0, 0.25, 0.6, 1.]

    bl.init_regions(5)

    bl.DPs['DP00'].arc = np.ones(4) * -1.
    bl.DPs['DP05'].arc = np.ones(4) * 1.
    bl.DPs['DP01'].arc = np.ones(4) * -0.5
    bl.DPs['DP01'].arc[0] = -0.49
    bl.DPs['DP01'].arc[-1] = -0.51
    bl.DPs['DP04'].arc = np.ones(4) * 0.5
    bl.DPs['DP04'].arc[0] = 0.49
    bl.DPs['DP04'].arc[-1] = 0.51
    bl.DPs['DP02'].arc = np.ones(4) * -0.35
    bl.DPs['DP03'].arc = np.ones(4) * 0.3

    # --- 7

    # add materials to regions
    r = bl.regions['region00']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.002, 0.001])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('core')
    l.thickness = np.array([0.00, 0.07, 0.06, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.002, 0.001])
    l.angle = np.zeros(4)
    bl.regions['region04'] = copy.copy(r)

    # --- 8

    r = bl.regions['region01']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.04, 0.04, 0.002])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.04, 0.04, 0.002])
    l.angle = np.zeros(4)
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.000, 0.099, 0.000])
    l.angle = np.zeros(4)
    bl.regions['region03'] = copy.copy(r)

    r = bl.regions['region02']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.0015, 0.0011])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.001, 0.0007, 0.00])
    l.angle = np.zeros(4)
    l = r.add_layer('core')
    l.thickness = np.array([0.00, 0.035, 0.02, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.001, 0.0007, 0.00])
    l.angle = np.zeros(4)
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.0015, 0.0011])
    l.angle = np.zeros(4)

    # --- 9

    bl.init_webs(2, [[2, 3], [1, 4]])
    w = bl.webs['web00']
    l = w.add_layer('triax')
    l.thickness = np.array([0.0025, 0.0045, 0.004, 0.001])
    l.angle = np.zeros(4)
    l = w.add_layer('core')
    l.thickness = np.array([0.065, 0.05, 0.02, 0.005])
    l.angle = np.zeros(4)
    l = w.add_layer('triax')
    l.thickness = np.array([0.0025, 0.0045, 0.004, 0.001])
    l.angle = np.zeros(4)
    bl.webs['web01'] = copy.copy(w)

    bl.check_consistency()

    return bl, uniax
Exemplo n.º 3
0
def configure():

    bl = BladeLayup()

    biax = bl.add_material('triax')

    biax.set_props(E1=13.92e9,
                   E2=13.92e9,
                   E3=13.92e9,
                   nu12=0.533,
                   nu13=0.533,
                   nu23=0.533,
                   G12=11.5e9,
                   G13=4.539e9,
                   G23=4.539e9,
                   rho=1845)

    biax.set_resists_strains(failcrit='maximum_strain',
                             e11_t=9.52E-03,
                             e22_t=1.00E+06,
                             e33_t=1.00E+06,
                             e11_c=6.80E-03,
                             e22_c=1.00E+06,
                             e33_c=1.00E+06,
                             g12=1.00E+06,
                             g13=1.00E+06,
                             g23=1.00E+06)

    biax.set_safety_GL2010(gM0=1.25,
                           C1a=1.0,
                           C2a=1.0,
                           C3a=1.0,
                           C4a=1.0)

    uniax = bl.add_material('uniax')
    uniax.set_props(E1=41.63e9,
                    E2=14.93e9,
                    E3=14.93e9,
                    nu12=0.241,
                    nu13=0.241,
                    nu23=0.241,
                    G12=5.047e9,
                    G13=5.047e9,
                    G23=5.047e9,
                    rho=1915.5)

    uniax.set_resists_strains(failcrit='maximum_strain',
                              e11_t=9.52E-03,
                              e22_t=1.00E+06,
                              e33_t=1.00E+06,
                              e11_c=6.80E-03,
                              e22_c=1.00E+06,
                              e33_c=1.00E+06,
                              g12=1.00E+06,
                              g13=1.00E+06,
                              g23=1.00E+06)

    uniax.set_safety_GL2010(gM0=1.25,
                            C1a=1.0,
                            C2a=1.0,
                            C3a=1.0,
                            C4a=1.0)

    core = bl.add_material('core')
    core.set_props(E1=50e6,
                   E2=50e6,
                   E3=50e6,
                   nu12=0.5,
                   nu13=0.013,
                   nu23=0.013,
                   G12=16.67e6,
                   G13=150e6,
                   G23=150e6,
                   rho=110)

    core.set_resists_strains(failcrit='maximum_strain',
                             e11_t=9.52E-03,
                             e22_t=1.00E+06,
                             e33_t=1.00E+06,
                             e11_c=6.80E-03,
                             e22_c=1.00E+06,
                             e33_c=1.00E+06,
                             g12=1.00E+06,
                             g13=1.00E+06,
                             g23=1.00E+06)

    core.set_safety_GL2010(gM0=1.25,
                           C1a=1.0,
                           C2a=1.0,
                           C3a=1.0,
                           C4a=1.0)

    bl.s = [0, 0.25, 0.6, 1.]

    bl.init_regions(5)

    bl.DPs['DP00'].arc = np.ones(4) * -1.
    bl.DPs['DP05'].arc = np.ones(4) * 1.
    bl.DPs['DP01'].arc = np.ones(4) * -0.5
    bl.DPs['DP01'].arc[0] = -0.49
    bl.DPs['DP01'].arc[-1] = -0.51
    bl.DPs['DP04'].arc = np.ones(4) * 0.5
    bl.DPs['DP04'].arc[0] = 0.49
    bl.DPs['DP04'].arc[-1] = 0.51
    bl.DPs['DP02'].arc = np.ones(4) * -0.35
    bl.DPs['DP03'].arc = np.ones(4) * 0.3

    # add materials to regions
    r = bl.regions['region00']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.002, 0.001])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('core')
    l.thickness = np.array([0.00, 0.07, 0.06, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.002, 0.001])
    l.angle = np.zeros(4)
    bl.regions['region04'] = copy.copy(r)

    r = bl.regions['region01']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.04, 0.04, 0.002])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.04, 0.04, 0.002])
    l.angle = np.zeros(4)
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.000, 0.099, 0.000])
    l.angle = np.zeros(4)
    bl.regions['region03'] = copy.copy(r)

    r = bl.regions['region02']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.0015, 0.0011])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.001, 0.0007, 0.00])
    l.angle = np.zeros(4)
    l = r.add_layer('core')
    l.thickness = np.array([0.00, 0.035, 0.02, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.001, 0.0007, 0.00])
    l.angle = np.zeros(4)
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.0015, 0.0011])
    l.angle = np.zeros(4)

    bl.init_webs(2, [[2, 3], [1, 4]])
    w = bl.webs['web00']
    l = w.add_layer('triax')
    l.thickness = np.array([0.0025, 0.0045, 0.004, 0.001])
    l.angle = np.zeros(4)
    l = w.add_layer('core')
    l.thickness = np.array([0.065, 0.05, 0.02, 0.005])
    l.angle = np.zeros(4)
    l = w.add_layer('triax')
    l.thickness = np.array([0.0025, 0.0045, 0.004, 0.001])
    l.angle = np.zeros(4)
    bl.webs['web01'] = copy.copy(w)

    bl.check_consistency()

    return bl, uniax
Exemplo n.º 4
0
def configure_incorrect():

    bl = BladeLayup()

    biax = bl.add_material('triax')

    biax.set_props(E1=13.92e9,
                   E2=13.92e9,
                   E3=13.92e9,
                   nu12=0.533,
                   nu13=0.533,
                   nu23=0.533,
                   G12=11.5e9,
                   G13=4.539e9,
                   G23=4.539e9,
                   rho=1845)

    biax.set_resists_strains(failcrit='maximum_strain',
                             e11_t=9.52E-03,
                             e22_t=1.00E+06,
                             e33_t=1.00E+06,
                             e11_c=6.80E-03,
                             e22_c=1.00E+06,
                             e33_c=1.00E+06,
                             g12=1.00E+06,
                             g13=1.00E+06,
                             g23=1.00E+06)

    biax.set_safety_GL2010(gM0=1.25,
                           C1a=1.0,
                           C2a=1.0,
                           C3a=1.0,
                           C4a=1.0)

    # incorrect setting of uniax properties
    uniax = bl.add_material('uniax')
    uniax.E1 = 41.63e9
    uniax.E2 = 14.93e9
    uniax.E3 = 14.93e9
    uniax.nu12 = 0.241
    uniax.nu13 = 0.241
    uniax.nu23 = 0.241
    uniax.G12 = 5.047e9
    uniax.G13 = 5.047e9
    uniax.G23 = 5.047e9
    uniax.rho = 1915.5

    uniax.set_resists_strains(failcrit='maximum_strain',
                              e11_t=9.52E-03,
                              e22_t=1.00E+06,
                              e33_t=1.00E+06,
                              e11_c=6.80E-03,
                              e22_c=1.00E+06,
                              e33_c=1.00E+06,
                              g12=1.00E+06,
                              g13=1.00E+06,
                              g23=1.00E+06)

    # missing safety factors
    #--------------------------------------- uniax.set_safety_GL2010(gM0 = 1.25,
    #----------------------------------------- C1a = 1.0,
    #----------------------------------------- C2a = 1.0,
    #----------------------------------------- C3a = 1.0,
    #----------------------------------------- C4a = 1.0)

    core = bl.add_material('core')
    core.set_props(E1=50e6,
                   E2=50e6,
                   E3=50e6,
                   nu12=0.5,
                   nu13=0.013,
                   nu23=0.013,
                   G12=16.67e6,
                   G13=150e6,
                   G23=150e6,
                   rho=110)

    core.set_resists_strains(failcrit='maximum_strain',
                             e11_t=9.52E-03,
                             e22_t=1.00E+06,
                             e33_t=1.00E+06,
                             e11_c=6.80E-03,
                             e22_c=1.00E+06,
                             e33_c=1.00E+06,
                             g12=1.00E+06,
                             g13=1.00E+06,
                             g23=1.00E+06)

    core.set_safety_GL2010(gM0=1.25,
                           C1a=1.0,
                           C2a=1.0,
                           C3a=1.0,
                           C4a=1.0)

    adhesive = bl.add_material('adhesive')
    adhesive.set_props(E1=50e6,
                       E2=50e6,
                       E3=50e6,
                       nu12=0.5,
                       nu13=0.013,
                       nu23=0.013,
                       G12=16.67e6,
                       G13=150e6,
                       G23=150e6,
                       rho=110)

    adhesive.set_resists_strains(failcrit='maximum_strain',
                                 e11_t=9.52E-03,
                                 e22_t=1.00E+06,
                                 e33_t=1.00E+06,
                                 e11_c=6.80E-03,
                                 e22_c=1.00E+06,
                                 e33_c=1.00E+06,
                                 g12=1.00E+06,
                                 g13=1.00E+06,
                                 g23=1.00E+06)

    adhesive.set_safety_GL2010(gM0=1.25,
                               C1a=1.0,
                               C2a=1.0,
                               C3a=1.0,
                               C4a=1.0)

    bl.s = [0, 0.25, 0.6, 1.]

    bl.init_regions(5)

    bl.DPs['DP00'].arc = np.ones(4) * -1.
    bl.DPs['DP05'].arc = np.ones(4) * 1.
    # incorrect DP length
    bl.DPs['DP01'].arc = np.ones(1) * -0.5
    bl.DPs['DP04'].arc = np.ones(4) * 0.5
    bl.DPs['DP02'].arc = np.ones(4) * -0.35
    bl.DPs['DP03'].arc = np.ones(4) * 0.3

    # add materials to regions
    r = bl.regions['region00']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.002, 0.001])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('core')
    l.thickness = np.array([0.00, 0.07, 0.06, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    # non-existing material in region00 and region04
    l = r.add_layer('biax')
    l.thickness = np.array([0.008, 0.003, 0.002, 0.001])
    l.angle = np.zeros(4)
    bl.regions['region04'] = copy.copy(r)

    r = bl.regions['region01']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    # incorrect thickness and angle lengths
    l.thickness = np.array([0.008, 0.04])  # , 0.04, 0.002
    l.angle = np.zeros(3)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.04, 0.04, 0.002])
    l.angle = np.zeros(4)
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.000, 0.099, 0.000])
    l.angle = np.zeros(4)
    bl.regions['region03'] = copy.copy(r)

    r = bl.regions['region02']
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.0015, 0.0011])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.001, 0.0007, 0.00])
    l.angle = np.zeros(4)
    l = r.add_layer('core')
    l.thickness = np.array([0.00, 0.035, 0.02, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer('uniax')
    l.thickness = np.array([0.008, 0.001, 0.0007, 0.00])
    l.angle = np.zeros(4)
    l = r.add_layer('triax')
    l.thickness = np.array([0.008, 0.003, 0.0015, 0.0011])
    l.angle = np.zeros(4)

    bl.init_webs(2, [[2, 3], [1, 4]])
    w = bl.webs['web00']
    l = w.add_layer('triax')
    l.thickness = np.array([0.0025, 0.0045, 0.004, 0.001])
    l.angle = np.zeros(4)
    l = w.add_layer('core')
    l.thickness = np.array([0.065, 0.05, 0.02, 0.005])
    l.angle = np.zeros(4)
    l = w.add_layer('triax')
    l.thickness = np.array([0.0025, 0.0045, 0.004, 0.001])
    l.angle = np.zeros(4)
    bl.webs['web01'] = copy.copy(w)

    bl.init_bonds(1, [[0, 1, -2, -1]])
    b = bl.bonds['bond00']
    l = b.add_layer('adhesive')
    l.thickness = np.array([0.0, 1.0, 1.0, 0.0])
    l.angle = np.zeros(4)

    bl.check_consistency()

    return bl
    pass
Exemplo n.º 5
0
def configure_incorrect():

    bl = BladeLayup()

    biax = bl.add_material("triax")

    biax.set_props(
        E1=13.92e9,
        E2=13.92e9,
        E3=13.92e9,
        nu12=0.533,
        nu13=0.533,
        nu23=0.533,
        G12=11.5e9,
        G13=4.539e9,
        G23=4.539e9,
        rho=1845,
    )

    biax.set_resists_strains(
        failcrit="maximum_strain",
        e11_t=9.52e-03,
        e22_t=1.00e06,
        e33_t=1.00e06,
        e11_c=6.80e-03,
        e22_c=1.00e06,
        e33_c=1.00e06,
        g12=1.00e06,
        g13=1.00e06,
        g23=1.00e06,
    )

    biax.set_safety_GL2010(gM0=1.25, C1a=1.0, C2a=1.0, C3a=1.0, C4a=1.0)

    # incorrect setting of uniax properties
    uniax = bl.add_material("uniax")
    uniax.E1 = 41.63e9
    uniax.E2 = 14.93e9
    uniax.E3 = 14.93e9
    uniax.nu12 = 0.241
    uniax.nu13 = 0.241
    uniax.nu23 = 0.241
    uniax.G12 = 5.047e9
    uniax.G13 = 5.047e9
    uniax.G23 = 5.047e9
    uniax.rho = 1915.5

    uniax.set_resists_strains(
        failcrit="maximum_strain",
        e11_t=9.52e-03,
        e22_t=1.00e06,
        e33_t=1.00e06,
        e11_c=6.80e-03,
        e22_c=1.00e06,
        e33_c=1.00e06,
        g12=1.00e06,
        g13=1.00e06,
        g23=1.00e06,
    )

    # missing safety factors
    # --------------------------------------- uniax.set_safety_GL2010(gM0 = 1.25,
    # ----------------------------------------- C1a = 1.0,
    # ----------------------------------------- C2a = 1.0,
    # ----------------------------------------- C3a = 1.0,
    # ----------------------------------------- C4a = 1.0)

    core = bl.add_material("core")
    core.set_props(
        E1=50e6, E2=50e6, E3=50e6, nu12=0.5, nu13=0.013, nu23=0.013, G12=16.67e6, G13=150e6, G23=150e6, rho=110
    )

    core.set_resists_strains(
        failcrit="maximum_strain",
        e11_t=9.52e-03,
        e22_t=1.00e06,
        e33_t=1.00e06,
        e11_c=6.80e-03,
        e22_c=1.00e06,
        e33_c=1.00e06,
        g12=1.00e06,
        g13=1.00e06,
        g23=1.00e06,
    )

    core.set_safety_GL2010(gM0=1.25, C1a=1.0, C2a=1.0, C3a=1.0, C4a=1.0)

    bl.s = [0, 0.25, 0.6, 1.0]

    bl.init_regions(5)

    bl.DPs["DP00"].arc = np.ones(4) * -1.0
    bl.DPs["DP05"].arc = np.ones(4) * 1.0
    # incorrect DP length
    bl.DPs["DP01"].arc = np.ones(1) * -0.5
    bl.DPs["DP04"].arc = np.ones(4) * 0.5
    bl.DPs["DP02"].arc = np.ones(4) * -0.35
    bl.DPs["DP03"].arc = np.ones(4) * 0.3

    # add materials to regions
    r = bl.regions["region00"]
    l = r.add_layer("triax")
    l.thickness = np.array([0.008, 0.003, 0.002, 0.001])
    l.angle = np.zeros(4)
    l = r.add_layer("uniax")
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer("core")
    l.thickness = np.array([0.00, 0.07, 0.06, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer("uniax")
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    # non-existing material in region00 and region04
    l = r.add_layer("biax")
    l.thickness = np.array([0.008, 0.003, 0.002, 0.001])
    l.angle = np.zeros(4)
    bl.regions["region04"] = copy.copy(r)

    r = bl.regions["region01"]
    l = r.add_layer("triax")
    l.thickness = np.array([0.008, 0.000, 0.000, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer("uniax")
    # incorrect thickness and angle lengths
    l.thickness = np.array([0.008, 0.04])  # , 0.04, 0.002
    l.angle = np.zeros(3)
    l = r.add_layer("uniax")
    l.thickness = np.array([0.008, 0.04, 0.04, 0.002])
    l.angle = np.zeros(4)
    l = r.add_layer("triax")
    l.thickness = np.array([0.008, 0.000, 0.099, 0.000])
    l.angle = np.zeros(4)
    bl.regions["region03"] = copy.copy(r)

    r = bl.regions["region02"]
    l = r.add_layer("triax")
    l.thickness = np.array([0.008, 0.003, 0.0015, 0.0011])
    l.angle = np.zeros(4)
    l = r.add_layer("uniax")
    l.thickness = np.array([0.008, 0.001, 0.0007, 0.00])
    l.angle = np.zeros(4)
    l = r.add_layer("core")
    l.thickness = np.array([0.00, 0.035, 0.02, 0.000])
    l.angle = np.zeros(4)
    l = r.add_layer("uniax")
    l.thickness = np.array([0.008, 0.001, 0.0007, 0.00])
    l.angle = np.zeros(4)
    l = r.add_layer("triax")
    l.thickness = np.array([0.008, 0.003, 0.0015, 0.0011])
    l.angle = np.zeros(4)

    bl.init_webs(2, [[2, 3], [1, 4]])
    w = bl.webs["web00"]
    l = w.add_layer("triax")
    l.thickness = np.array([0.0025, 0.0045, 0.004, 0.001])
    l.angle = np.zeros(4)
    l = w.add_layer("core")
    l.thickness = np.array([0.065, 0.05, 0.02, 0.005])
    l.angle = np.zeros(4)
    l = w.add_layer("triax")
    l.thickness = np.array([0.0025, 0.0045, 0.004, 0.001])
    l.angle = np.zeros(4)
    bl.webs["web01"] = copy.copy(w)

    bl.check_consistency()

    return bl
    pass