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()
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()