focus_point = [ x_gridpoints[x_directon] , y_gridpoints[y_directon] , 0.036]
     
     calculation_centre_point = [x_gridpoints[x_directon] , y_gridpoints[y_directon] , 0.036]
 
     
     phi_focus = phase_algorithms.phase_find(rt, focus_point[0], focus_point[1], focus_point[2]) # phi is the initial phase of each transducer to focus on a point
     #phi_signature = phase_algorithms.add_twin_signature(rt, np.copy(phi_focus), 90)
     phi_signature = phase_algorithms.add_vortex_signature(rt, np.copy(phi_focus))
     #phi_signature = phase_algorithms.add_bottle_signature(rt, np.copy(phi_focus),0.03)
     #phi_noise = phase_algorithms.phase_random_noise(2, np.copy(phi_signature)) # number is randomness multiplier (0-1)*multiplier scaled between 0 and 2pi
     
     phi = phi_signature
     
     potential_calculated = algorithms.force_calc(calculation_centre_point, rt, nt, phi, vti = True) ## Outputs = pabs, fx, fy, fz, u_with_gravity, u_with_gravity_nano, laplace_u
     
     u_with_gravity_nano = potential_calculated[5]
     
     
     
     test_1d_array_1 = [1,2,3,4,5,4,3,4,5,6,5,4,3,2,1,2,3,2,1,0]
     test_1d_array_2 = [10.1,9,10,9,8,7,6,5,4,3,2,1,0,1,2,3,4,3,2,1,2,3,4,5,6,7,8,9,10,9,10.1]
     test_1d_array_3 = [0,1,2,3,4,5,6,7,8,9,10,9,8,7,6,5,4,3,2,1,0] ## Single Hill
     test_1d_array_4 = [10,9,8,7,6,5,4,3,2,1,0,1,2,3,4,5,6,7,8,9,10] ## Single vally
     
     test_2d_array_1 = [5.1,5.2,5.3,5.4,5.5,5.6,3.1,3.2,3.3,5.7,5.8,3.4,4.5,3.5,5.9,5.11,3.6,3.7,3.8,5.12,5.13,5.14,5.15,5.16,5.17]## 5 by 5
     
     test_3d_array_1 = [0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0]
     
     flat_array = u_with_gravity_nano.flatten()     ## Flat input array use .flatten()    
    ntrans, [0, 0, 1])  # nt is the direction vector of each transducer

focus_point = [0, 0, 0]

phi_focus = phase_algorithms.phase_find(
    rt, focus_point[0], focus_point[1], focus_point[2]
)  # phi is the initial phase of each transducer to focus on a point
phi_signature = phase_algorithms.add_twin_signature(rt, np.copy(phi_focus), 90)
#phi_signature = phase_algorithms.add_vortex_signature(rt, np.copy(phi_focus))
#phi_signature = phase_algorithms.add_bottle_signature(rt, np.copy(phi_focus),0.03)
#phi_noise = phase_algorithms.phase_random_noise(2, np.copy(phi_signature)) # number is randomness multiplier (0-1)*multiplier scaled between 0 and 2pi

phi = phi_signature

potential_calculated = algorithms.force_calc(
    focus_point, rt, nt, phi, vti=False
)  ## Outputs = pabs, fx, fy, fz, u_with_gravity, u_with_gravity_nano, laplace_u

u_with_gravity_nano = potential_calculated[5]

potential_array = u_with_gravity_nano
potential_array = np.pad(potential_array, (1), 'constant',
                         constant_values=(0))  # Padding the edge with 0
length = len(potential_array)
regions = np.full((length, length, length), 0, dtype=int)
been = np.full((length, length, length), False, dtype=bool)
region = 0  # First region index - 1

been[0, :, :] = True
been[length - 1, :, :] = True
been[:, 0, :] = True
focus_point = [ 0 , 0, 0.05]

calculation_centre_point = [ 0 , 0, 0.05]


phi_focus = phase_algorithms.phase_find(rt, focus_point[0], focus_point[1], focus_point[2]) # phi is the initial phase of each transducer to focus on a point
phi_signature = phase_algorithms.add_twin_signature(rt, np.copy(phi_focus), 90)
#phi_signature = phase_algorithms.add_vortex_signature(rt, np.copy(phi_focus))
#phi_signature = phase_algorithms.add_bottle_signature(rt, np.copy(phi_focus),0.02)
#phi_noise = phase_algorithms.phase_random_noise(2, np.copy(phi_signature)) # number is randomness multiplier (0-1)*multiplier scaled between 0 and 2pi

phi = phi_signature


potential_calculated = algorithms.force_calc(calculation_centre_point, rt, nt, phi, vti = True)



pabs = potential_calculated[0]
fx = potential_calculated[1]
fy = potential_calculated[2] 
fz = potential_calculated[3] 
u_with_gravity = potential_calculated[4]
u_with_gravity_nano = potential_calculated[5] 
laplace_u = potential_calculated[6]


print("For use in paraview: ")
print("Trap point at index ", np.divide(focus_point, constants.deltaxyz), " Away from [0,0,0]")
print("Particle radius in indexes = ", np.divide(np.divide(constants.particle_diamiter,2), constants.deltaxyz))