def FandTGen(N):
    #Constants and Parametres
    iterations_of_positions = 10000
    mean_length_list = [] #Empty List to be filled later
    origin = [0,0,0]
    


    #Empty lists to fill later
    number_list = []
    mean_mag_force_list = []
    mean_mag_torque_list = []
    summed_force_list = []
    summed_torque_list = []

    for i in range(iterations_of_positions):

        #more empty lists innit
        initial_force_list = []
        final_force_list = []
        torque_list = []

        for i in range(N): #This loop generates a sphere
            magnitude, vector = obs.RandSphere(N)
            initial_force_list.append(vector)

            #print(initial_force_list)

        transformed_v = obs.translation(vector, initial_force_list) #transforiming to get a nice graph

        for i in range(N):
            transformed_v[i] = transformed_v[i] / np.linalg.norm(transformed_v[i]) #literally for getting a nice graph


        alpha_list = [] #list for angles to the sphere

        for i in range(N):
            mtx,alpha = obs.fullrotation(transformed_v[i])
            final_force_list.append(mtx)
            alpha_list.append(alpha)


        summed_force_list.append(obs.forces(final_force_list))
        summed_torque_list.append(obs.torque(final_force_list, initial_force_list, N, torque_list))

        mean_mag_force_list.append(scipy.linalg.norm(obs.forces(final_force_list)))
        mean_mag_torque_list.append(scipy.linalg.norm(obs.torque(final_force_list, initial_force_list, N, torque_list)))


    mean_force = sum(mean_mag_force_list)/(iterations_of_positions)
    mean_torque = sum(mean_mag_torque_list)/(iterations_of_positions)

    return(mean_force, mean_torque, sum(summed_force_list)/iterations_of_positions, sum(summed_torque_list)/iterations_of_positions)
예제 #2
0
iterations_of_numbers = 8 #How many times we want to increase number of sperm
mean_length_list = [] #Empty List to be filled later
flagella_number_list = [] #Ditto
origin = [0,0,0]
N = 2
n_bins = 30 #Bins for the histogram plot

time1 = timeit.default_timer() #Timing The Loop

for i in range(iterations_of_numbers):

    vector_magnitude_list = []

    for i in range(iterations_of_postitions): #This loop generates the spheres

        magnitude, vector = Obs.RandSphere(N)
        vector_magnitude_list.append(magnitude)
        #print(str(vector_magnitude_list))
    N += 2 #How many the number of flagella increases by

    flagella_number_list.append(N)
    mean_length_list.append(Obs.mean_value(vector_magnitude_list, n_bins)) #Now we append the empty lists from before

#Finally, write to a file
for a,b in zip(mean_length_list,flagella_number_list):
    f.write("%s,%s\n" % (a,b))
f.close()

time2 = timeit.default_timer()
print("Time taken for code to run... in seconds :-  " + str(time2 - time1)) #Finish Timing The Loop