Exemple #1
0
        penalties_oopo = 0
        if constraints.oopo and calculate_penalty:
            penalties_oopo = (abs(lampam[10]) + abs(lampam[11])) / 2
    return cummul_sec_mom_areas * penalties_oopo


if __name__ == "__main__":
    ss = np.array([0, 45, 45, -45, -45, 90, 45, 90])
    ss = np.hstack((ss, np.flip(ss, axis=0)))
    lampam = calc_lampam(ss)
    E11 = 130e9
    E22 = 9e9
    nu12 = 0.3
    G12 = 4e9
    threshold = 0.01
    mat = Material(E11=E11, E22=E22, G12=G12, nu12=nu12)
    sym = False
    print(
        """*** Test for the functions calc_penalty_ipo_param and ipo_param***\n"""
    )
    param = ipo_param_1_6(lampam, mat, sym)
    print(f'In-plane orthotropy parameters = \n {param[0:6]}\n')
    print(f'calc_penalty_ipo : {calc_penalty_ipo_param(param, threshold)}\n')
    param = ipo_param_7_12(lampam, mat, sym)
    print(f'In-plane orthotropy parameters = \n {param[0:6]}\n')
    print(f'calc_penalty_ipo : {calc_penalty_ipo_param(param, threshold)}\n')
    param = ipo_param_1_12(lampam, mat, sym)
    print(
        f'In-plane orthotropy parameters = \n {param[0:6]} \n{param[6:12]}\n')
    print(f'calc_penalty_ipo : {calc_penalty_ipo_param(param, threshold)}\n')
Exemple #2
0
                          n_contig=n_contig,
                          delta_angle=delta_angle,
                          set_of_angles=set_of_angles)

#==============================================================================
# Material properties
#==============================================================================
# Elastic modulus in the fibre direction (Pa)
E11 = 130e9
# Elastic modulus in the transverse direction (Pa)
E22 = 9e9
# Poisson's ratio relating transverse deformation and axial loading (-)
nu12 = 0.3
# In-plane shear modulus (Pa)
G12 = 4e9
mat_prop = Material(E11=E11, E22=E22, G12=G12, nu12=nu12)

#==============================================================================
# Optimiser Parameters
#==============================================================================
# number of outer loops
n_outer_step = 1

# branching limit for global pruning during ply orientation optimisation
global_node_limit = 8
# branching limit for local pruning during ply orientation optimisation
local_node_limit = 8
# branching limit for global pruning at the penultimate level during ply
# orientation optimisation
global_node_limit_p = 8
# branching limit for local pruning at the last level during ply
# Elastic modulus in the fibre direction in Pa
E11 = 20.5 / 1.45038e-10  # 141 GPa
# Elastic modulus in the transverse direction in Pa
E22 = 1.31 / 1.45038e-10  # 9.03 GPa
# Poisson's ratio relating transverse deformation and axial loading (-)
nu12 = 0.32
# In-plane shear modulus in Pa
G12 = 0.62 / 1.45038e-10  # 4.27 GPa
# Density in g/m2
density_area = 300.5
# Ply thickness in m
ply_t = (25.40 / 1000) * 0.0075  # 0.191 mmm

mat = Material(E11=E11,
               E22=E22,
               G12=G12,
               nu12=nu12,
               density_area=density_area,
               ply_t=ply_t)
#==============================================================================
# Stacking sequences
#==============================================================================
n_values = 100

theta = np.linspace(-90, 90, n_values, endpoint=True)

lampam = np.zeros((n_values, 12), float)
D11 = np.zeros((n_values, ), float)
D22 = np.zeros((n_values, ), float)
D12 = np.zeros((n_values, ), float)
D66 = np.zeros((n_values, ), float)
buck = np.zeros((n_values, ), float)