Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance analysis of FDTD #58

Closed
gomezzz opened this issue Mar 4, 2022 · 9 comments
Closed

Performance analysis of FDTD #58

gomezzz opened this issue Mar 4, 2022 · 9 comments

Comments

@gomezzz
Copy link
Collaborator

gomezzz commented Mar 4, 2022

Feature

Desired Behavior / Functionality

Figure out what costs us most time, so we can optimize, ideally for

  • 1 uniform
  • 3 uniform
  • 1 patterned layer

What Needs to Be Done

  • run cprofile
  • write output in this issue

How Can It Be Tested

N/A

@gomezzz
Copy link
Collaborator Author

gomezzz commented Mar 4, 2022

Example for cprofile

    import cProfile, pstats
    # used to run this test individually
    profiler = cProfile.Profile()
    profiler.enable()
    start = timeit.default_timer()
    # (your code)
    profiler.disable()
    stats = pstats.Stats(profiler).sort_stats("tottime")
    stats.print_stats()
    stop = timeit.default_timer()
    print("Test ran for ", stop - start, " seconds.")

@torbjornstoro
Copy link
Collaborator

torbjornstoro commented Mar 15, 2022


   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
       40   15.725    0.393   18.608    0.465 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\compute_spectrum_fdtd.py:128(_average_along_detector)
     4000    2.537    0.001    2.537    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:422(update_phi_E)
     4000    2.525    0.001    2.525    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:450(update_phi_H)
     2000    1.256    0.001    1.376    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\sources.py:274(update_E)
   480001    1.155    0.000    1.952    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor.py:620(__len__)
     2000    0.847    0.000    0.886    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:55(curl_H)
     2000    0.844    0.000    0.885    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:30(curl_E)
   490111    0.588    0.000    0.588    0.000 {built-in method torch._C._get_tracing_state}
   480690    0.494    0.000    2.445    0.000 {built-in method builtins.len}
    10110    0.340    0.000    0.340    0.000 {method 'unbind' of 'torch._C._TensorBase' objects}
     4000    0.271    0.000    0.271    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:410(update_H)
     4000    0.271    0.000    0.271    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:398(update_E)
     4000    0.253    0.000    0.256    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\detectors.py:114(detect_E)
     4000    0.244    0.000    0.246    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\detectors.py:120(detect_H)
       40    0.232    0.006   19.055    0.476 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\compute_spectrum_fdtd.py:109(_get_abs_value_from_3D_signal)
    12220    0.188    0.000    0.188    0.000 {built-in method zeros}
   490131    0.187    0.000    0.187    0.000 {method 'dim' of 'torch._C._TensorBase' objects}
     2000    0.174    0.000    5.765    0.003 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:276(update_E)
    28090    0.172    0.000    0.172    0.000 {method 'pow' of 'torch._C._TensorBase' objects}
     2000    0.162    0.000    4.156    0.002 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:302(update_H)
     1000    0.152    0.000    0.198    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\objects.py:201(update_E)
   480021    0.083    0.000    0.083    0.000 {built-in method torch._C._has_torch_function_unary}
     2000    0.066    0.000    0.066    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:187(update_E)
     2000    0.064    0.000    0.064    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:192(update_H)
    10110    0.042    0.000    0.451    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor.py:632(__iter__)
     8000    0.036    0.000    0.036    0.000 {built-in method sqrt}
     1000    0.036    0.000    0.036    0.000 {built-in method rsub}
    29090    0.029    0.000    0.248    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor.py:25(wrapped)
      296    0.024    0.000    0.024    0.000 {method 'acquire' of '_thread.lock' objects}
     2000    0.023    0.000    9.944    0.005 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:268(step)
       27    0.017    0.001    0.018    0.001 {built-in method builtins.sum}
    24125    0.016    0.000    0.016    0.000 {method 'append' of 'list' objects}
    29090    0.007    0.000    0.007    0.000 {built-in method torch._C._has_torch_function}
    10110    0.007    0.000    0.007    0.000 {built-in method builtins.iter}
        1    0.006    0.006   29.188   29.188 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\compute_spectrum_fdtd.py:13(compute_spectrum_fdtd)
      131    0.006    0.000    0.006    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\zmq\sugar\socket.py:480(send)
       20    0.006    0.000    0.020    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:356(_calculate_parameters)
       10    0.005    0.000   19.060    1.906 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\compute_spectrum_fdtd.py:83(_get_detector_values)
        5    0.004    0.001    0.004    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\calculate_transmission_reflection_coefficients.py:32(<listcomp>)
     1000    0.004    0.000    0.041    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor.py:544(__rsub__)
     2000    0.004    0.000    0.004    0.000 {built-in method math.sin}
       70    0.004    0.000    0.004    0.000 {built-in method arange}
       10    0.004    0.000    9.948    0.995 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:251(run)
       20    0.003    0.000    0.028    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\calculate_transmission_reflection_coefficients.py:79(<listcomp>)
       10    0.003    0.000    0.010    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:91(__init__)
       40    0.003    0.000    0.005    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:280(_sigma)
       25    0.003    0.000    0.003    0.000 {built-in method ones}
      110    0.003    0.000    0.003    0.000 {built-in method tensor}
       10    0.002    0.000    0.009    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\sources.py:165(_register_grid)
       20    0.002    0.000    0.002    0.000 {method 'max' of 'torch._C._TensorBase' objects}
     1820    0.002    0.000    0.002    0.000 {method 'item' of 'torch._C._TensorBase' objects}
       20    0.002    0.000    0.049    0.002 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\calculate_transmission_reflection_coefficients.py:71(_mean_square)
       10    0.002    0.000    0.075    0.007 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\init_fdtd.py:18(init_fdtd)
       10    0.002    0.000    0.002    0.000 {built-in method isfinite}
       24    0.002    0.000    0.047    0.002 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_logger.py:1841(_log)
       10    0.002    0.000    0.009    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor_str.py:75(__init__)
      232    0.001    0.000    0.002    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\dotmap\__init__.py:103(__getattr__)
      100    0.001    0.000    0.001    0.000 {method 'clone' of 'torch._C._TensorBase' objects}
       24    0.001    0.000    0.004    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_datetime.py:13(__format__)
       96    0.001    0.000    0.001    0.000 {method 'strftime' of 'datetime.date' objects}
       10    0.001    0.000    0.001    0.000 {method 'ne' of 'torch._C._TensorBase' objects}
        1    0.001    0.001    0.006    0.006 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:846(__init__)
        5    0.001    0.000    0.054    0.011 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\calculate_transmission_reflection_coefficients.py:12(calculate_transmission_reflection_coefficients)
       10    0.001    0.000    0.011    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor_str.py:287(_str_intern)
     2000    0.001    0.000    0.001    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:86(update_phi_H)
       20    0.001    0.000    0.011    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\detectors.py:63(_handle_slices)
      100    0.001    0.000    0.001    0.000 {method 'to' of 'torch._C._TensorBase' objects}
       10    0.001    0.000    0.006    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:491(_set_sigmaE)
     2000    0.001    0.000    0.001    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:79(update_phi_E)
       10    0.001    0.000    0.001    0.000 {method 'min' of 'torch._C._TensorBase' objects}
       50    0.001    0.000    0.001    0.000 {built-in method exp}
       10    0.001    0.000    0.003    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:496(_set_sigmaH)
     2000    0.001    0.000    0.001    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\sources.py:295(update_H)
        5    0.001    0.000    0.001    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\objects.py:37(_register_grid)
       65    0.001    0.000    0.045    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:354(__setitem__)
      190    0.001    0.000    0.005    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\backend.py:148(array)
     1000    0.001    0.000    0.001    0.000 {built-in method torch._C._has_torch_function_variadic}
       10    0.001    0.000    0.001    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:519(_set_sigmaH)
       10    0.001    0.000    0.002    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:514(_set_sigmaE)
      131    0.001    0.000    0.007    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\ipykernel\iostream.py:206(schedule)
       10    0.001    0.000    0.001    0.000 {built-in method masked_select}
      195    0.001    0.000    0.001    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:214(_handle_single_key)
        7    0.001    0.000    0.001    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:355(format_meter)
        1    0.001    0.001   29.191   29.191 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\utils\compute_spectrum.py:6(compute_spectrum)
     1000    0.001    0.000    0.001    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\objects.py:217(update_H)
        1    0.001    0.001    0.001    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:246(_screen_shape_windows)
       24    0.000    0.000    0.031    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_handler.py:98(emit)
     1668    0.000    0.000    0.000    0.000 {built-in method builtins.isinstance}
        5    0.000    0.000    0.002    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\objects.py:172(_register_grid)
      118    0.000    0.000    0.001    0.000 {method 'format' of 'str' objects}
      164    0.000    0.000    0.001    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:1126(is_alive)
       90    0.000    0.000    0.003    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\backend.py:163(linspace)
       20    0.000    0.000    0.001    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\detectors.py:109(<listcomp>)
       24    0.000    0.000    0.001    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_datetime.py:81(aware_now)
       10    0.000    0.000    0.000    0.000 {method 'reshape' of 'torch._C._TensorBase' objects}
       33    0.000    0.000    0.025    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:556(wait)
       33    0.000    0.000    0.028    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\ipykernel\iostream.py:451(flush)
       24    0.000    0.000    0.001    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\ntpath.py:180(split)
       10    0.000    0.000    0.023    0.002 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\init_fdtd.py:110(_add_boundaries)
       33    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:228(__init__)
       10    0.000    0.000    0.004    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\sources.py:205(_handle_slices)
        5    0.000    0.000    0.002    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\init_fdtd.py:180(_add_object)
       34    0.000    0.000    0.006    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\ipykernel\iostream.py:500(write)
      125    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:199(_handle_slice)
       24    0.000    0.000    0.000    0.000 {built-in method time.localtime}
       31    0.000    0.000    0.000    0.000 {method 'sub' of 're.Pattern' objects}
       33    0.000    0.000    0.025    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:280(wait)
       10    0.000    0.000    0.012    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\init_fdtd.py:161(_add_detectors)
       20    0.000    0.000    0.001    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\detectors.py:111(<listcomp>)
       20    0.000    0.000    0.001    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\detectors.py:110(<listcomp>)
       66    0.000    0.000    0.000    0.000 {built-in method _thread.allocate_lock}
       10    0.000    0.000    0.000    0.000 {built-in method ceil}
       24    0.000    0.000    0.004    0.000 {method 'format_map' of 'str' objects}
      232    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\dotmap\__init__.py:89(__getitem__)
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\backend.py:243(set_backend)
       24    0.000    0.000    0.026    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_simple_sinks.py:25(write)
       24    0.000    0.000    0.000    0.000 {method 'timetuple' of 'datetime.datetime' objects}
        5    0.000    0.000    0.000    0.000 {built-in method as_tensor}
       20    0.000    0.000    0.021    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:284(_register_grid)
        5    0.000    0.000    0.006    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1197(update)
       30    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:31(_register_grid)
      252    0.000    0.000    0.000    0.000 {method 'startswith' of 'str' objects}
       30    0.000    0.000    0.000    0.000 {built-in method now}
       25    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\backend.py:142(is_array)
       24    0.000    0.000    0.048    0.002 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_logger.py:1965(debug)
       34    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\ipykernel\iostream.py:418(_is_master_process)
      131    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\ipykernel\iostream.py:96(_event_pipe)
      164    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:1059(_wait_for_tstate_lock)
      314    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:330(<genexpr>)
      215    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\__init__.py:271(is_tensor)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\ntpath.py:124(splitdrive)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\ntpath.py:34(_get_bothseps)
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\sources.py:270(<listcomp>)
       85    0.000    0.000    0.000    0.000 {built-in method builtins.max}
       20    0.000    0.000    0.011    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\detectors.py:35(_register_grid)
       10    0.000    0.000    0.010    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor_str.py:223(_tensor_str)
       10    0.000    0.000    0.000    0.000 {method 'sum' of 'torch._C._TensorBase' objects}
       10    0.000    0.000    0.000    0.000 {method 'abs' of 'torch._C._TensorBase' objects}
        3    0.000    0.000    0.000    0.000 {built-in method builtins.compile}
        1    0.000    0.000   29.191   29.191 C:\Users\to-bo\AppData\Local\Temp\ipykernel_3112\2327297233.py:4(<module>)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\AppData\Local\Temp\ipykernel_3112\2327297233.py:5(<module>)
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\sources.py:268(<listcomp>)
       48    0.000    0.000    0.000    0.000 {method 'timestamp' of 'datetime.datetime' objects}
        5    0.000    0.000    0.000    0.000 {built-in method broadcast_to}
       10    0.000    0.000    0.010    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd_integration\init_fdtd.py:131(_add_source)
       33    0.000    0.000    0.001    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:521(__init__)
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\sources.py:269(<listcomp>)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:560(__new__)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:934(fillFormat)
       20    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:228(__init__)
       48    0.000    0.000    0.001    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\calendar.py:58(__getitem__)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\genericpath.py:121(_splitext)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\function_base.py:23(linspace)
       40    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\detectors.py:137(detector_values)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\ctypes\__init__.py:48(create_string_buffer)
      121    0.000    0.000    0.000    0.000 {built-in method builtins.hasattr}
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:482(_set_locations)
       40    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\autograd\grad_mode.py:213(__init__)
        7    0.000    0.000    0.001    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1149(__str__)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\ntpath.py:203(splitext)
       34    0.000    0.000    0.001    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\ipykernel\iostream.py:437(_schedule_flush)
       20    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\autograd\grad_mode.py:119(__init__)
        7    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:188(__format__)
       30    0.000    0.000    0.000    0.000 {method 'double' of 'torch._C._TensorBase' objects}
       24    0.000    0.000    0.000    0.000 {method 'replace' of 'datetime.datetime' objects}
      200    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:172(_handle_distance)
       48    0.000    0.000    0.001    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\calendar.py:77(__getitem__)
        2    0.000    0.000    0.001    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1264(close)
       31    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:233(__call__)
       82    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
       10    0.000    0.000    0.011    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor_str.py:413(_str)
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\sources.py:133(__init__)
       72    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_datetime.py:72(get)
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:142(_register_grid)
      110    0.000    0.000    0.000    0.000 {built-in method torch._C.get_default_dtype}
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:505(_set_locations)
        7    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1445(format_dict)
       10    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor_str.py:254(_add_suffixes)
       33    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:268(_acquire_restore)
      164    0.000    0.000    0.000    0.000 {method 'append' of 'collections.deque' objects}
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\multiprocessing\process.py:234(ident)
        1    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\trcwa\compute_target_frequencies.py:6(compute_target_frequencies)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\pstats.py:117(init)
       14    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:222(_is_ascii)
       10    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:104(acquire)
       58    0.000    0.000    0.000    0.000 {built-in method nt.getpid}
        6    0.000    0.000    0.007    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1159(__iter__)
       10    0.000    0.000    0.011    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor.py:245(__repr__)
       16    0.000    0.000    0.007    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:143(inner)
       24    0.000    0.000    0.001    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\ntpath.py:214(basename)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:1351(current_thread)
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:101(wrapper_setattr)
      307    0.000    0.000    0.000    0.000 {built-in method unicodedata.east_asian_width}
       33    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:259(__exit__)
        6    0.000    0.000    0.008    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1324(refresh)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\pstats.py:107(__init__)
       10    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:108(release)
       60    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:349(_handle_slice)
        7    0.000    0.000    0.009    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1463(display)
        3    0.000    0.000    0.000    0.000 {method 'reduce' of 'numpy.ufunc' objects}
       20    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\autograd\grad_mode.py:124(__enter__)
       20    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\autograd\grad_mode.py:128(__exit__)
        7    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:329(_text_width)
       30    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:22(__init__)
      6/1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:789(recurser)
        7    0.000    0.000    0.007    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:342(fp_write)
       13    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:288(format_interval)
      7/4    0.000    0.000    0.000    0.000 {built-in method numpy.core._multiarray_umath.implement_array_function}
      165    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:529(is_set)
        7    0.000    0.000    0.007    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:348(print_status)
       72    0.000    0.000    0.000    0.000 {method 'group' of 're.Match' objects}
       10    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor_str.py:138(format)
        5    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:1018(__call__)
      138    0.000    0.000    0.000    0.000 {built-in method builtins.abs}
       57    0.000    0.000    0.000    0.000 {built-in method builtins.divmod}
        2    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1156(__hash__)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_recattrs.py:8(__init__)
       10    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor.py:567(__format__)
       10    0.000    0.000    0.000    0.000 {method 'acquire' of '_multiprocessing.SemLock' objects}
       10    0.000    0.000    0.000    0.000 {method '__format__' of 'float' objects}
       33    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:256(__enter__)
       20    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\detectors.py:23(__init__)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_filters.py:5(filter_by_name)
       30    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:62(_handle_slice)
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:184(_handle_tuple)
       33    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:265(_release_save)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:105(__init__)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_recattrs.py:16(__format__)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_recattrs.py:23(__init__)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\warnings.py:35(_formatwarnmsg_impl)
        7    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:57(__init__)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:162(__init__)
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\grid.py:178(_handle_time)
       33    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:271(_is_owned)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:215(_supports_unicode)
        1    0.000    0.000    0.001    0.001 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\trcwa\get_frequency_points.py:6(get_frequency_points)
       26    0.000    0.000    0.000    0.000 {built-in method builtins.getattr}
      100    0.000    0.000    0.000    0.000 {built-in method builtins.setattr}
       24    0.000    0.000    0.000    0.000 {method 'replace' of 'str' objects}
       60    0.000    0.000    0.000    0.000 {built-in method torch._C.is_grad_enabled}
       26    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
       15    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\objects.py:89(_handle_slice)
       24    0.000    0.000    0.000    0.000 {method 'get' of 'ContextVar' objects}
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:1102(ident)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_recattrs.py:51(__init__)
        7    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:155(__init__)
        5    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\objects.py:160(__init__)
       10    0.000    0.000    0.000    0.000 {method 'is_neg' of 'torch._C._TensorBase' objects}
       72    0.000    0.000    0.000    0.000 {built-in method nt.fspath}
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:69(_wrapreduction)
       25    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
        1    0.000    0.000    0.002    0.002 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:329(status_printer)
       57    0.000    0.000    0.000    0.000 {method '__exit__' of '_thread.lock' objects}
        7    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:169(colour)
       10    0.000    0.000    0.000    0.000 {built-in method numpy.core._multiarray_umath.dragon4_scientific}
        3    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\utils\convert_units.py:4(freq_to_wl)
       24    0.000    0.000    0.000    0.000 {method 'endswith' of 'str' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\linecache.py:26(getline)
        1    0.000    0.000    0.001    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:523(_array2string)
        5    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:753(_extendLine_pretty)
       40    0.000    0.000    0.000    0.000 {method 'numel' of 'torch._C._TensorBase' objects}
       10    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor_str.py:201(_tensor_str_with_formatter)
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:228(__init__)
      147    0.000    0.000    0.000    0.000 {built-in method builtins.ord}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:576(_get_free_pos)
       24    0.000    0.000    0.000    0.000 {built-in method sys._getframe}
       24    0.000    0.000    0.000    0.000 {method 'total_seconds' of 'datetime.timedelta' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:64(_make_options_dict)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\multiprocessing\process.py:99(_check_closed)
        1    0.000    0.000    0.001    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:561(array2string)
        6    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:960(<genexpr>)
       10    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_tensor_str.py:153(_scalar_str)
        1    0.000    0.000    0.000    0.000 {built-in method numpy.arange}
        1    0.000    0.000    0.001    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:506(wrapper)
       33    0.000    0.000    0.000    0.000 {method '__enter__' of '_thread.lock' objects}
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(linspace)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:452(_get_format_function)
        7    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:333(disp_len)
        3    0.000    0.000   29.191    9.730 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\IPython\core\interactiveshell.py:3215(run_code)
        2    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\_ufunc_config.py:32(seterr)
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\codeop.py:142(__call__)
       33    0.000    0.000    0.000    0.000 {built-in method _imp.lock_held}
       10    0.000    0.000    0.000    0.000 {method 'release' of '_multiprocessing.SemLock' objects}
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\loguru\_recattrs.py:37(__init__)
        5    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\objects.py:27(__init__)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\multiprocessing\process.py:37(current_process)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:583(_decr_instances)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\threading.py:1086(name)
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:488(_set_shape)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:201(_is_utf)
        2    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:136(disable_on_exception)
       24    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\multiprocessing\process.py:189(name)
       22    0.000    0.000    0.000    0.000 {built-in method time.time}
       24    0.000    0.000    0.000    0.000 {method '__format__' of 'str' objects}
       10    0.000    0.000    0.000    0.000 {built-in method torch._C._get_default_device}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:907(__init__)
       24    0.000    0.000    0.000    0.000 {method 'values' of 'dict' objects}
       10    0.000    0.000    0.000    0.000 {method 'count' of 'str' objects}
       10    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\fdtd\boundaries.py:511(_set_shape)
       25    0.000    0.000    0.000    0.000 {built-in method _thread.get_ident}
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\contextlib.py:86(__init__)
        1    0.000    0.000    0.000    0.000 {method 'copy' of 'numpy.ndarray' objects}
       40    0.000    0.000    0.000    0.000 {built-in method torch._C._set_grad_enabled}
        5    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:739(_extendLine)
       10    0.000    0.000    0.000    0.000 {method 'acquire' of '_thread.RLock' objects}
        2    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\_ufunc_config.py:131(geterr)
       20    0.000    0.000    0.000    0.000 {method 'has_names' of 'torch._C._TensorBase' objects}
        6    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\IPython\core\compilerop.py:174(extra_flags)
        6    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:963(<genexpr>)
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\_weakrefset.py:63(__iter__)
        2    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\_weakrefset.py:53(_commit_removals)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\warnings.py:403(__init__)
        2    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1285(fp_write)
       10    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\autograd\forward_ad.py:70(unpack_dual)
       24    0.000    0.000    0.000    0.000 {method 'tzname' of 'datetime.timezone' objects}
        4    0.000    0.000    0.000    0.000 {method 'add' of 'set' objects}
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\contextlib.py:114(__enter__)
       10    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
        1    0.000    0.000    0.001    0.001 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:1575(_array_str_implementation)
        1    0.000    0.000    0.000    0.000 {method 'any' of 'numpy.generic' objects}
        8    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
        1    0.000    0.000    0.000    0.000 {built-in method builtins.locals}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:403(_get_formatdict)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\_weakrefset.py:86(add)
        2    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\numerictypes.py:282(issubclass_)
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\contextlib.py:123(__exit__)
        2    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\_weakrefset.py:27(__exit__)
       33    0.000    0.000    0.000    0.000 {method 'release' of '_thread.lock' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:852(sort)
        7    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:61(__format__)
        5    0.000    0.000    0.000    0.000 {method 'upper' of 'str' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:2675(amax)
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\contextlib.py:261(helper)
        6    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:964(<genexpr>)
        4    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:112(__enter__)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\numerictypes.py:356(issubdtype)
       20    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\torch\_jit_internal.py:957(is_scripting)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:411(<lambda>)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:2305(any)
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\traitlets\traitlets.py:535(get)
        1    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\utils\convert_units.py:29(wl_to_phys_wl)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\cProfile.py:50(create_stats)
        4    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:115(__exit__)
       10    0.000    0.000    0.000    0.000 {method 'release' of '_thread.RLock' objects}
        4    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:171(__eq__)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\dotmap\__init__.py:95(__setattr__)
        1    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1033(_handle_fromlist)
        1    0.000    0.000    0.000    0.000 {method 'reshape' of 'numpy.ndarray' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\_methods.py:54(_any)
        3    0.000    0.000   29.191    9.730 {built-in method builtins.exec}
        1    0.000    0.000    0.000    0.000 {method 'sort' of 'numpy.ndarray' objects}
        6    0.000    0.000    0.000    0.000 {built-in method builtins.next}
        5    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(amax)
        1    0.000    0.000    0.000    0.000 {built-in method utcfromtimestamp}
        7    0.000    0.000    0.000    0.000 {built-in method builtins.issubclass}
        2    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\_weakrefset.py:21(__enter__)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\_weakrefset.py:111(remove)
       24    0.000    0.000    0.000    0.000 {method 'utcoffset' of 'datetime.timezone' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\warnings.py:20(_showwarnmsg_impl)
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\traitlets\traitlets.py:566(__get__)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\linecache.py:36(getlines)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:657(get_lock)
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\IPython\core\interactiveshell.py:3167(compare)
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(result_type)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\AppData\Local\Temp\ipykernel_3112\2327297233.py:3(<module>)
        3    0.000    0.000    0.000    0.000 {method 'remove' of 'set' objects}
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:70(<dictcomp>)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\pstats.py:136(load_stats)
        2    0.000    0.000    0.000    0.000 {built-in method numpy.seterrobj}
        2    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\_weakrefset.py:17(__init__)
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(ndim)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\_ufunc_config.py:429(__enter__)
        5    0.000    0.000    0.000    0.000 {method 'partition' of 'str' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:579(<setcomp>)
        3    0.000    0.000    0.000    0.000 {built-in method numpy.asanyarray}
        4    0.000    0.000    0.000    0.000 {built-in method numpy.geterrobj}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\_monitor.py:94(report)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\warnings.py:117(_formatwarnmsg)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:780(_formatArray)
        5    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
        3    0.000    0.000    0.000    0.000 {built-in method builtins.id}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:3164(ndim)
        2    0.000    0.000    0.000    0.000 {method 'pop' of 'list' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:88(__getattr__)
        3    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\IPython\core\interactiveshell.py:1142(user_global_ns)
        1    0.000    0.000    0.000    0.000 {method 'encode' of 'str' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\numeric.py:1859(isscalar)
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(any)
        7    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:165(colour)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\dotmap\__init__.py:87(__setitem__)
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(sort)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:2800(amin)
        6    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:965(<genexpr>)
        6    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:968(<genexpr>)
        2    0.000    0.000    0.000    0.000 {built-in method _weakref.proxy}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\_ufunc_config.py:434(__exit__)
        4    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:74(__eq__)
        2    0.000    0.000    0.000    0.000 c:\Users\to-bo\OneDrive\Documents\ESA\NIDN\Developer\notebooks\..\nidn\utils\convert_units.py:17(phys_wl_to_wl)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\warnings.py:96(_showwarnmsg)
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(amin)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\_ufunc_config.py:425(__init__)
        6    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:977(<genexpr>)
        1    0.000    0.000    0.000    0.000 {built-in method __new__ of type object at 0x00007FF8C595D670}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:72(<dictcomp>)
        2    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1152(_comparable)
        1    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1146(__del__)
        1    0.000    0.000    0.000    0.000 {method 'discard' of 'set' objects}
        1    0.000    0.000    0.000    0.000 {built-in method time.perf_counter}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\utils.py:231(_screen_shape_wrapper)
        1    0.000    0.000    0.000    0.000 {built-in method numpy.asarray}
        1    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
        1    0.000    0.000    0.000    0.000 {built-in method builtins.min}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:3160(_ndim_dispatcher)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\arrayprint.py:898(_none_or_positive_arg)
        1    0.000    0.000    0.000    0.000 {method 'difference' of 'set' objects}
        1    0.000    0.000    0.000    0.000 {built-in method sys.audit}
        1    0.000    0.000    0.000    0.000 {built-in method _operator.index}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:2670(_amax_dispatcher)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:848(_sort_dispatcher)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\function_base.py:18(_linspace_dispatcher)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:2300(_any_dispatcher)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\tqdm\std.py:1300(<lambda>)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\fromnumeric.py:2795(_amin_dispatcher)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\.conda\envs\nidn\lib\site-packages\numpy\core\multiarray.py:664(result_type)


Test ran for  29.56145639999886  seconds.

@gomezzz
Copy link
Collaborator Author

gomezzz commented Mar 24, 2022


   Ordered by: internal time

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
       40   15.725    0.393   18.608    0.465 ..\nidn\fdtd_integration\compute_spectrum_fdtd.py:128(_average_along_detector)
     4000    2.537    0.001    2.537    0.001 ..\nidn\fdtd\boundaries.py:422(update_phi_E)
     4000    2.525    0.001    2.525    0.001 ..\nidn\fdtd\boundaries.py:450(update_phi_H)
     2000    1.256    0.001    1.376    0.001 ..\nidn\fdtd\sources.py:274(update_E)
   480001    1.155    0.000    1.952    0.000 lib\site-packages\torch\_tensor.py:620(__len__)
     2000    0.847    0.000    0.886    0.000 ..\nidn\fdtd\grid.py:55(curl_H)
     2000    0.844    0.000    0.885    0.000 ..\nidn\fdtd\grid.py:30(curl_E)
   490111    0.588    0.000    0.588    0.000 {built-in method torch._C._get_tracing_state}
   480690    0.494    0.000    2.445    0.000 {built-in method builtins.len}
    10110    0.340    0.000    0.340    0.000 {method 'unbind' of 'torch._C._TensorBase' objects}
     4000    0.271    0.000    0.271    0.000 ..\nidn\fdtd\boundaries.py:410(update_H)
     4000    0.271    0.000    0.271    0.000 ..\nidn\fdtd\boundaries.py:398(update_E)
     4000    0.253    0.000    0.256    0.000 ..\nidn\fdtd\detectors.py:114(detect_E)
     4000    0.244    0.000    0.246    0.000 ..\nidn\fdtd\detectors.py:120(detect_H)
       40    0.232    0.006   19.055    0.476 ..\nidn\fdtd_integration\compute_spectrum_fdtd.py:109(_get_abs_value_from_3D_signal)
    12220    0.188    0.000    0.188    0.000 {built-in method zeros}
   490131    0.187    0.000    0.187    0.000 {method 'dim' of 'torch._C._TensorBase' objects}
     2000    0.174    0.000    5.765    0.003 ..\nidn\fdtd\grid.py:276(update_E)
    28090    0.172    0.000    0.172    0.000 {method 'pow' of 'torch._C._TensorBase' objects}
     2000    0.162    0.000    4.156    0.002 ..\nidn\fdtd\grid.py:302(update_H)
     1000    0.152    0.000    0.198    0.000 ..\nidn\fdtd\objects.py:201(update_E)
   480021    0.083    0.000    0.083    0.000 {built-in method torch._C._has_torch_function_unary}
     2000    0.066    0.000    0.066    0.000 ..\nidn\fdtd\boundaries.py:187(update_E)
     2000    0.064    0.000    0.064    0.000 ..\nidn\fdtd\boundaries.py:192(update_H)
    10110    0.042    0.000    0.451    0.000 lib\site-packages\torch\_tensor.py:632(__iter__)
     8000    0.036    0.000    0.036    0.000 {built-in method sqrt}
     1000    0.036    0.000    0.036    0.000 {built-in method rsub}
    29090    0.029    0.000    0.248    0.000 lib\site-packages\torch\_tensor.py:25(wrapped)
      296    0.024    0.000    0.024    0.000 {method 'acquire' of '_thread.lock' objects}
     2000    0.023    0.000    9.944    0.005 ..\nidn\fdtd\grid.py:268(step)
       27    0.017    0.001    0.018    0.001 {built-in method builtins.sum}
    24125    0.016    0.000    0.016    0.000 {method 'append' of 'list' objects}
    29090    0.007    0.000    0.007    0.000 {built-in method torch._C._has_torch_function}
    10110    0.007    0.000    0.007    0.000 {built-in method builtins.iter}
        1    0.006    0.006   29.188   29.188 ..\nidn\fdtd_integration\compute_spectrum_fdtd.py:13(compute_spectrum_fdtd)
      131    0.006    0.000    0.006    0.000 lib\site-packages\zmq\sugar\socket.py:480(send)
       20    0.006    0.000    0.020    0.001 ..\nidn\fdtd\boundaries.py:356(_calculate_parameters)
       10    0.005    0.000   19.060    1.906 ..\nidn\fdtd_integration\compute_spectrum_fdtd.py:83(_get_detector_values)
        5    0.004    0.001    0.004    0.001 ..\nidn\fdtd_integration\calculate_transmission_reflection_coefficients.py:32(<listcomp>)
     1000    0.004    0.000    0.041    0.000 lib\site-packages\torch\_tensor.py:544(__rsub__)
     2000    0.004    0.000    0.004    0.000 {built-in method math.sin}
       70    0.004    0.000    0.004    0.000 {built-in method arange}
       10    0.004    0.000    9.948    0.995 ..\nidn\fdtd\grid.py:251(run)
       20    0.003    0.000    0.028    0.001 ..\nidn\fdtd_integration\calculate_transmission_reflection_coefficients.py:79(<listcomp>)
       10    0.003    0.000    0.010    0.001 ..\nidn\fdtd\grid.py:91(__init__)
       40    0.003    0.000    0.005    0.000 ..\nidn\fdtd\boundaries.py:280(_sigma)
       25    0.003    0.000    0.003    0.000 {built-in method ones}
      110    0.003    0.000    0.003    0.000 {built-in method tensor}
       10    0.002    0.000    0.009    0.001 ..\nidn\fdtd\sources.py:165(_register_grid)
       20    0.002    0.000    0.002    0.000 {method 'max' of 'torch._C._TensorBase' objects}
     1820    0.002    0.000    0.002    0.000 {method 'item' of 'torch._C._TensorBase' objects}
       20    0.002    0.000    0.049    0.002 ..\nidn\fdtd_integration\calculate_transmission_reflection_coefficients.py:71(_mean_square)
       10    0.002    0.000    0.075    0.007 ..\nidn\fdtd_integration\init_fdtd.py:18(init_fdtd)
       10    0.002    0.000    0.002    0.000 {built-in method isfinite}
       24    0.002    0.000    0.047    0.002 lib\site-packages\loguru\_logger.py:1841(_log)
       10    0.002    0.000    0.009    0.001 lib\site-packages\torch\_tensor_str.py:75(__init__)
      232    0.001    0.000    0.002    0.000 lib\site-packages\dotmap\__init__.py:103(__getattr__)
      100    0.001    0.000    0.001    0.000 {method 'clone' of 'torch._C._TensorBase' objects}
       24    0.001    0.000    0.004    0.000 lib\site-packages\loguru\_datetime.py:13(__format__)
       96    0.001    0.000    0.001    0.000 {method 'strftime' of 'datetime.date' objects}
       10    0.001    0.000    0.001    0.000 {method 'ne' of 'torch._C._TensorBase' objects}
        1    0.001    0.001    0.006    0.006 lib\site-packages\tqdm\std.py:846(__init__)
        5    0.001    0.000    0.054    0.011 ..\nidn\fdtd_integration\calculate_transmission_reflection_coefficients.py:12(calculate_transmission_reflection_coefficients)
       10    0.001    0.000    0.011    0.001 lib\site-packages\torch\_tensor_str.py:287(_str_intern)
     2000    0.001    0.000    0.001    0.000 ..\nidn\fdtd\boundaries.py:86(update_phi_H)
       20    0.001    0.000    0.011    0.001 ..\nidn\fdtd\detectors.py:63(_handle_slices)
      100    0.001    0.000    0.001    0.000 {method 'to' of 'torch._C._TensorBase' objects}
       10    0.001    0.000    0.006    0.001 ..\nidn\fdtd\boundaries.py:491(_set_sigmaE)
     2000    0.001    0.000    0.001    0.000 ..\nidn\fdtd\boundaries.py:79(update_phi_E)
       10    0.001    0.000    0.001    0.000 {method 'min' of 'torch._C._TensorBase' objects}
       50    0.001    0.000    0.001    0.000 {built-in method exp}
       10    0.001    0.000    0.003    0.000 ..\nidn\fdtd\boundaries.py:496(_set_sigmaH)
     2000    0.001    0.000    0.001    0.000 ..\nidn\fdtd\sources.py:295(update_H)
        5    0.001    0.000    0.001    0.000 ..\nidn\fdtd\objects.py:37(_register_grid)
       65    0.001    0.000    0.045    0.001 ..\nidn\fdtd\grid.py:354(__setitem__)
      190    0.001    0.000    0.005    0.000 ..\nidn\fdtd\backend.py:148(array)
     1000    0.001    0.000    0.001    0.000 {built-in method torch._C._has_torch_function_variadic}
       10    0.001    0.000    0.001    0.000 ..\nidn\fdtd\boundaries.py:519(_set_sigmaH)
       10    0.001    0.000    0.002    0.000 ..\nidn\fdtd\boundaries.py:514(_set_sigmaE)
      131    0.001    0.000    0.007    0.000 lib\site-packages\ipykernel\iostream.py:206(schedule)
       10    0.001    0.000    0.001    0.000 {built-in method masked_select}
      195    0.001    0.000    0.001    0.000 ..\nidn\fdtd\grid.py:214(_handle_single_key)
        7    0.001    0.000    0.001    0.000 lib\site-packages\tqdm\std.py:355(format_meter)
        1    0.001    0.001   29.191   29.191 ..\nidn\utils\compute_spectrum.py:6(compute_spectrum)
     1000    0.001    0.000    0.001    0.000 ..\nidn\fdtd\objects.py:217(update_H)
        1    0.001    0.001    0.001    0.001 lib\site-packages\tqdm\utils.py:246(_screen_shape_windows)
       24    0.000    0.000    0.031    0.001 lib\site-packages\loguru\_handler.py:98(emit)
     1668    0.000    0.000    0.000    0.000 {built-in method builtins.isinstance}
        5    0.000    0.000    0.002    0.000 ..\nidn\fdtd\objects.py:172(_register_grid)
      118    0.000    0.000    0.001    0.000 {method 'format' of 'str' objects}
      164    0.000    0.000    0.001    0.000 lib\threading.py:1126(is_alive)
       90    0.000    0.000    0.003    0.000 ..\nidn\fdtd\backend.py:163(linspace)
       20    0.000    0.000    0.001    0.000 ..\nidn\fdtd\detectors.py:109(<listcomp>)
       24    0.000    0.000    0.001    0.000 lib\site-packages\loguru\_datetime.py:81(aware_now)
       10    0.000    0.000    0.000    0.000 {method 'reshape' of 'torch._C._TensorBase' objects}
       33    0.000    0.000    0.025    0.001 lib\threading.py:556(wait)
       33    0.000    0.000    0.028    0.001 lib\site-packages\ipykernel\iostream.py:451(flush)
       24    0.000    0.000    0.001    0.000 lib\ntpath.py:180(split)
       10    0.000    0.000    0.023    0.002 ..\nidn\fdtd_integration\init_fdtd.py:110(_add_boundaries)
       33    0.000    0.000    0.000    0.000 lib\threading.py:228(__init__)
       10    0.000    0.000    0.004    0.000 ..\nidn\fdtd\sources.py:205(_handle_slices)
        5    0.000    0.000    0.002    0.000 ..\nidn\fdtd_integration\init_fdtd.py:180(_add_object)
       34    0.000    0.000    0.006    0.000 lib\site-packages\ipykernel\iostream.py:500(write)
      125    0.000    0.000    0.000    0.000 ..\nidn\fdtd\grid.py:199(_handle_slice)
       24    0.000    0.000    0.000    0.000 {built-in method time.localtime}
       31    0.000    0.000    0.000    0.000 {method 'sub' of 're.Pattern' objects}
       33    0.000    0.000    0.025    0.001 lib\threading.py:280(wait)
       10    0.000    0.000    0.012    0.001 ..\nidn\fdtd_integration\init_fdtd.py:161(_add_detectors)
       20    0.000    0.000    0.001    0.000 ..\nidn\fdtd\detectors.py:111(<listcomp>)
       20    0.000    0.000    0.001    0.000 ..\nidn\fdtd\detectors.py:110(<listcomp>)
       66    0.000    0.000    0.000    0.000 {built-in method _thread.allocate_lock}
       10    0.000    0.000    0.000    0.000 {built-in method ceil}
       24    0.000    0.000    0.004    0.000 {method 'format_map' of 'str' objects}
      232    0.000    0.000    0.000    0.000 lib\site-packages\dotmap\__init__.py:89(__getitem__)
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\backend.py:243(set_backend)
       24    0.000    0.000    0.026    0.001 lib\site-packages\loguru\_simple_sinks.py:25(write)
       24    0.000    0.000    0.000    0.000 {method 'timetuple' of 'datetime.datetime' objects}
        5    0.000    0.000    0.000    0.000 {built-in method as_tensor}
       20    0.000    0.000    0.021    0.001 ..\nidn\fdtd\boundaries.py:284(_register_grid)
        5    0.000    0.000    0.006    0.001 lib\site-packages\tqdm\std.py:1197(update)
       30    0.000    0.000    0.000    0.000 ..\nidn\fdtd\boundaries.py:31(_register_grid)
      252    0.000    0.000    0.000    0.000 {method 'startswith' of 'str' objects}
       30    0.000    0.000    0.000    0.000 {built-in method now}
       25    0.000    0.000    0.000    0.000 ..\nidn\fdtd\backend.py:142(is_array)
       24    0.000    0.000    0.048    0.002 lib\site-packages\loguru\_logger.py:1965(debug)
       34    0.000    0.000    0.000    0.000 lib\site-packages\ipykernel\iostream.py:418(_is_master_process)
      131    0.000    0.000    0.000    0.000 lib\site-packages\ipykernel\iostream.py:96(_event_pipe)
      164    0.000    0.000    0.000    0.000 lib\threading.py:1059(_wait_for_tstate_lock)
      314    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:330(<genexpr>)
      215    0.000    0.000    0.000    0.000 lib\site-packages\torch\__init__.py:271(is_tensor)
       24    0.000    0.000    0.000    0.000 lib\ntpath.py:124(splitdrive)
       24    0.000    0.000    0.000    0.000 lib\ntpath.py:34(_get_bothseps)
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\sources.py:270(<listcomp>)
       85    0.000    0.000    0.000    0.000 {built-in method builtins.max}
       20    0.000    0.000    0.011    0.001 ..\nidn\fdtd\detectors.py:35(_register_grid)
       10    0.000    0.000    0.010    0.001 lib\site-packages\torch\_tensor_str.py:223(_tensor_str)
       10    0.000    0.000    0.000    0.000 {method 'sum' of 'torch._C._TensorBase' objects}
       10    0.000    0.000    0.000    0.000 {method 'abs' of 'torch._C._TensorBase' objects}
        3    0.000    0.000    0.000    0.000 {built-in method builtins.compile}
        1    0.000    0.000   29.191   29.191 C:\Users\to-bo\AppData\Local\Temp\ipykernel_3112\2327297233.py:4(<module>)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\AppData\Local\Temp\ipykernel_3112\2327297233.py:5(<module>)
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\sources.py:268(<listcomp>)
       48    0.000    0.000    0.000    0.000 {method 'timestamp' of 'datetime.datetime' objects}
        5    0.000    0.000    0.000    0.000 {built-in method broadcast_to}
       10    0.000    0.000    0.010    0.001 ..\nidn\fdtd_integration\init_fdtd.py:131(_add_source)
       33    0.000    0.000    0.001    0.000 lib\threading.py:521(__init__)
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\sources.py:269(<listcomp>)
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:560(__new__)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:934(fillFormat)
       20    0.000    0.000    0.000    0.000 ..\nidn\fdtd\boundaries.py:228(__init__)
       48    0.000    0.000    0.001    0.000 lib\calendar.py:58(__getitem__)
       24    0.000    0.000    0.000    0.000 lib\genericpath.py:121(_splitext)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\function_base.py:23(linspace)
       40    0.000    0.000    0.000    0.000 ..\nidn\fdtd\detectors.py:137(detector_values)
        1    0.000    0.000    0.000    0.000 lib\ctypes\__init__.py:48(create_string_buffer)
      121    0.000    0.000    0.000    0.000 {built-in method builtins.hasattr}
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\boundaries.py:482(_set_locations)
       40    0.000    0.000    0.000    0.000 lib\site-packages\torch\autograd\grad_mode.py:213(__init__)
        7    0.000    0.000    0.001    0.000 lib\site-packages\tqdm\std.py:1149(__str__)
       24    0.000    0.000    0.000    0.000 lib\ntpath.py:203(splitext)
       34    0.000    0.000    0.001    0.000 lib\site-packages\ipykernel\iostream.py:437(_schedule_flush)
       20    0.000    0.000    0.000    0.000 lib\site-packages\torch\autograd\grad_mode.py:119(__init__)
        7    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:188(__format__)
       30    0.000    0.000    0.000    0.000 {method 'double' of 'torch._C._TensorBase' objects}
       24    0.000    0.000    0.000    0.000 {method 'replace' of 'datetime.datetime' objects}
      200    0.000    0.000    0.000    0.000 ..\nidn\fdtd\grid.py:172(_handle_distance)
       48    0.000    0.000    0.001    0.000 lib\calendar.py:77(__getitem__)
        2    0.000    0.000    0.001    0.001 lib\site-packages\tqdm\std.py:1264(close)
       31    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:233(__call__)
       82    0.000    0.000    0.000    0.000 {method 'rfind' of 'str' objects}
       10    0.000    0.000    0.011    0.001 lib\site-packages\torch\_tensor_str.py:413(_str)
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\sources.py:133(__init__)
       72    0.000    0.000    0.000    0.000 lib\site-packages\loguru\_datetime.py:72(get)
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\boundaries.py:142(_register_grid)
      110    0.000    0.000    0.000    0.000 {built-in method torch._C.get_default_dtype}
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\boundaries.py:505(_set_locations)
        7    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:1445(format_dict)
       10    0.000    0.000    0.000    0.000 lib\site-packages\torch\_tensor_str.py:254(_add_suffixes)
       33    0.000    0.000    0.000    0.000 lib\threading.py:268(_acquire_restore)
      164    0.000    0.000    0.000    0.000 {method 'append' of 'collections.deque' objects}
       24    0.000    0.000    0.000    0.000 lib\multiprocessing\process.py:234(ident)
        1    0.000    0.000    0.000    0.000 ..\nidn\trcwa\compute_target_frequencies.py:6(compute_target_frequencies)
        1    0.000    0.000    0.000    0.000 lib\pstats.py:117(init)
       14    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:222(_is_ascii)
       10    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:104(acquire)
       58    0.000    0.000    0.000    0.000 {built-in method nt.getpid}
        6    0.000    0.000    0.007    0.001 lib\site-packages\tqdm\std.py:1159(__iter__)
       10    0.000    0.000    0.011    0.001 lib\site-packages\torch\_tensor.py:245(__repr__)
       16    0.000    0.000    0.007    0.000 lib\site-packages\tqdm\utils.py:143(inner)
       24    0.000    0.000    0.001    0.000 lib\ntpath.py:214(basename)
       24    0.000    0.000    0.000    0.000 lib\threading.py:1351(current_thread)
        3    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:101(wrapper_setattr)
      307    0.000    0.000    0.000    0.000 {built-in method unicodedata.east_asian_width}
       33    0.000    0.000    0.000    0.000 lib\threading.py:259(__exit__)
        6    0.000    0.000    0.008    0.001 lib\site-packages\tqdm\std.py:1324(refresh)
        1    0.000    0.000    0.000    0.000 lib\pstats.py:107(__init__)
       10    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:108(release)
       60    0.000    0.000    0.000    0.000 ..\nidn\fdtd\boundaries.py:349(_handle_slice)
        7    0.000    0.000    0.009    0.001 lib\site-packages\tqdm\std.py:1463(display)
        3    0.000    0.000    0.000    0.000 {method 'reduce' of 'numpy.ufunc' objects}
       20    0.000    0.000    0.000    0.000 lib\site-packages\torch\autograd\grad_mode.py:124(__enter__)
       20    0.000    0.000    0.000    0.000 lib\site-packages\torch\autograd\grad_mode.py:128(__exit__)
        7    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:329(_text_width)
       30    0.000    0.000    0.000    0.000 ..\nidn\fdtd\boundaries.py:22(__init__)
      6/1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:789(recurser)
        7    0.000    0.000    0.007    0.001 lib\site-packages\tqdm\std.py:342(fp_write)
       13    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:288(format_interval)
      7/4    0.000    0.000    0.000    0.000 {built-in method numpy.core._multiarray_umath.implement_array_function}
      165    0.000    0.000    0.000    0.000 lib\threading.py:529(is_set)
        7    0.000    0.000    0.007    0.001 lib\site-packages\tqdm\std.py:348(print_status)
       72    0.000    0.000    0.000    0.000 {method 'group' of 're.Match' objects}
       10    0.000    0.000    0.000    0.000 lib\site-packages\torch\_tensor_str.py:138(format)
        5    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:1018(__call__)
      138    0.000    0.000    0.000    0.000 {built-in method builtins.abs}
       57    0.000    0.000    0.000    0.000 {built-in method builtins.divmod}
        2    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:1156(__hash__)
       24    0.000    0.000    0.000    0.000 lib\site-packages\loguru\_recattrs.py:8(__init__)
       10    0.000    0.000    0.000    0.000 lib\site-packages\torch\_tensor.py:567(__format__)
       10    0.000    0.000    0.000    0.000 {method 'acquire' of '_multiprocessing.SemLock' objects}
       10    0.000    0.000    0.000    0.000 {method '__format__' of 'float' objects}
       33    0.000    0.000    0.000    0.000 lib\threading.py:256(__enter__)
       20    0.000    0.000    0.000    0.000 ..\nidn\fdtd\detectors.py:23(__init__)
       24    0.000    0.000    0.000    0.000 lib\site-packages\loguru\_filters.py:5(filter_by_name)
       30    0.000    0.000    0.000    0.000 ..\nidn\fdtd\boundaries.py:62(_handle_slice)
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\grid.py:184(_handle_tuple)
       33    0.000    0.000    0.000    0.000 lib\threading.py:265(_release_save)
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:105(__init__)
       24    0.000    0.000    0.000    0.000 lib\site-packages\loguru\_recattrs.py:16(__format__)
       24    0.000    0.000    0.000    0.000 lib\site-packages\loguru\_recattrs.py:23(__init__)
        1    0.000    0.000    0.000    0.000 lib\warnings.py:35(_formatwarnmsg_impl)
        7    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:57(__init__)
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:162(__init__)
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\grid.py:178(_handle_time)
       33    0.000    0.000    0.000    0.000 lib\threading.py:271(_is_owned)
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:215(_supports_unicode)
        1    0.000    0.000    0.001    0.001 ..\nidn\trcwa\get_frequency_points.py:6(get_frequency_points)
       26    0.000    0.000    0.000    0.000 {built-in method builtins.getattr}
      100    0.000    0.000    0.000    0.000 {built-in method builtins.setattr}
       24    0.000    0.000    0.000    0.000 {method 'replace' of 'str' objects}
       60    0.000    0.000    0.000    0.000 {built-in method torch._C.is_grad_enabled}
       26    0.000    0.000    0.000    0.000 {method 'rstrip' of 'str' objects}
       15    0.000    0.000    0.000    0.000 ..\nidn\fdtd\objects.py:89(_handle_slice)
       24    0.000    0.000    0.000    0.000 {method 'get' of 'ContextVar' objects}
       24    0.000    0.000    0.000    0.000 lib\threading.py:1102(ident)
       24    0.000    0.000    0.000    0.000 lib\site-packages\loguru\_recattrs.py:51(__init__)
        7    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:155(__init__)
        5    0.000    0.000    0.000    0.000 ..\nidn\fdtd\objects.py:160(__init__)
       10    0.000    0.000    0.000    0.000 {method 'is_neg' of 'torch._C._TensorBase' objects}
       72    0.000    0.000    0.000    0.000 {built-in method nt.fspath}
        3    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:69(_wrapreduction)
       25    0.000    0.000    0.000    0.000 {method 'copy' of 'dict' objects}
        1    0.000    0.000    0.002    0.002 lib\site-packages\tqdm\std.py:329(status_printer)
       57    0.000    0.000    0.000    0.000 {method '__exit__' of '_thread.lock' objects}
        7    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:169(colour)
       10    0.000    0.000    0.000    0.000 {built-in method numpy.core._multiarray_umath.dragon4_scientific}
        3    0.000    0.000    0.000    0.000 ..\nidn\utils\convert_units.py:4(freq_to_wl)
       24    0.000    0.000    0.000    0.000 {method 'endswith' of 'str' objects}
        1    0.000    0.000    0.000    0.000 lib\linecache.py:26(getline)
        1    0.000    0.000    0.001    0.001 lib\site-packages\numpy\core\arrayprint.py:523(_array2string)
        5    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:753(_extendLine_pretty)
       40    0.000    0.000    0.000    0.000 {method 'numel' of 'torch._C._TensorBase' objects}
       10    0.000    0.000    0.000    0.000 lib\site-packages\torch\_tensor_str.py:201(_tensor_str_with_formatter)
        3    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:228(__init__)
      147    0.000    0.000    0.000    0.000 {built-in method builtins.ord}
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:576(_get_free_pos)
       24    0.000    0.000    0.000    0.000 {built-in method sys._getframe}
       24    0.000    0.000    0.000    0.000 {method 'total_seconds' of 'datetime.timedelta' objects}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:64(_make_options_dict)
       24    0.000    0.000    0.000    0.000 lib\multiprocessing\process.py:99(_check_closed)
        1    0.000    0.000    0.001    0.001 lib\site-packages\numpy\core\arrayprint.py:561(array2string)
        6    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:960(<genexpr>)
       10    0.000    0.000    0.000    0.000 lib\site-packages\torch\_tensor_str.py:153(_scalar_str)
        1    0.000    0.000    0.000    0.000 {built-in method numpy.arange}
        1    0.000    0.000    0.001    0.001 lib\site-packages\numpy\core\arrayprint.py:506(wrapper)
       33    0.000    0.000    0.000    0.000 {method '__enter__' of '_thread.lock' objects}
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(linspace)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:452(_get_format_function)
        7    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:333(disp_len)
        3    0.000    0.000   29.191    9.730 lib\site-packages\IPython\core\interactiveshell.py:3215(run_code)
        2    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\_ufunc_config.py:32(seterr)
        3    0.000    0.000    0.000    0.000 lib\codeop.py:142(__call__)
       33    0.000    0.000    0.000    0.000 {built-in method _imp.lock_held}
       10    0.000    0.000    0.000    0.000 {method 'release' of '_multiprocessing.SemLock' objects}
       24    0.000    0.000    0.000    0.000 lib\site-packages\loguru\_recattrs.py:37(__init__)
        5    0.000    0.000    0.000    0.000 ..\nidn\fdtd\objects.py:27(__init__)
       24    0.000    0.000    0.000    0.000 lib\multiprocessing\process.py:37(current_process)
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:583(_decr_instances)
       24    0.000    0.000    0.000    0.000 lib\threading.py:1086(name)
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\boundaries.py:488(_set_shape)
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:201(_is_utf)
        2    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:136(disable_on_exception)
       24    0.000    0.000    0.000    0.000 lib\multiprocessing\process.py:189(name)
       22    0.000    0.000    0.000    0.000 {built-in method time.time}
       24    0.000    0.000    0.000    0.000 {method '__format__' of 'str' objects}
       10    0.000    0.000    0.000    0.000 {built-in method torch._C._get_default_device}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:907(__init__)
       24    0.000    0.000    0.000    0.000 {method 'values' of 'dict' objects}
       10    0.000    0.000    0.000    0.000 {method 'count' of 'str' objects}
       10    0.000    0.000    0.000    0.000 ..\nidn\fdtd\boundaries.py:511(_set_shape)
       25    0.000    0.000    0.000    0.000 {built-in method _thread.get_ident}
        3    0.000    0.000    0.000    0.000 lib\contextlib.py:86(__init__)
        1    0.000    0.000    0.000    0.000 {method 'copy' of 'numpy.ndarray' objects}
       40    0.000    0.000    0.000    0.000 {built-in method torch._C._set_grad_enabled}
        5    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:739(_extendLine)
       10    0.000    0.000    0.000    0.000 {method 'acquire' of '_thread.RLock' objects}
        2    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\_ufunc_config.py:131(geterr)
       20    0.000    0.000    0.000    0.000 {method 'has_names' of 'torch._C._TensorBase' objects}
        6    0.000    0.000    0.000    0.000 lib\site-packages\IPython\core\compilerop.py:174(extra_flags)
        6    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:963(<genexpr>)
        3    0.000    0.000    0.000    0.000 lib\_weakrefset.py:63(__iter__)
        2    0.000    0.000    0.000    0.000 lib\_weakrefset.py:53(_commit_removals)
        1    0.000    0.000    0.000    0.000 lib\warnings.py:403(__init__)
        2    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:1285(fp_write)
       10    0.000    0.000    0.000    0.000 lib\site-packages\torch\autograd\forward_ad.py:70(unpack_dual)
       24    0.000    0.000    0.000    0.000 {method 'tzname' of 'datetime.timezone' objects}
        4    0.000    0.000    0.000    0.000 {method 'add' of 'set' objects}
        3    0.000    0.000    0.000    0.000 lib\contextlib.py:114(__enter__)
       10    0.000    0.000    0.000    0.000 {method 'join' of 'str' objects}
        1    0.000    0.000    0.001    0.001 lib\site-packages\numpy\core\arrayprint.py:1575(_array_str_implementation)
        1    0.000    0.000    0.000    0.000 {method 'any' of 'numpy.generic' objects}
        8    0.000    0.000    0.000    0.000 {method 'update' of 'dict' objects}
        1    0.000    0.000    0.000    0.000 {built-in method builtins.locals}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:403(_get_formatdict)
        1    0.000    0.000    0.000    0.000 lib\_weakrefset.py:86(add)
        2    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\numerictypes.py:282(issubclass_)
        3    0.000    0.000    0.000    0.000 lib\contextlib.py:123(__exit__)
        2    0.000    0.000    0.000    0.000 lib\_weakrefset.py:27(__exit__)
       33    0.000    0.000    0.000    0.000 {method 'release' of '_thread.lock' objects}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:852(sort)
        7    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:61(__format__)
        5    0.000    0.000    0.000    0.000 {method 'upper' of 'str' objects}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:2675(amax)
        3    0.000    0.000    0.000    0.000 lib\contextlib.py:261(helper)
        6    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:964(<genexpr>)
        4    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:112(__enter__)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\numerictypes.py:356(issubdtype)
       20    0.000    0.000    0.000    0.000 lib\site-packages\torch\_jit_internal.py:957(is_scripting)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:411(<lambda>)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:2305(any)
        3    0.000    0.000    0.000    0.000 lib\site-packages\traitlets\traitlets.py:535(get)
        1    0.000    0.000    0.000    0.000 ..\nidn\utils\convert_units.py:29(wl_to_phys_wl)
        1    0.000    0.000    0.000    0.000 lib\cProfile.py:50(create_stats)
        4    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:115(__exit__)
       10    0.000    0.000    0.000    0.000 {method 'release' of '_thread.RLock' objects}
        4    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:171(__eq__)
        1    0.000    0.000    0.000    0.000 lib\site-packages\dotmap\__init__.py:95(__setattr__)
        1    0.000    0.000    0.000    0.000 <frozen importlib._bootstrap>:1033(_handle_fromlist)
        1    0.000    0.000    0.000    0.000 {method 'reshape' of 'numpy.ndarray' objects}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\_methods.py:54(_any)
        3    0.000    0.000   29.191    9.730 {built-in method builtins.exec}
        1    0.000    0.000    0.000    0.000 {method 'sort' of 'numpy.ndarray' objects}
        6    0.000    0.000    0.000    0.000 {built-in method builtins.next}
        5    0.000    0.000    0.000    0.000 {method 'split' of 'str' objects}
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(amax)
        1    0.000    0.000    0.000    0.000 {built-in method utcfromtimestamp}
        7    0.000    0.000    0.000    0.000 {built-in method builtins.issubclass}
        2    0.000    0.000    0.000    0.000 lib\_weakrefset.py:21(__enter__)
        1    0.000    0.000    0.000    0.000 lib\_weakrefset.py:111(remove)
       24    0.000    0.000    0.000    0.000 {method 'utcoffset' of 'datetime.timezone' objects}
        1    0.000    0.000    0.000    0.000 lib\warnings.py:20(_showwarnmsg_impl)
        3    0.000    0.000    0.000    0.000 lib\site-packages\traitlets\traitlets.py:566(__get__)
        1    0.000    0.000    0.000    0.000 lib\linecache.py:36(getlines)
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:657(get_lock)
        3    0.000    0.000    0.000    0.000 lib\site-packages\IPython\core\interactiveshell.py:3167(compare)
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(result_type)
        1    0.000    0.000    0.000    0.000 C:\Users\to-bo\AppData\Local\Temp\ipykernel_3112\2327297233.py:3(<module>)
        3    0.000    0.000    0.000    0.000 {method 'remove' of 'set' objects}
        3    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:70(<dictcomp>)
        1    0.000    0.000    0.000    0.000 lib\pstats.py:136(load_stats)
        2    0.000    0.000    0.000    0.000 {built-in method numpy.seterrobj}
        2    0.000    0.000    0.000    0.000 lib\_weakrefset.py:17(__init__)
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(ndim)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\_ufunc_config.py:429(__enter__)
        5    0.000    0.000    0.000    0.000 {method 'partition' of 'str' objects}
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:579(<setcomp>)
        3    0.000    0.000    0.000    0.000 {built-in method numpy.asanyarray}
        4    0.000    0.000    0.000    0.000 {built-in method numpy.geterrobj}
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\_monitor.py:94(report)
        1    0.000    0.000    0.000    0.000 lib\warnings.py:117(_formatwarnmsg)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:780(_formatArray)
        5    0.000    0.000    0.000    0.000 {method 'splitlines' of 'str' objects}
        3    0.000    0.000    0.000    0.000 {built-in method builtins.id}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:3164(ndim)
        2    0.000    0.000    0.000    0.000 {method 'pop' of 'list' objects}
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:88(__getattr__)
        3    0.000    0.000    0.000    0.000 lib\site-packages\IPython\core\interactiveshell.py:1142(user_global_ns)
        1    0.000    0.000    0.000    0.000 {method 'encode' of 'str' objects}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\numeric.py:1859(isscalar)
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(any)
        7    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:165(colour)
        1    0.000    0.000    0.000    0.000 lib\site-packages\dotmap\__init__.py:87(__setitem__)
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(sort)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:2800(amin)
        6    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:965(<genexpr>)
        6    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:968(<genexpr>)
        2    0.000    0.000    0.000    0.000 {built-in method _weakref.proxy}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\_ufunc_config.py:434(__exit__)
        4    0.000    0.000    0.000    0.000 {method 'items' of 'dict' objects}
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:74(__eq__)
        2    0.000    0.000    0.000    0.000 ..\nidn\utils\convert_units.py:17(phys_wl_to_wl)
        1    0.000    0.000    0.000    0.000 lib\warnings.py:96(_showwarnmsg)
        1    0.000    0.000    0.000    0.000 <__array_function__ internals>:177(amin)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\_ufunc_config.py:425(__init__)
        6    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:977(<genexpr>)
        1    0.000    0.000    0.000    0.000 {built-in method __new__ of type object at 0x00007FF8C595D670}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:72(<dictcomp>)
        2    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:1152(_comparable)
        1    0.000    0.000    0.000    0.000 {method 'astype' of 'numpy.ndarray' objects}
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:1146(__del__)
        1    0.000    0.000    0.000    0.000 {method 'discard' of 'set' objects}
        1    0.000    0.000    0.000    0.000 {built-in method time.perf_counter}
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\utils.py:231(_screen_shape_wrapper)
        1    0.000    0.000    0.000    0.000 {built-in method numpy.asarray}
        1    0.000    0.000    0.000    0.000 {method 'strip' of 'str' objects}
        1    0.000    0.000    0.000    0.000 {built-in method builtins.min}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:3160(_ndim_dispatcher)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\arrayprint.py:898(_none_or_positive_arg)
        1    0.000    0.000    0.000    0.000 {method 'difference' of 'set' objects}
        1    0.000    0.000    0.000    0.000 {built-in method sys.audit}
        1    0.000    0.000    0.000    0.000 {built-in method _operator.index}
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:2670(_amax_dispatcher)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:848(_sort_dispatcher)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\function_base.py:18(_linspace_dispatcher)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:2300(_any_dispatcher)
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}
        1    0.000    0.000    0.000    0.000 lib\site-packages\tqdm\std.py:1300(<lambda>)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\fromnumeric.py:2795(_amin_dispatcher)
        1    0.000    0.000    0.000    0.000 lib\site-packages\numpy\core\multiarray.py:664(result_type)


Test ran for  29.56145639999886  seconds.

@gomezzz
Copy link
Collaborator Author

gomezzz commented Mar 29, 2022

@gomezzz try out on GPU

@gomezzz
Copy link
Collaborator Author

gomezzz commented Mar 29, 2022

For later: This may help optimize a lot by doing all frequencies in one run: flaport/fdtd#31 (might need ricker wavelet source)

@gomezzz
Copy link
Collaborator Author

gomezzz commented Mar 29, 2022

Oh also, we overlooked this I think: https://fdtd.readthedocs.io/en/latest/examples/04-performance-profiling.html

@torbjornstoro
Copy link
Collaborator

torbjornstoro commented Apr 5, 2022

If going with the RMS method for time tomain to frequency domain, I think we can assume that the rms of the free space simulation is the same for all frequencies, reducing the runtime by half
Update: Need the freespace simulation for each frequency to calculate the actual reflected signal

@torbjornstoro
Copy link
Collaborator

torbjornstoro commented Apr 20, 2022

The simulation is currently 2D. Patterned layer requires 3D. Maybe uniform layer also can be 1D, which will impove runtime

@gomezzz
Copy link
Collaborator Author

gomezzz commented Apr 26, 2022

Closed for now , will reopen when relevant

@gomezzz gomezzz closed this as completed Apr 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants