예제 #1
0
domain = FEGrid( coord_max = (length,height,0.), 
                 shape   = shape,
                 fets_eval = fets_eval,
                 geo_transform = arch_2d )
#
#right_dofs, right_dof_r = domain.get_right_dofs()
#right_dof = right_dofs[0,0]
#print 'right_dof',right_dof

top_middle_dofs, top_middle_dof_r = domain.get_top_middle_dofs()
# dof in global y-direction
top_middle_dof = top_middle_dofs[0,1]
print 'top_middle_dofs',top_middle_dofs
print 'top_middle_dof' ,top_middle_dof

top_dofs, top_dof_r = domain.get_top_dofs()
# dof in global y-direction
print 'fets_eval.n_e_dofs' , fets_eval.n_e_dofs

if fets_eval.n_e_dofs == 8:
    top_left_middle_dofs = top_dofs[shape[0]/4, :]
elif fets_eval.n_e_dofs == 18:
    top_left_middle_dofs = top_dofs[shape[0]/2, :]
print 'top_left_middle_dofs' , top_left_middle_dofs

beta = 100.18 * pi/180
alpha = (pi - beta )/2
phi_left_middle = alpha + beta/4


tstepper = TS( 
예제 #2
0
    top_middle_dof = top_middle_dofs[0,1]

    # boundary condition for symmetric loading case:
    BCDOF_list = [ BCDofGroup( var='u', value = -1., dims = [1],
                          get_dof_method = domain.get_top_middle_dofs )]

    # rtrace for symmetric loading case:
    var_y_ = 'F_int'
    idx_y_ = top_middle_dofs[0,1]
    var_x_ = 'U_k'  
    idx_x_ = top_middle_dofs[0,1]

# --- (single displacement at the left side at L/4)    
elif loading_type == 'asymmetric':
    # get dofs corresponding to the loading case:
    top_dofs, top_dof_points = domain.get_top_dofs()
    
    # dof in global y-direction:
    if fets_eval.n_e_dofs == 8:
        top_left_middle_dofs = top_dofs[shape[0]/4, :]
    elif fets_eval.n_e_dofs == 18:
        top_left_middle_dofs = top_dofs[shape[0]/2, :]
    
    # loading angle for radial (asymmetric) loading:
    beta = beta_degree * pi/180
    alpha = (pi - beta )/2
    phi_left_middle = alpha + beta/4

    # boundary condition for asymmetric loading case
#    BCDOF_x = BCDof( var='u', value =  cos(phi_left_middle), dof = top_left_middle_dofs[0] )
#    BCDOF_y = BCDof( var='u', value = -sin(phi_left_middle), dof = top_left_middle_dofs[1] )