Comparación Datos Experimentales

Queremos validar el código comparandolo con datos experimental.


In [1]:
import os
import sys
sys.path.append('../')

import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.rcParams['figure.figsize'] = (13.0, 4.0)

import ten

Datos Experimentales

Estos datos fueron extraidos de los gráficos del paper de Mc. Neal.


In [2]:
# Datos del paper de McNeal

# Perylene:
aceptor_perylene = [0, 21, 43, 86, 171, 436, 871]
eff_perylene = [0, 0.1875, 0.3125, 0.68, 0.78, 0.9, 0.95]
r_perylene = 2.29

# Coumarin 6
aceptor_coumarin = [0, 20, 60, 120, 240, 600, 1000]
eff_coumarin = [0, 0.42, 0.58, 0.85, 0.92, 0.97, 0.98]
r_coumarin = 3.05

# TPP
aceptor_TPP = [0, 40, 100, 200, 400, 1000]
eff_TPP = [0, 0.48, 0.82, 0.9, 0.95, 0.98]
r_TPP = 3.14

In [3]:
# Archivo de configuración para hacer las comparaciones

def experient_conf(acceptors, r, epsilon, free_path):
    acceptors = str(acceptors)
    ext, rest = acceptors.split('[')
    acceptor_list, ext = rest.split(']')
    
    conf = """r_mean = 15
    R_Forster = %f
    mean_path = %f
    tau_D = 0.333
    epsilon = %f

    num_acceptors_min = 0
    num_acceptors_max = 501
    acceptors_step = 20

    arbitrary_list = 1 #Para una lista arbitraria (if == 1, use list)
    list_num_acceptors = %s

    num_exc = 5000

    acceptors = vol
    exiton = laser
    r_electro = 0"""%(r, free_path, epsilon, acceptor_list)

    conf_file = open('speed.conf', 'w')
    conf_file.write(conf)
    conf_file.close

Perylene


In [4]:
# Perylene
free_path_list = list(range(1, 5, 1)) + list(range(5, 61, 5)) + list(range(70, 101, 10)) + list(range(150, 601, 50))


for epsilon in np.arange(0.5, 3.5, 0.5):
   for free_path in free_path_list:
        experient_conf(aceptor_perylene, r_perylene, epsilon, free_path)
        !mpirun -n 2 python3 ../parallelized_main.py -o data/perilene/ -c speed.conf -q

        sys.stdout.write("\rTermino la corrida con free_path = {0} y epsilon = {1}".format(free_path, epsilon))


Termino la corrida con free_path = 600 y epsilon = 3.0

Coumarin 6

TPP


In [6]:
# TPP
free_path_list = list(range(1, 5, 1)) + list(range(5, 61, 5)) + list(range(70, 101, 10)) + list(range(150, 601, 50))

for epsilon in np.arange(0.5, 3.5, 0.5):
   for free_path in free_path_list:
        experient_conf(aceptor_TPP, r_TPP, epsilon, free_path)
        !mpirun -n 2 python3 ../parallelized_main.py -o data/TPP/ -c speed.conf -q
        
        sys.stdout.write("\rTermino la corrida con free_path = {0} y epsilon = {1}".format(free_path, epsilon))


Termino la corrida con free_path = 600 y epsilon = 3.0

In [5]:
# Coumarin
free_path_list = list(range(1, 5, 1)) + list(range(5, 61, 5)) + list(range(70, 101, 10)) + list(range(150, 601, 50))

for epsilon in np.arange(0.5, 3.5, 0.5):
   for free_path in free_path_list:
        experient_conf(aceptor_coumarin, r_coumarin, epsilon, free_path)
        !mpirun -n 2 python3 ../parallelized_main.py -o data/coumarin/ -c speed.conf -q
        
        sys.stdout.write("\rTermino la corrida con free_path = {0} y epsilon = {1}".format(free_path, epsilon))


Termino la corrida con free_path = 45 y epsilon = 0.5[ein:22924] [[38560,1],1]-[[38560,0],0] mca_oob_tcp_msg_recv: readv failed: Connection timed out (110)
--------------------------------------------------------------------------
mpirun has exited due to process rank 1 with PID 22924 on
node ein exiting improperly. There are two reasons this could occur:

1. this process did not call "init" before exiting, but others in
the job did. This can cause a job to hang indefinitely while it waits
for all processes to call "init". By rule, if one process calls "init",
then ALL processes must call "init" prior to termination.

2. this process called "init", but exited without calling "finalize".
By rule, all processes that call "init" MUST call "finalize" prior to
exiting or it will be considered an "abnormal termination"

This may have caused other processes in the application to be
terminated by signals sent by mpirun (as reported here).
--------------------------------------------------------------------------
Termino la corrida con free_path = 600 y epsilon = 3.0

In [1]:
#Este css esta basado en el de @LorenaABarba y su grupo
from IPython.core.display import HTML
css_file = 'css/personal.css'
HTML(open(css_file, "r").read())


Out[1]:
Licencia

El código esta licenciado bajo MIT.

La documentación bajo:


<span xmlns:dct="http://purl.org/dc/terms/" property="dct:title">TEN</span> by <span xmlns:cc="http://creativecommons.org/ns#" property="cc:attributionName">Laboratorio de Microscopia Óptica Avanzada - UNRC</span> is licensed under a Creative Commons Attribution 4.0 International License.
Based on a work at <a xmlns:dct="http://purl.org/dc/terms/" href="https://github.com/pewen/ten" rel="dct:source">https://github.com/pewen/ten</a>