예제 #1
0
def advance(surface: Surface):
    """Simulate etching or sputtering process as a movment along the normal
    vector of points.
    
    
    :param surface: Surface object
    """

    normal_vec = surface.normal()
    velocity = get_velocities(surface)

    surface.x += normal_vec[0] * par.TIME_STEP * velocity[0]
    surface.y += normal_vec[1] * par.TIME_STEP * velocity[1]

    # Call the method for delooping after every time step
    surface.deloop()
예제 #2
0
def advance(surface: Surface):
    """Simulate etching or sputtering process as a movment along the normal
    vector of points.
    
    
    :param surface: Surface object
    """
    
    normal_vec = surface.normal()
    velocity = get_velocities(surface)
    
    if par.TIME_INTEGRATION == 'normal':
        surface.x += normal_vec[0] * par.TIME_STEP * velocity
        surface.y += normal_vec[1] * par.TIME_STEP * velocity
    if par.TIME_INTEGRATION == 'vertical':
        surface.x = surface.x
        surface.y += par.TIME_STEP * velocity / normal_vec[1]
    #y points are recalculated with the same method in both integrations

    # Call the method for delooping after every time step
    surface.deloop()