Multi-objective BO: Perovskite light-intensity dependant JV and impedance fits with SIMsalabim (fake data)
This notebook is a demonstration of how to fit light-intensity dependent JV curves and impedance data (both capacitance and conductance) with drift-diffusion models using the SIMsalabim package.
[1]:
# Import necessary libraries
import warnings, os, sys, shutil
# remove warnings from the output
os.environ["PYTHONWARNINGS"] = "ignore"
warnings.filterwarnings(action='ignore', category=FutureWarning)
warnings.filterwarnings(action='ignore', category=UserWarning)
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from numpy.random import default_rng
import torch, copy, uuid
import pySIMsalabim as sim
from pySIMsalabim.experiments.JV_steady_state import *
from pySIMsalabim.experiments.impedance import *
import ax, logging
from ax.utils.notebook.plotting import init_notebook_plotting, render
init_notebook_plotting() # for Jupyter notebooks
try:
from optimpv import *
from optimpv.axBOtorch.axUtils import *
except Exception as e:
sys.path.append('../') # add the path to the optimpv module
from optimpv import *
from optimpv.axBOtorch.axUtils import *
[INFO 08-14 08:39:26] ax.utils.notebook.plotting: Injecting Plotly library into cell. Do not overwrite or delete cell.
[INFO 08-14 08:39:26] ax.utils.notebook.plotting: Please see
(https://ax.dev/tutorials/visualizations.html#Fix-for-plots-that-are-not-rendering)
if visualizations are not rendering.
Define the parameters for the simulation
[2]:
params = [] # list of parameters to be optimized
mun = FitParam(name = 'l2.mu_n', value = 6e-4, bounds = [1e-5,1e-3], values = None, start_value = None, log_scale = True, value_type = 'float', fscale = None, rescale = False, stepsize = None, display_name=r'$\mu_n$', unit='m$^2$ V$^{-1}$s$^{-1}$', axis_type = 'log', std = 0,encoding = None,force_log = True)
params.append(mun)
mup = FitParam(name = 'l2.mu_p', value = 4e-4, bounds = [1e-5,1e-3], values = None, start_value = None, log_scale = True, value_type = 'float', fscale = None, rescale = False, stepsize = None, display_name=r'$\mu_p$', unit=r'm$^2$ V$^{-1}$s$^{-1}$', axis_type = 'log', std = 0,encoding = None,force_log = True)
params.append(mup)
bulk_tr = FitParam(name = 'l2.N_t_bulk', value = 1e20, bounds = [1e19,1e21], values = None, start_value = None, log_scale = True, value_type = 'float', fscale = None, rescale = False, stepsize = None, display_name=r'$N_{T}$', unit=r'm$^{-3}$', axis_type = 'log', std = 0,encoding = None,force_log = False)
params.append(bulk_tr)
HTL_int_trap = FitParam(name = 'l1.N_t_int', value = 5e11, bounds = [1e11,1e13], values = None, start_value = None, log_scale = True, value_type = 'float', fscale = None, rescale = False, stepsize = None, display_name=r'$N_{T,int}^{HTL}$', unit='m$^{-2}$', axis_type = 'log', std = 0,encoding = None,force_log = False)
params.append(HTL_int_trap)
ETL_int_trap = FitParam(name = 'l2.N_t_int', value = 4e12, bounds = [1e11,1e13], values = None, start_value = None, log_scale = True, value_type = 'float', fscale = None, rescale = False, stepsize = None, display_name=r'$N_{T,int}^{ETL}$', unit='m$^{-2}$', axis_type = 'log', std = 0,encoding = None,force_log = False)
params.append(ETL_int_trap)
Nions = FitParam(name = 'l2.N_ions', value = 1e22, bounds = [1e20,5e22], type='range', values = None, start_value = None, log_scale = True, value_type = 'float', fscale = None, rescale = False, stepsize = None, display_name=r'$C_{ions}$', unit='m$^{-3}$', axis_type = 'log', std = 0,encoding = None,force_log = False)
params.append(Nions)
R_series = FitParam(name = 'R_series', value = 1e-4, bounds = [1e-5,1e-3], type='range', values = None, start_value = None, log_scale = True, value_type = 'float', fscale = None, rescale = False, stepsize = None, display_name=r'$R_{series}$', unit=r'$\Omega$ m$^2$', axis_type = 'log', std = 0,encoding = None,force_log = False)
params.append(R_series)
eps_r = FitParam(name = 'l2.eps_r', value = 35, bounds = [25,55], type='range', values = None, start_value = None, log_scale = False, value_type = 'float', fscale = None, rescale = False, stepsize = None, display_name=r'$\epsilon_r$', unit='', axis_type = 'linear', std = 0,encoding = None,force_log = False)
params.append(eps_r)
num_free_params = 0
for p in params:
if p.type != 'fixed' :
num_free_params += 1
# save the original parameters for later
params_orig = copy.deepcopy(params)
Generate some fake data
Here we generate some fake data to fit. The data is generated using the same model as the one used for the fitting, so it is a good test of the fitting procedure. For more information on how to run SIMsalabim from python see the pySIMsalabim package.
[3]:
# First we do the JV simulation with the original parameters
# Set the session path for the simulation and the input files
session_path = os.path.join(os.path.join(os.path.abspath('../'),'SIMsalabim','SimSS'))
input_path = os.path.join(os.path.join(os.path.join(os.path.abspath('../'),'Data','simsalabim_test_inputs','fakePerovskite')))
simulation_setup_filename = 'simulation_setup_fakePerovskite.txt'
simulation_setup = os.path.join(session_path, simulation_setup_filename)
optical_files = ['nk_glass.txt','nk_ITO.txt','nk_PTAA.txt','nk_FACsPbIBr.txt','nk_C60_1.txt','nk_Au.txt']
# path to the layer files defined in the simulation_setup file
l1 = 'PTAA.txt'
l2 = 'fakePerovskite.txt'
l3 = 'C60.txt'
l1 = os.path.join(input_path, l1)
l2 = os.path.join(input_path, l2)
l3 = os.path.join(input_path, l3)
# copy this files to session_path
force_copy = True
if not os.path.exists(session_path):
os.makedirs(session_path)
for file in [l1,l2,l3,simulation_setup_filename]:
file = os.path.join(input_path, os.path.basename(file))
if force_copy or not os.path.exists(os.path.join(session_path, os.path.basename(file))):
shutil.copyfile(file, os.path.join(session_path, os.path.basename(file)))
else:
print('File already exists: ',file)
# copy the optical files to the session path
for file in optical_files:
file = os.path.join(input_path, os.path.basename(file))
if force_copy or not os.path.exists(os.path.join(session_path, os.path.basename(file))):
shutil.copyfile(file, os.path.join(session_path, os.path.basename(file)))
# Show the device structure
fig = sim.plot_band_diagram(simulation_setup, session_path)
# reset simss
# Set the JV parameters
Gfracs = [0.1,0.5,1.0] # Fractions of the generation rate to simulate (None if you want only one light intensity as define in the simulation_setup file)
UUID = str(uuid.uuid4()) # random UUID to avoid overwriting files
cmd_pars = [] # see pySIMsalabim documentation for the command line parameters
# Add the parameters to the command line arguments
for param in params:
if param.name == 'l2.N_ions':
cmd_pars.append({'par':'l2.N_cation', 'val':str(param.value)})
cmd_pars.append({'par':'l2.N_anion', 'val':str(param.value)})
else:
cmd_pars.append({'par':param.name, 'val':str(param.value)})
# Run the JV simulation
ret, mess = run_SS_JV(simulation_setup, session_path, JV_file_name = 'JV.dat', G_fracs = Gfracs, parallel = True, max_jobs = 3, UUID=UUID, cmd_pars=cmd_pars)
# save data for fitting
X,y = [],[]
X_orig,y_orig = [],[]
if Gfracs is None:
data = pd.read_csv(os.path.join(session_path, 'JV_'+UUID+'.dat'), sep=r'\s+') # Load the data
Vext = np.asarray(data['Vext'].values)
Jext = np.asarray(data['Jext'].values)
G = np.ones_like(Vext)
rng = default_rng()#
noise = rng.standard_normal(Jext.shape) * 0.01 * Jext
Jext = Jext + noise
X = Vext
y = Jext
plt.figure()
plt.plot(X,y)
plt.show()
else:
for Gfrac in Gfracs:
data = pd.read_csv(os.path.join(session_path, 'JV_Gfrac_'+str(Gfrac)+'_'+UUID+'.dat'), sep=r'\s+') # Load the data
Vext = np.asarray(data['Vext'].values)
Jext = np.asarray(data['Jext'].values)
G = np.ones_like(Vext)*Gfrac
rng = default_rng()#
noise = rng.standard_normal(Jext.shape) * 0.005 * Jext
if len(X) == 0:
X = np.vstack((Vext,G)).T
y = Jext + noise
y_orig = Jext
else:
X = np.vstack((X,np.vstack((Vext,G)).T))
y = np.hstack((y,Jext+ noise))
y_orig = np.hstack((y_orig,Jext))
# remove all the current where Jext is higher than a given value
X = X[y<200]
X_orig = copy.deepcopy(X)
y_orig = y_orig[y<200]
y = y[y<200]
plt.figure()
for Gfrac in Gfracs:
plt.plot(X[X[:,1]==Gfrac,0],y[X[:,1]==Gfrac],label='Gfrac = '+str(Gfrac)) # we have an pin device, so we need to invert the sign of the current
plt.xlabel('Voltage [V]')
plt.ylabel('Current density [A m$^{-2}$]')
plt.legend()
plt.show()


[4]:
# Now we prepare the impedance simulation
# Set the session path for the simulation and the input files
session_path_zimt = os.path.join(os.path.join(os.path.abspath('../'),'SIMsalabim','ZimT'))
input_path_zimt = os.path.join(os.path.join(os.path.join(os.path.abspath('../'),'Data','simsalabim_test_inputs','fakePerovskite')))
simulation_setup_filename_zimt = 'simulation_setup_zimt_fakePerovskite.txt'
simulation_setup_zimt = os.path.join(session_path_zimt, simulation_setup_filename_zimt)
# copy this files to session_path
if not os.path.exists(session_path_zimt):
os.makedirs(session_path_zimt)
for file in [l1,l2,l3,simulation_setup_filename_zimt]:
file = os.path.join(input_path_zimt, os.path.basename(file))
if force_copy or not os.path.exists(os.path.join(session_path_zimt, os.path.basename(file))):
shutil.copyfile(file, os.path.join(session_path_zimt, os.path.basename(file)))
else:
print('File already exists: ',file)
# copy the optical files to the session path
for file in optical_files:
file = os.path.join(input_path_zimt, os.path.basename(file))
if force_copy or not os.path.exists(os.path.join(session_path_zimt, os.path.basename(file))):
shutil.copyfile(file, os.path.join(session_path_zimt, os.path.basename(file)))
# Set the impedance parameters
f_min = 1e-1
f_max = 1e6
f_steps = 20
V_0 = 0
del_V = 0.01
G_frac = 0
# Set the command line parameters
cmd_pars_zimt = [] # see pySIMsalabim documentation for the command line parameters
# Add the parameters to the command line arguments
for param in params:
if param.name == 'l2.N_ions':
cmd_pars_zimt.append({'par':'l2.N_cation', 'val':str(param.value)})
cmd_pars_zimt.append({'par':'l2.N_anion', 'val':str(param.value)})
else:
cmd_pars_zimt.append({'par':param.name, 'val':str(param.value)})
# Run the impedance simulation
ret,mess = run_impedance_simu(simulation_setup_zimt, session_path_zimt, f_min = f_min, f_max = f_max, f_steps = f_steps, V_0 = V_0, G_frac = G_frac, del_V = del_V, UUID=UUID, cmd_pars=cmd_pars, output_file = 'freqZ.dat')
# Load the data
data = pd.read_csv(os.path.join(session_path_zimt, 'freqZ_'+UUID+'.dat'), sep=r'\s+')
# Extract the data
freqs = np.asarray(data['freq'].values)
X_imp = np.asarray(data['freq'].values)
yimp = np.asarray(data['C'].values)
yimp2 = np.asarray(data['G'].values)
noise_level = 0.0025
rng = default_rng()
noise = rng.standard_normal(yimp.shape) * noise_level * yimp
yimp_noisy = yimp + noise
noise = rng.standard_normal(yimp2.shape) * noise_level * yimp2
yimp2_noisy = yimp2 + noise
# Plot the data
plt.figure()
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(freqs,yimp_noisy, 'g-')
ax2.plot(freqs,yimp2_noisy, 'b-')
ax1.set_xlabel('Frequency [Hz]')
ax1.set_ylabel('C [F m$^{-2}$]', color='g')
ax2.set_ylabel('G [S m$^{-2}$]', color='b')
ax1.set_xscale('log')
ax2.set_xscale('log')
plt.title('Impedance data')
plt.show()
<Figure size 640x480 with 0 Axes>

Run the optimization
[5]:
# Define the Agent and the target metric/loss function
from optimpv.DDfits.JVAgent import JVAgent
from optimpv.DDfits.ImpedanceAgent import ImpedanceAgent
metric = 'nrmse' # can be 'nrmse', 'mse', 'mae'
loss = 'linear' # can be 'linear', 'huber', 'soft_l1'
threshold = 0.1 # need this to get a reference point for the hypervolume calculation
jv = JVAgent(params, X, y, session_path, simulation_setup, parallel = True, max_jobs = 3, metric = metric, loss = loss,threshold=threshold)
# Calulate the target metric for the original parameters
best_fit_possible = loss_function(calc_metric(y,y_orig, metric_name = metric),loss)
print('Best fit JV: ',best_fit_possible)
imp = ImpedanceAgent(params, [X_imp,X_imp], [yimp_noisy,yimp2_noisy], session_path_zimt, metric = [metric,metric], loss = [loss,loss], threshold=[threshold,threshold],minimize=[True,True],exp_format=['Cf','Gf'],f_min = f_min, f_max = f_max, f_steps = f_steps, V_0 = V_0, G_frac = G_frac, del_V = del_V, simulation_setup=simulation_setup_zimt)
# Calulate the target metric for the original parameters
best_fit_possible = loss_function(calc_metric(yimp_noisy,yimp, metric_name = metric),loss)
print('Best fit C-f: ',best_fit_possible)
best_fit_possible = loss_function(calc_metric(yimp2_noisy,yimp2, metric_name = metric),loss)
print('Best fit G-f: ',best_fit_possible)
Best fit JV: 0.0013585788702257001
Best fit C-f: 0.006096237105219969
Best fit G-f: 0.00028961807364899506
[6]:
from optimpv.axBOtorch.axBOtorchOptimizer import axBOtorchOptimizer
from botorch.acquisition.multi_objective.logei import qLogExpectedHypervolumeImprovement
from ax.adapter.transforms.standardize_y import StandardizeY
from ax.adapter.transforms.unit_x import UnitX
from ax.adapter.transforms.remove_fixed import RemoveFixed
from ax.adapter.transforms.log import Log
from ax.generators.torch.botorch_modular.utils import ModelConfig
from ax.generators.torch.botorch_modular.surrogate import SurrogateSpec
from gpytorch.kernels import MaternKernel
from gpytorch.kernels import ScaleKernel
from botorch.models import SingleTaskGP
model_gen_kwargs_list = None
parameter_constraints = None
model_kwargs_list = [{},{"torch_device":torch.device("cuda" if torch.cuda.is_available() else "cpu"),'botorch_acqf_class':qLogExpectedHypervolumeImprovement,'transforms':[RemoveFixed, Log,UnitX, StandardizeY],'surrogate_spec':SurrogateSpec(model_configs=[ModelConfig(botorch_model_class=SingleTaskGP,covar_module_class=ScaleKernel, covar_module_options={'base_kernel':MaternKernel(nu=2.5, ard_num_dims=num_free_params)})])}]
optimizer = axBOtorchOptimizer(params = params, agents = [jv,imp], models = ['SOBOL','BOTORCH_MODULAR'],n_batches = [1,30], batch_size = [10,2], ax_client = None, model_kwargs_list = model_kwargs_list, model_gen_kwargs_list = model_gen_kwargs_list, name = 'ax_opti',parameter_constraints = parameter_constraints,)
[7]:
optimizer.optimize() # run the optimization with ax
[INFO 08-14 08:41:03] optimpv.axBOtorchOptimizer: Trial 0 with parameters: {'l2.mu_n': -3.4344273824244738, 'l2.mu_p': -3.2571977507323027, 'l2.N_t_bulk': 1.9789837639355482e+19, 'l1.N_t_int': 553871590638.1672, 'l2.N_t_int': 178690237190.98615, 'l2.N_ions': 8.827212314691695e+20, 'R_series': 0.00022746098283672533, 'l2.eps_r': 49.37736495397985}
[INFO 08-14 08:41:03] optimpv.axBOtorchOptimizer: Trial 1 with parameters: {'l2.mu_n': -4.874549277126789, 'l2.mu_p': -4.564470278099179, 'l2.N_t_bulk': 7.676135392096502e+20, 'l1.N_t_int': 3796215230643.2666, 'l2.N_t_int': 6292114545999.378, 'l2.N_ions': 9.45273276175964e+21, 'R_series': 4.060312998640146e-05, 'l2.eps_r': 25.148169053718448}
[INFO 08-14 08:41:03] optimpv.axBOtorchOptimizer: Trial 2 with parameters: {'l2.mu_n': -4.467642851173878, 'l2.mu_p': -3.799149241298437, 'l2.N_t_bulk': 5.127425208656758e+19, 'l1.N_t_int': 246737224759.33508, 'l2.N_t_int': 2678441220325.765, 'l2.N_ions': 4.650589578637296e+22, 'R_series': 0.0003517507125053699, 'l2.eps_r': 38.62602571956813}
[INFO 08-14 08:41:03] optimpv.axBOtorchOptimizer: Trial 3 with parameters: {'l2.mu_n': -3.7788642067462206, 'l2.mu_p': -4.116266407072544, 'l2.N_t_bulk': 1.2951439711212333e+20, 'l1.N_t_int': 2024379802146.2253, 'l2.N_t_int': 760025012377.1786, 'l2.N_ions': 2.1647610857327657e+20, 'R_series': 1.967828736661832e-05, 'l2.eps_r': 44.33594702742994}
[INFO 08-14 08:41:03] optimpv.axBOtorchOptimizer: Trial 4 with parameters: {'l2.mu_n': -3.713574580848217, 'l2.mu_p': -3.6050810646265745, 'l2.N_t_bulk': 3.229315373232404e+20, 'l1.N_t_int': 1555965063673.9001, 'l2.N_t_int': 354500987114.4553, 'l2.N_ions': 1.7518275057846887e+21, 'R_series': 0.000686798409085041, 'l2.eps_r': 32.698141038417816}
[INFO 08-14 08:41:03] optimpv.axBOtorchOptimizer: Trial 5 with parameters: {'l2.mu_n': -4.025268958881497, 'l2.mu_p': -4.295658009126782, 'l2.N_t_bulk': 1.4745891697489514e+19, 'l1.N_t_int': 127661486131.78406, 'l2.N_t_int': 1002532326048.0475, 'l2.N_ions': 3.922319238229424e+21, 'R_series': 1.226320400088429e-05, 'l2.eps_r': 41.98777470737696}
[INFO 08-14 08:41:03] optimpv.axBOtorchOptimizer: Trial 6 with parameters: {'l2.mu_n': -4.680374251678586, 'l2.mu_p': -3.092348750680685, 'l2.N_t_bulk': 3.0519504534943465e+20, 'l1.N_t_int': 8288018312489.194, 'l2.N_t_int': 4282019926064.3076, 'l2.N_ions': 1.6072927038033275e+22, 'R_series': 0.0001062080303753143, 'l2.eps_r': 51.947381384670734}
[INFO 08-14 08:41:03] optimpv.axBOtorchOptimizer: Trial 7 with parameters: {'l2.mu_n': -3.120999686419964, 'l2.mu_p': -4.777137942612171, 'l2.N_t_bulk': 6.820822607765503e+19, 'l1.N_t_int': 568056583651.7659, 'l2.N_t_int': 150272527263.30133, 'l2.N_ions': 3.497848619656732e+20, 'R_series': 5.943355904968054e-05, 'l2.eps_r': 31.177047342061996}
[INFO 08-14 08:41:03] optimpv.axBOtorchOptimizer: Trial 8 with parameters: {'l2.mu_n': -3.211199214681983, 'l2.mu_p': -3.8995051067322493, 'l2.N_t_bulk': 2.019751845421069e+20, 'l1.N_t_int': 160592428778.18848, 'l2.N_t_int': 8202242035511.058, 'l2.N_ions': 1.2366425059441109e+20, 'R_series': 0.0008245802289381495, 'l2.eps_r': 34.51944430358708}
[INFO 08-14 08:41:03] optimpv.axBOtorchOptimizer: Trial 9 with parameters: {'l2.mu_n': -4.526457954198122, 'l2.mu_p': -4.215139301493764, 'l2.N_t_bulk': 8.00961194491539e+19, 'l1.N_t_int': 1317605039928.269, 'l2.N_t_int': 248073668888.97406, 'l2.N_ions': 2.9611697321804753e+22, 'R_series': 1.4604064746134599e-05, 'l2.eps_r': 40.057248482480645}
[INFO 08-14 08:42:58] optimpv.axBOtorchOptimizer: Trial 0 completed with results: {'JV_JV_nrmse_linear': np.float64(0.021578832525862755), 'Imp_Cf_nrmse_linear': np.float64(0.27062254266255714), 'Imp_Gf_nrmse_linear': np.float64(0.09045379818786563)} and parameters: {'l2.mu_n': -3.4344273824244738, 'l2.mu_p': -3.2571977507323027, 'l2.N_t_bulk': 1.9789837639355482e+19, 'l1.N_t_int': 553871590638.1672, 'l2.N_t_int': 178690237190.98615, 'l2.N_ions': 8.827212314691695e+20, 'R_series': 0.00022746098283672533, 'l2.eps_r': 49.37736495397985}
[INFO 08-14 08:42:58] optimpv.axBOtorchOptimizer: Trial 1 completed with results: {'JV_JV_nrmse_linear': np.float64(0.10703039557624812), 'Imp_Cf_nrmse_linear': np.float64(0.32890456011354297), 'Imp_Gf_nrmse_linear': np.float64(0.09341467215916945)} and parameters: {'l2.mu_n': -4.874549277126789, 'l2.mu_p': -4.564470278099179, 'l2.N_t_bulk': 7.676135392096502e+20, 'l1.N_t_int': 3796215230643.2666, 'l2.N_t_int': 6292114545999.378, 'l2.N_ions': 9.45273276175964e+21, 'R_series': 4.060312998640146e-05, 'l2.eps_r': 25.148169053718448}
[INFO 08-14 08:42:58] optimpv.axBOtorchOptimizer: Trial 2 completed with results: {'JV_JV_nrmse_linear': np.float64(0.06804053492444245), 'Imp_Cf_nrmse_linear': np.float64(0.3586856974076968), 'Imp_Gf_nrmse_linear': np.float64(0.09991102873864888)} and parameters: {'l2.mu_n': -4.467642851173878, 'l2.mu_p': -3.799149241298437, 'l2.N_t_bulk': 5.127425208656758e+19, 'l1.N_t_int': 246737224759.33508, 'l2.N_t_int': 2678441220325.765, 'l2.N_ions': 4.650589578637296e+22, 'R_series': 0.0003517507125053699, 'l2.eps_r': 38.62602571956813}
[INFO 08-14 08:42:58] optimpv.axBOtorchOptimizer: Trial 3 completed with results: {'JV_JV_nrmse_linear': np.float64(0.09421377153176469), 'Imp_Cf_nrmse_linear': np.float64(0.3759355329537747), 'Imp_Gf_nrmse_linear': np.float64(0.09859410588043958)} and parameters: {'l2.mu_n': -3.7788642067462206, 'l2.mu_p': -4.116266407072544, 'l2.N_t_bulk': 1.2951439711212333e+20, 'l1.N_t_int': 2024379802146.2253, 'l2.N_t_int': 760025012377.1786, 'l2.N_ions': 2.1647610857327657e+20, 'R_series': 1.967828736661832e-05, 'l2.eps_r': 44.33594702742994}
[INFO 08-14 08:42:58] optimpv.axBOtorchOptimizer: Trial 4 completed with results: {'JV_JV_nrmse_linear': np.float64(0.08244929234038595), 'Imp_Cf_nrmse_linear': np.float64(0.22286414941616553), 'Imp_Gf_nrmse_linear': np.float64(0.1227301613856196)} and parameters: {'l2.mu_n': -3.713574580848217, 'l2.mu_p': -3.6050810646265745, 'l2.N_t_bulk': 3.229315373232404e+20, 'l1.N_t_int': 1555965063673.9001, 'l2.N_t_int': 354500987114.4553, 'l2.N_ions': 1.7518275057846887e+21, 'R_series': 0.000686798409085041, 'l2.eps_r': 32.698141038417816}
[INFO 08-14 08:42:58] optimpv.axBOtorchOptimizer: Trial 5 completed with results: {'JV_JV_nrmse_linear': np.float64(0.07122766733333061), 'Imp_Cf_nrmse_linear': np.float64(0.2034155763158222), 'Imp_Gf_nrmse_linear': np.float64(0.11190925656710794)} and parameters: {'l2.mu_n': -4.025268958881497, 'l2.mu_p': -4.295658009126782, 'l2.N_t_bulk': 1.4745891697489514e+19, 'l1.N_t_int': 127661486131.78406, 'l2.N_t_int': 1002532326048.0475, 'l2.N_ions': 3.922319238229424e+21, 'R_series': 1.226320400088429e-05, 'l2.eps_r': 41.98777470737696}
[INFO 08-14 08:42:58] optimpv.axBOtorchOptimizer: Trial 6 completed with results: {'JV_JV_nrmse_linear': np.float64(0.09923874151579146), 'Imp_Cf_nrmse_linear': np.float64(0.4008996083585084), 'Imp_Gf_nrmse_linear': np.float64(0.04724039526008119)} and parameters: {'l2.mu_n': -4.680374251678586, 'l2.mu_p': -3.092348750680685, 'l2.N_t_bulk': 3.0519504534943465e+20, 'l1.N_t_int': 8288018312489.194, 'l2.N_t_int': 4282019926064.3076, 'l2.N_ions': 1.6072927038033275e+22, 'R_series': 0.0001062080303753143, 'l2.eps_r': 51.947381384670734}
[INFO 08-14 08:42:58] optimpv.axBOtorchOptimizer: Trial 7 completed with results: {'JV_JV_nrmse_linear': np.float64(0.04994767047505949), 'Imp_Cf_nrmse_linear': np.float64(0.599793008587463), 'Imp_Gf_nrmse_linear': np.float64(0.056160896331819185)} and parameters: {'l2.mu_n': -3.120999686419964, 'l2.mu_p': -4.777137942612171, 'l2.N_t_bulk': 6.820822607765503e+19, 'l1.N_t_int': 568056583651.7659, 'l2.N_t_int': 150272527263.30133, 'l2.N_ions': 3.497848619656732e+20, 'R_series': 5.943355904968054e-05, 'l2.eps_r': 31.177047342061996}
[INFO 08-14 08:42:58] optimpv.axBOtorchOptimizer: Trial 8 completed with results: {'JV_JV_nrmse_linear': np.float64(0.07403053176712682), 'Imp_Cf_nrmse_linear': np.float64(0.23660160405486602), 'Imp_Gf_nrmse_linear': np.float64(0.13409794631579847)} and parameters: {'l2.mu_n': -3.211199214681983, 'l2.mu_p': -3.8995051067322493, 'l2.N_t_bulk': 2.019751845421069e+20, 'l1.N_t_int': 160592428778.18848, 'l2.N_t_int': 8202242035511.058, 'l2.N_ions': 1.2366425059441109e+20, 'R_series': 0.0008245802289381495, 'l2.eps_r': 34.51944430358708}
[INFO 08-14 08:42:58] optimpv.axBOtorchOptimizer: Trial 9 completed with results: {'JV_JV_nrmse_linear': np.float64(0.05207580779814772), 'Imp_Cf_nrmse_linear': np.float64(0.39895351159343606), 'Imp_Gf_nrmse_linear': np.float64(0.10054126575992452)} and parameters: {'l2.mu_n': -4.526457954198122, 'l2.mu_p': -4.215139301493764, 'l2.N_t_bulk': 8.00961194491539e+19, 'l1.N_t_int': 1317605039928.269, 'l2.N_t_int': 248073668888.97406, 'l2.N_ions': 2.9611697321804753e+22, 'R_series': 1.4604064746134599e-05, 'l2.eps_r': 40.057248482480645}
[INFO 08-14 08:43:06] optimpv.axBOtorchOptimizer: Trial 10 with parameters: {'l2.mu_n': -3.2373109115469525, 'l2.mu_p': -3.823366140385999, 'l2.N_t_bulk': 3.0289486063279256e+19, 'l1.N_t_int': 542495840427.9283, 'l2.N_t_int': 154174802993.89578, 'l2.N_ions': 5.0466461810525674e+20, 'R_series': 0.0001567949848015331, 'l2.eps_r': 42.41413806514022}
[INFO 08-14 08:43:06] optimpv.axBOtorchOptimizer: Trial 11 with parameters: {'l2.mu_n': -3.5175386315182195, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.340749094778582e+19, 'l1.N_t_int': 681020947848.8198, 'l2.N_t_int': 158313219657.58054, 'l2.N_ions': 1.1350553928697811e+21, 'R_series': 0.0004929277651265805, 'l2.eps_r': 55.0}
[INFO 08-14 08:44:47] optimpv.axBOtorchOptimizer: Trial 10 completed with results: {'JV_JV_nrmse_linear': np.float64(0.01801431816365438), 'Imp_Cf_nrmse_linear': np.float64(0.3725563581341239), 'Imp_Gf_nrmse_linear': np.float64(0.06255795946186649)} and parameters: {'l2.mu_n': -3.2373109115469525, 'l2.mu_p': -3.823366140385999, 'l2.N_t_bulk': 3.0289486063279256e+19, 'l1.N_t_int': 542495840427.9283, 'l2.N_t_int': 154174802993.89578, 'l2.N_ions': 5.0466461810525674e+20, 'R_series': 0.0001567949848015331, 'l2.eps_r': 42.41413806514022}
[INFO 08-14 08:44:47] optimpv.axBOtorchOptimizer: Trial 11 completed with results: {'JV_JV_nrmse_linear': np.float64(0.041415997599461137), 'Imp_Cf_nrmse_linear': np.float64(0.15301243072903234), 'Imp_Gf_nrmse_linear': np.float64(0.12768813220466838)} and parameters: {'l2.mu_n': -3.5175386315182195, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.340749094778582e+19, 'l1.N_t_int': 681020947848.8198, 'l2.N_t_int': 158313219657.58054, 'l2.N_ions': 1.1350553928697811e+21, 'R_series': 0.0004929277651265805, 'l2.eps_r': 55.0}
[INFO 08-14 08:44:53] optimpv.axBOtorchOptimizer: Trial 12 with parameters: {'l2.mu_n': -3.321975502452992, 'l2.mu_p': -4.529229721693507, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 100000000000.0, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.1092896604707333e+21, 'R_series': 0.00017278442574606703, 'l2.eps_r': 26.373557673479187}
[INFO 08-14 08:44:53] optimpv.axBOtorchOptimizer: Trial 13 with parameters: {'l2.mu_n': -3.3115071347259684, 'l2.mu_p': -3.533268653071187, 'l2.N_t_bulk': 7.417765615923202e+19, 'l1.N_t_int': 2807156474346.7334, 'l2.N_t_int': 244008144144.16907, 'l2.N_ions': 6.0235397810387e+20, 'R_series': 0.00012309692138583157, 'l2.eps_r': 50.83616949792116}
[INFO 08-14 08:46:36] optimpv.axBOtorchOptimizer: Trial 12 completed with results: {'JV_JV_nrmse_linear': np.float64(0.07494454586596733), 'Imp_Cf_nrmse_linear': np.float64(0.4986654444568566), 'Imp_Gf_nrmse_linear': np.float64(0.032359912710011325)} and parameters: {'l2.mu_n': -3.321975502452992, 'l2.mu_p': -4.529229721693507, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 100000000000.0, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.1092896604707333e+21, 'R_series': 0.00017278442574606703, 'l2.eps_r': 26.373557673479187}
[INFO 08-14 08:46:36] optimpv.axBOtorchOptimizer: Trial 13 completed with results: {'JV_JV_nrmse_linear': np.float64(0.10080893364370122), 'Imp_Cf_nrmse_linear': np.float64(0.32083866232764763), 'Imp_Gf_nrmse_linear': np.float64(0.05584148517795377)} and parameters: {'l2.mu_n': -3.3115071347259684, 'l2.mu_p': -3.533268653071187, 'l2.N_t_bulk': 7.417765615923202e+19, 'l1.N_t_int': 2807156474346.7334, 'l2.N_t_int': 244008144144.16907, 'l2.N_ions': 6.0235397810387e+20, 'R_series': 0.00012309692138583157, 'l2.eps_r': 50.83616949792116}
[INFO 08-14 08:46:42] optimpv.axBOtorchOptimizer: Trial 14 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.2909418301671248e+19, 'l1.N_t_int': 942496175627.7018, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 1e+20, 'R_series': 0.00020451632034539522, 'l2.eps_r': 55.0}
[INFO 08-14 08:46:42] optimpv.axBOtorchOptimizer: Trial 15 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 380076459313.0712, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 1e+20, 'R_series': 0.00013322706061069398, 'l2.eps_r': 55.0}
[INFO 08-14 08:48:20] optimpv.axBOtorchOptimizer: Trial 14 completed with results: {'JV_JV_nrmse_linear': np.float64(0.040128234551376624), 'Imp_Cf_nrmse_linear': np.float64(0.3294106152309972), 'Imp_Gf_nrmse_linear': np.float64(0.08950810223153556)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.2909418301671248e+19, 'l1.N_t_int': 942496175627.7018, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 1e+20, 'R_series': 0.00020451632034539522, 'l2.eps_r': 55.0}
[INFO 08-14 08:48:20] optimpv.axBOtorchOptimizer: Trial 15 completed with results: {'JV_JV_nrmse_linear': np.float64(0.030152720025849372), 'Imp_Cf_nrmse_linear': np.float64(0.34148921947731325), 'Imp_Gf_nrmse_linear': np.float64(0.06549636030338152)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 380076459313.0712, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 1e+20, 'R_series': 0.00013322706061069398, 'l2.eps_r': 55.0}
[INFO 08-14 08:48:26] optimpv.axBOtorchOptimizer: Trial 16 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -4.465253293748642, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 369281492503.7745, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 1e+20, 'R_series': 0.00013866398075547813, 'l2.eps_r': 39.256730140305244}
[INFO 08-14 08:48:26] optimpv.axBOtorchOptimizer: Trial 17 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.2882990232792624, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 508223576894.647, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 5e+22, 'R_series': 0.0001266532693097328, 'l2.eps_r': 25.0}
[INFO 08-14 08:50:05] optimpv.axBOtorchOptimizer: Trial 16 completed with results: {'JV_JV_nrmse_linear': np.float64(0.019616392372934728), 'Imp_Cf_nrmse_linear': np.float64(0.4439548318649798), 'Imp_Gf_nrmse_linear': np.float64(0.04889222213132693)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -4.465253293748642, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 369281492503.7745, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 1e+20, 'R_series': 0.00013866398075547813, 'l2.eps_r': 39.256730140305244}
[INFO 08-14 08:50:05] optimpv.axBOtorchOptimizer: Trial 17 completed with results: {'JV_JV_nrmse_linear': np.float64(0.037576843458976814), 'Imp_Cf_nrmse_linear': np.float64(0.22468126716462913), 'Imp_Gf_nrmse_linear': np.float64(0.02544266371360516)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.2882990232792624, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 508223576894.647, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 5e+22, 'R_series': 0.0001266532693097328, 'l2.eps_r': 25.0}
[INFO 08-14 08:50:11] optimpv.axBOtorchOptimizer: Trial 18 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 554374713734.3759, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 5e+22, 'R_series': 0.00019279515677377005, 'l2.eps_r': 25.0}
[INFO 08-14 08:50:11] optimpv.axBOtorchOptimizer: Trial 19 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.8516654641720462, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 388284524381.5187, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 5e+22, 'R_series': 0.00011931034929022995, 'l2.eps_r': 25.0}
[INFO 08-14 08:51:48] optimpv.axBOtorchOptimizer: Trial 18 completed with results: {'JV_JV_nrmse_linear': np.float64(0.035415164320491924), 'Imp_Cf_nrmse_linear': np.float64(0.2178596686265819), 'Imp_Gf_nrmse_linear': np.float64(0.025568648545650576)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 554374713734.3759, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 5e+22, 'R_series': 0.00019279515677377005, 'l2.eps_r': 25.0}
[INFO 08-14 08:51:48] optimpv.axBOtorchOptimizer: Trial 19 completed with results: {'JV_JV_nrmse_linear': np.float64(0.05142156231089786), 'Imp_Cf_nrmse_linear': np.float64(0.2253468450274578), 'Imp_Gf_nrmse_linear': np.float64(0.03008087016893964)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.8516654641720462, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 388284524381.5187, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 5e+22, 'R_series': 0.00011931034929022995, 'l2.eps_r': 25.0}
[INFO 08-14 08:51:53] optimpv.axBOtorchOptimizer: Trial 20 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 602611082996.212, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 5e+22, 'R_series': 0.00018329490680991277, 'l2.eps_r': 41.29824617267889}
[INFO 08-14 08:51:53] optimpv.axBOtorchOptimizer: Trial 21 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 542066216414.2635, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 4.0822208378021054e+21, 'R_series': 0.0002007427652966182, 'l2.eps_r': 34.53784974869206}
[INFO 08-14 08:53:33] optimpv.axBOtorchOptimizer: Trial 20 completed with results: {'JV_JV_nrmse_linear': np.float64(0.04079850854574492), 'Imp_Cf_nrmse_linear': np.float64(0.46372168287022986), 'Imp_Gf_nrmse_linear': np.float64(0.07438390185060398)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 602611082996.212, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 5e+22, 'R_series': 0.00018329490680991277, 'l2.eps_r': 41.29824617267889}
[INFO 08-14 08:53:33] optimpv.axBOtorchOptimizer: Trial 21 completed with results: {'JV_JV_nrmse_linear': np.float64(0.014384795168637377), 'Imp_Cf_nrmse_linear': np.float64(0.2490863832773858), 'Imp_Gf_nrmse_linear': np.float64(0.06451826628386104)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 542066216414.2635, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 4.0822208378021054e+21, 'R_series': 0.0002007427652966182, 'l2.eps_r': 34.53784974869206}
[INFO 08-14 08:53:38] optimpv.axBOtorchOptimizer: Trial 22 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 591880223543.3955, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 7.118629126535905e+21, 'R_series': 0.0001944447137898155, 'l2.eps_r': 25.0}
[INFO 08-14 08:53:38] optimpv.axBOtorchOptimizer: Trial 23 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 586561029025.1456, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.5076987955041193e+21, 'R_series': 0.00027685840548304324, 'l2.eps_r': 27.094106590415237}
[INFO 08-14 08:55:24] optimpv.axBOtorchOptimizer: Trial 22 completed with results: {'JV_JV_nrmse_linear': np.float64(0.015428405298606078), 'Imp_Cf_nrmse_linear': np.float64(0.35992816226639907), 'Imp_Gf_nrmse_linear': np.float64(0.03143740593099932)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 591880223543.3955, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 7.118629126535905e+21, 'R_series': 0.0001944447137898155, 'l2.eps_r': 25.0}
[INFO 08-14 08:55:24] optimpv.axBOtorchOptimizer: Trial 23 completed with results: {'JV_JV_nrmse_linear': np.float64(0.025799471317997504), 'Imp_Cf_nrmse_linear': np.float64(0.4023991756653031), 'Imp_Gf_nrmse_linear': np.float64(0.06904430177119004)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 586561029025.1456, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.5076987955041193e+21, 'R_series': 0.00027685840548304324, 'l2.eps_r': 27.094106590415237}
[INFO 08-14 08:55:30] optimpv.axBOtorchOptimizer: Trial 24 with parameters: {'l2.mu_n': -3.0390013675988925, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 585351262303.2395, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.7821987371772627e+21, 'R_series': 0.0004657293457059741, 'l2.eps_r': 41.94560717445289}
[INFO 08-14 08:55:30] optimpv.axBOtorchOptimizer: Trial 25 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 760585025176.2596, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.3705959515126833e+22, 'R_series': 0.00016443521913202494, 'l2.eps_r': 26.106604888698524}
[INFO 08-14 08:57:08] optimpv.axBOtorchOptimizer: Trial 24 completed with results: {'JV_JV_nrmse_linear': np.float64(0.03729043150216624), 'Imp_Cf_nrmse_linear': np.float64(0.1418209695761185), 'Imp_Gf_nrmse_linear': np.float64(0.11539775804847408)} and parameters: {'l2.mu_n': -3.0390013675988925, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 585351262303.2395, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.7821987371772627e+21, 'R_series': 0.0004657293457059741, 'l2.eps_r': 41.94560717445289}
[INFO 08-14 08:57:08] optimpv.axBOtorchOptimizer: Trial 25 completed with results: {'JV_JV_nrmse_linear': np.float64(0.0066501459542279715), 'Imp_Cf_nrmse_linear': np.float64(0.14778251172850235), 'Imp_Gf_nrmse_linear': np.float64(0.012147145878925214)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 760585025176.2596, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.3705959515126833e+22, 'R_series': 0.00016443521913202494, 'l2.eps_r': 26.106604888698524}
[INFO 08-14 08:57:15] optimpv.axBOtorchOptimizer: Trial 26 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.358653798656958, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 1119884620244.193, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.472008963996118e+22, 'R_series': 0.00016161142095666653, 'l2.eps_r': 25.0}
[INFO 08-14 08:57:15] optimpv.axBOtorchOptimizer: Trial 27 with parameters: {'l2.mu_n': -5.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+21, 'l1.N_t_int': 968726528476.4999, 'l2.N_t_int': 133090876537.23325, 'l2.N_ions': 2.429270894178237e+22, 'R_series': 0.0001696484136282221, 'l2.eps_r': 25.324826963637694}
[INFO 08-14 08:58:57] optimpv.axBOtorchOptimizer: Trial 26 completed with results: {'JV_JV_nrmse_linear': np.float64(0.029877533887267528), 'Imp_Cf_nrmse_linear': np.float64(0.1618648692909238), 'Imp_Gf_nrmse_linear': np.float64(0.005549575246199604)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.358653798656958, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 1119884620244.193, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.472008963996118e+22, 'R_series': 0.00016161142095666653, 'l2.eps_r': 25.0}
[INFO 08-14 08:58:57] optimpv.axBOtorchOptimizer: Trial 27 completed with results: {'JV_JV_nrmse_linear': np.float64(0.028142921657854317), 'Imp_Cf_nrmse_linear': np.float64(0.1559202069490913), 'Imp_Gf_nrmse_linear': np.float64(0.011630015629207948)} and parameters: {'l2.mu_n': -5.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+21, 'l1.N_t_int': 968726528476.4999, 'l2.N_t_int': 133090876537.23325, 'l2.N_ions': 2.429270894178237e+22, 'R_series': 0.0001696484136282221, 'l2.eps_r': 25.324826963637694}
[INFO 08-14 08:59:03] optimpv.axBOtorchOptimizer: Trial 28 with parameters: {'l2.mu_n': -3.316106605259547, 'l2.mu_p': -4.991984900849852, 'l2.N_t_bulk': 6.983931091929271e+20, 'l1.N_t_int': 835798539367.0747, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.5889361182904243e+22, 'R_series': 0.0001486610269005327, 'l2.eps_r': 25.0}
[INFO 08-14 08:59:03] optimpv.axBOtorchOptimizer: Trial 29 with parameters: {'l2.mu_n': -4.503457459698537, 'l2.mu_p': -3.387546075709297, 'l2.N_t_bulk': 1.247712578443145e+19, 'l1.N_t_int': 880340927124.0881, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.1878537337225188e+22, 'R_series': 0.00021322656278982227, 'l2.eps_r': 27.8148715392063}
[INFO 08-14 09:00:44] optimpv.axBOtorchOptimizer: Trial 28 completed with results: {'JV_JV_nrmse_linear': np.float64(0.06897305646691612), 'Imp_Cf_nrmse_linear': np.float64(0.16106163741136234), 'Imp_Gf_nrmse_linear': np.float64(0.008825264546113432)} and parameters: {'l2.mu_n': -3.316106605259547, 'l2.mu_p': -4.991984900849852, 'l2.N_t_bulk': 6.983931091929271e+20, 'l1.N_t_int': 835798539367.0747, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.5889361182904243e+22, 'R_series': 0.0001486610269005327, 'l2.eps_r': 25.0}
[INFO 08-14 09:00:44] optimpv.axBOtorchOptimizer: Trial 29 completed with results: {'JV_JV_nrmse_linear': np.float64(0.016163770177240428), 'Imp_Cf_nrmse_linear': np.float64(0.13212446927473032), 'Imp_Gf_nrmse_linear': np.float64(0.044060725640310876)} and parameters: {'l2.mu_n': -4.503457459698537, 'l2.mu_p': -3.387546075709297, 'l2.N_t_bulk': 1.247712578443145e+19, 'l1.N_t_int': 880340927124.0881, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.1878537337225188e+22, 'R_series': 0.00021322656278982227, 'l2.eps_r': 27.8148715392063}
[INFO 08-14 09:00:52] optimpv.axBOtorchOptimizer: Trial 30 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.1177357032567277, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 895421050135.0421, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.3939874457721114e+22, 'R_series': 0.0001599862059283059, 'l2.eps_r': 27.91090190189906}
[INFO 08-14 09:00:52] optimpv.axBOtorchOptimizer: Trial 31 with parameters: {'l2.mu_n': -5.0, 'l2.mu_p': -3.350199212078953, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 889868690090.4021, 'l2.N_t_int': 10000000000000.0, 'l2.N_ions': 2.5078957470513036e+22, 'R_series': 0.00015890494016367423, 'l2.eps_r': 27.251319434490714}
[INFO 08-14 09:02:28] optimpv.axBOtorchOptimizer: Trial 30 completed with results: {'JV_JV_nrmse_linear': np.float64(0.015148926264752411), 'Imp_Cf_nrmse_linear': np.float64(0.14874768116776269), 'Imp_Gf_nrmse_linear': np.float64(0.01872121809822899)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.1177357032567277, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 895421050135.0421, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 2.3939874457721114e+22, 'R_series': 0.0001599862059283059, 'l2.eps_r': 27.91090190189906}
[INFO 08-14 09:02:28] optimpv.axBOtorchOptimizer: Trial 31 completed with results: {'JV_JV_nrmse_linear': np.float64(0.018444426039750644), 'Imp_Cf_nrmse_linear': np.float64(0.15140488778756003), 'Imp_Gf_nrmse_linear': np.float64(0.01479597234256039)} and parameters: {'l2.mu_n': -5.0, 'l2.mu_p': -3.350199212078953, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 889868690090.4021, 'l2.N_t_int': 10000000000000.0, 'l2.N_ions': 2.5078957470513036e+22, 'R_series': 0.00015890494016367423, 'l2.eps_r': 27.251319434490714}
[INFO 08-14 09:02:34] optimpv.axBOtorchOptimizer: Trial 32 with parameters: {'l2.mu_n': -3.1408542276278375, 'l2.mu_p': -3.1324767177523696, 'l2.N_t_bulk': 3.5607385209588007e+19, 'l1.N_t_int': 834859320870.6088, 'l2.N_t_int': 6040498774234.884, 'l2.N_ions': 2.241998786896884e+22, 'R_series': 0.0001802150238290016, 'l2.eps_r': 27.72825220137869}
[INFO 08-14 09:02:34] optimpv.axBOtorchOptimizer: Trial 33 with parameters: {'l2.mu_n': -3.01593949049974, 'l2.mu_p': -3.518904811323785, 'l2.N_t_bulk': 3.8418493681279245e+20, 'l1.N_t_int': 836606637433.2462, 'l2.N_t_int': 183845850666.09082, 'l2.N_ions': 2.3869222628150263e+22, 'R_series': 0.0001786114739374115, 'l2.eps_r': 27.0483020565294}
[INFO 08-14 09:04:14] optimpv.axBOtorchOptimizer: Trial 32 completed with results: {'JV_JV_nrmse_linear': np.float64(0.012784033783561953), 'Imp_Cf_nrmse_linear': np.float64(0.1371955220242068), 'Imp_Gf_nrmse_linear': np.float64(0.029315489651220664)} and parameters: {'l2.mu_n': -3.1408542276278375, 'l2.mu_p': -3.1324767177523696, 'l2.N_t_bulk': 3.5607385209588007e+19, 'l1.N_t_int': 834859320870.6088, 'l2.N_t_int': 6040498774234.884, 'l2.N_ions': 2.241998786896884e+22, 'R_series': 0.0001802150238290016, 'l2.eps_r': 27.72825220137869}
[INFO 08-14 09:04:14] optimpv.axBOtorchOptimizer: Trial 33 completed with results: {'JV_JV_nrmse_linear': np.float64(0.018354892182330818), 'Imp_Cf_nrmse_linear': np.float64(0.14516503557641613), 'Imp_Gf_nrmse_linear': np.float64(0.025421395838898894)} and parameters: {'l2.mu_n': -3.01593949049974, 'l2.mu_p': -3.518904811323785, 'l2.N_t_bulk': 3.8418493681279245e+20, 'l1.N_t_int': 836606637433.2462, 'l2.N_t_int': 183845850666.09082, 'l2.N_ions': 2.3869222628150263e+22, 'R_series': 0.0001786114739374115, 'l2.eps_r': 27.0483020565294}
[INFO 08-14 09:04:19] optimpv.axBOtorchOptimizer: Trial 34 with parameters: {'l2.mu_n': -3.883143090723003, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.2780157351475462e+19, 'l1.N_t_int': 764489419961.8328, 'l2.N_t_int': 177015849593.91998, 'l2.N_ions': 2.0525641630593627e+22, 'R_series': 0.00017433208100923645, 'l2.eps_r': 28.20841713524602}
[INFO 08-14 09:04:19] optimpv.axBOtorchOptimizer: Trial 35 with parameters: {'l2.mu_n': -3.5200200032755715, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.0868878471796376e+19, 'l1.N_t_int': 955956709488.5021, 'l2.N_t_int': 1267899868138.2114, 'l2.N_ions': 2.272129574622146e+22, 'R_series': 0.0001911298793535431, 'l2.eps_r': 27.857407632435475}
[INFO 08-14 09:05:58] optimpv.axBOtorchOptimizer: Trial 34 completed with results: {'JV_JV_nrmse_linear': np.float64(0.0084881136783213), 'Imp_Cf_nrmse_linear': np.float64(0.1275984778958315), 'Imp_Gf_nrmse_linear': np.float64(0.028664269158402852)} and parameters: {'l2.mu_n': -3.883143090723003, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.2780157351475462e+19, 'l1.N_t_int': 764489419961.8328, 'l2.N_t_int': 177015849593.91998, 'l2.N_ions': 2.0525641630593627e+22, 'R_series': 0.00017433208100923645, 'l2.eps_r': 28.20841713524602}
[INFO 08-14 09:05:58] optimpv.axBOtorchOptimizer: Trial 35 completed with results: {'JV_JV_nrmse_linear': np.float64(0.01822894984894134), 'Imp_Cf_nrmse_linear': np.float64(0.1383428993519247), 'Imp_Gf_nrmse_linear': np.float64(0.035078820439302064)} and parameters: {'l2.mu_n': -3.5200200032755715, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.0868878471796376e+19, 'l1.N_t_int': 955956709488.5021, 'l2.N_t_int': 1267899868138.2114, 'l2.N_ions': 2.272129574622146e+22, 'R_series': 0.0001911298793535431, 'l2.eps_r': 27.857407632435475}
[INFO 08-14 09:06:05] optimpv.axBOtorchOptimizer: Trial 36 with parameters: {'l2.mu_n': -3.6365004592687544, 'l2.mu_p': -3.0843057985827658, 'l2.N_t_bulk': 1.1411568659282137e+19, 'l1.N_t_int': 770925925243.4972, 'l2.N_t_int': 184506682566.10312, 'l2.N_ions': 1.9589201342942027e+22, 'R_series': 0.0001398526803169258, 'l2.eps_r': 26.970225252896245}
[INFO 08-14 09:06:05] optimpv.axBOtorchOptimizer: Trial 37 with parameters: {'l2.mu_n': -4.772551177845757, 'l2.mu_p': -3.671170166062096, 'l2.N_t_bulk': 2.4650533773981454e+19, 'l1.N_t_int': 799478423257.3864, 'l2.N_t_int': 411999344241.51935, 'l2.N_ions': 2.0141303462145238e+22, 'R_series': 0.00012534998791521732, 'l2.eps_r': 25.7852784769761}
[INFO 08-14 09:07:40] optimpv.axBOtorchOptimizer: Trial 36 completed with results: {'JV_JV_nrmse_linear': np.float64(0.01325861126646986), 'Imp_Cf_nrmse_linear': np.float64(0.13943057598415368), 'Imp_Gf_nrmse_linear': np.float64(0.0035961766717824417)} and parameters: {'l2.mu_n': -3.6365004592687544, 'l2.mu_p': -3.0843057985827658, 'l2.N_t_bulk': 1.1411568659282137e+19, 'l1.N_t_int': 770925925243.4972, 'l2.N_t_int': 184506682566.10312, 'l2.N_ions': 1.9589201342942027e+22, 'R_series': 0.0001398526803169258, 'l2.eps_r': 26.970225252896245}
[INFO 08-14 09:07:40] optimpv.axBOtorchOptimizer: Trial 37 completed with results: {'JV_JV_nrmse_linear': np.float64(0.013442133935144929), 'Imp_Cf_nrmse_linear': np.float64(0.16518772507781126), 'Imp_Gf_nrmse_linear': np.float64(0.02021545546795204)} and parameters: {'l2.mu_n': -4.772551177845757, 'l2.mu_p': -3.671170166062096, 'l2.N_t_bulk': 2.4650533773981454e+19, 'l1.N_t_int': 799478423257.3864, 'l2.N_t_int': 411999344241.51935, 'l2.N_ions': 2.0141303462145238e+22, 'R_series': 0.00012534998791521732, 'l2.eps_r': 25.7852784769761}
[INFO 08-14 09:07:46] optimpv.axBOtorchOptimizer: Trial 38 with parameters: {'l2.mu_n': -4.750829404169771, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.488681347036667e+20, 'l1.N_t_int': 669565453140.6251, 'l2.N_t_int': 194242629242.76202, 'l2.N_ions': 1.8116325153882807e+22, 'R_series': 0.00014784562398888323, 'l2.eps_r': 28.476885156563885}
[INFO 08-14 09:07:46] optimpv.axBOtorchOptimizer: Trial 39 with parameters: {'l2.mu_n': -4.8447119607692954, 'l2.mu_p': -3.04194597607527, 'l2.N_t_bulk': 4.1243302974404146e+20, 'l1.N_t_int': 671990165797.4319, 'l2.N_t_int': 7717148622308.031, 'l2.N_ions': 6.57382737582151e+21, 'R_series': 0.00021096928657654521, 'l2.eps_r': 25.0}
[INFO 08-14 09:09:32] optimpv.axBOtorchOptimizer: Trial 38 completed with results: {'JV_JV_nrmse_linear': np.float64(0.012257452488687481), 'Imp_Cf_nrmse_linear': np.float64(0.11827961649845455), 'Imp_Gf_nrmse_linear': np.float64(0.01434169472590408)} and parameters: {'l2.mu_n': -4.750829404169771, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.488681347036667e+20, 'l1.N_t_int': 669565453140.6251, 'l2.N_t_int': 194242629242.76202, 'l2.N_ions': 1.8116325153882807e+22, 'R_series': 0.00014784562398888323, 'l2.eps_r': 28.476885156563885}
[INFO 08-14 09:09:32] optimpv.axBOtorchOptimizer: Trial 39 completed with results: {'JV_JV_nrmse_linear': np.float64(0.03803536981631298), 'Imp_Cf_nrmse_linear': np.float64(0.35938095114797153), 'Imp_Gf_nrmse_linear': np.float64(0.03985095579157452)} and parameters: {'l2.mu_n': -4.8447119607692954, 'l2.mu_p': -3.04194597607527, 'l2.N_t_bulk': 4.1243302974404146e+20, 'l1.N_t_int': 671990165797.4319, 'l2.N_t_int': 7717148622308.031, 'l2.N_ions': 6.57382737582151e+21, 'R_series': 0.00021096928657654521, 'l2.eps_r': 25.0}
[INFO 08-14 09:09:40] optimpv.axBOtorchOptimizer: Trial 40 with parameters: {'l2.mu_n': -4.360006119672246, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.1324772702874993e+19, 'l1.N_t_int': 623455849557.0217, 'l2.N_t_int': 1093260580827.7451, 'l2.N_ions': 1.77582568250701e+22, 'R_series': 0.00013581189752063448, 'l2.eps_r': 28.000729089839425}
[INFO 08-14 09:09:40] optimpv.axBOtorchOptimizer: Trial 41 with parameters: {'l2.mu_n': -4.07817078101635, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 4.375053835114468e+19, 'l1.N_t_int': 530499218891.1717, 'l2.N_t_int': 134279453635.56413, 'l2.N_ions': 1.650966833046439e+22, 'R_series': 0.00012268171300360668, 'l2.eps_r': 28.89858667075606}
[INFO 08-14 09:11:18] optimpv.axBOtorchOptimizer: Trial 40 completed with results: {'JV_JV_nrmse_linear': np.float64(0.005055424812969965), 'Imp_Cf_nrmse_linear': np.float64(0.12512879146149536), 'Imp_Gf_nrmse_linear': np.float64(0.003332700372006026)} and parameters: {'l2.mu_n': -4.360006119672246, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.1324772702874993e+19, 'l1.N_t_int': 623455849557.0217, 'l2.N_t_int': 1093260580827.7451, 'l2.N_ions': 1.77582568250701e+22, 'R_series': 0.00013581189752063448, 'l2.eps_r': 28.000729089839425}
[INFO 08-14 09:11:18] optimpv.axBOtorchOptimizer: Trial 41 completed with results: {'JV_JV_nrmse_linear': np.float64(0.010333492635547042), 'Imp_Cf_nrmse_linear': np.float64(0.11215126262978753), 'Imp_Gf_nrmse_linear': np.float64(0.005470923979303486)} and parameters: {'l2.mu_n': -4.07817078101635, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 4.375053835114468e+19, 'l1.N_t_int': 530499218891.1717, 'l2.N_t_int': 134279453635.56413, 'l2.N_ions': 1.650966833046439e+22, 'R_series': 0.00012268171300360668, 'l2.eps_r': 28.89858667075606}
[INFO 08-14 09:11:26] optimpv.axBOtorchOptimizer: Trial 42 with parameters: {'l2.mu_n': -4.327500450043707, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.8640838435154436e+19, 'l1.N_t_int': 269525673309.31854, 'l2.N_t_int': 3098252953793.724, 'l2.N_ions': 1.049456949934722e+22, 'R_series': 8.423754314039869e-05, 'l2.eps_r': 33.074401050618526}
[INFO 08-14 09:11:26] optimpv.axBOtorchOptimizer: Trial 43 with parameters: {'l2.mu_n': -5.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 512255155225.32043, 'l2.N_t_int': 171256969381.2671, 'l2.N_ions': 1.7436276291040285e+22, 'R_series': 0.0001289619452473338, 'l2.eps_r': 27.93496493621857}
[INFO 08-14 09:13:02] optimpv.axBOtorchOptimizer: Trial 42 completed with results: {'JV_JV_nrmse_linear': np.float64(0.0469961838535745), 'Imp_Cf_nrmse_linear': np.float64(0.05559669834009156), 'Imp_Gf_nrmse_linear': np.float64(0.026228969695265426)} and parameters: {'l2.mu_n': -4.327500450043707, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.8640838435154436e+19, 'l1.N_t_int': 269525673309.31854, 'l2.N_t_int': 3098252953793.724, 'l2.N_ions': 1.049456949934722e+22, 'R_series': 8.423754314039869e-05, 'l2.eps_r': 33.074401050618526}
[INFO 08-14 09:13:02] optimpv.axBOtorchOptimizer: Trial 43 completed with results: {'JV_JV_nrmse_linear': np.float64(0.02548077262034985), 'Imp_Cf_nrmse_linear': np.float64(0.12771290720829695), 'Imp_Gf_nrmse_linear': np.float64(0.005239478813158671)} and parameters: {'l2.mu_n': -5.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 512255155225.32043, 'l2.N_t_int': 171256969381.2671, 'l2.N_ions': 1.7436276291040285e+22, 'R_series': 0.0001289619452473338, 'l2.eps_r': 27.93496493621857}
[INFO 08-14 09:13:10] optimpv.axBOtorchOptimizer: Trial 44 with parameters: {'l2.mu_n': -4.713292628591095, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.493064136956696e+19, 'l1.N_t_int': 519285315723.644, 'l2.N_t_int': 2378921409986.8223, 'l2.N_ions': 1.415576179878619e+22, 'R_series': 0.00010654254973710214, 'l2.eps_r': 31.193629746737358}
[INFO 08-14 09:13:10] optimpv.axBOtorchOptimizer: Trial 45 with parameters: {'l2.mu_n': -4.524783731305657, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 3.506154449043922e+19, 'l1.N_t_int': 669315186323.8967, 'l2.N_t_int': 2638116492407.5566, 'l2.N_ions': 1.500096445749328e+22, 'R_series': 0.00011035161328726663, 'l2.eps_r': 29.341487583062964}
[INFO 08-14 09:14:47] optimpv.axBOtorchOptimizer: Trial 44 completed with results: {'JV_JV_nrmse_linear': np.float64(0.015365033615097013), 'Imp_Cf_nrmse_linear': np.float64(0.07790186669670233), 'Imp_Gf_nrmse_linear': np.float64(0.009739617856372743)} and parameters: {'l2.mu_n': -4.713292628591095, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.493064136956696e+19, 'l1.N_t_int': 519285315723.644, 'l2.N_t_int': 2378921409986.8223, 'l2.N_ions': 1.415576179878619e+22, 'R_series': 0.00010654254973710214, 'l2.eps_r': 31.193629746737358}
[INFO 08-14 09:14:47] optimpv.axBOtorchOptimizer: Trial 45 completed with results: {'JV_JV_nrmse_linear': np.float64(0.007646781082963695), 'Imp_Cf_nrmse_linear': np.float64(0.10856857874926362), 'Imp_Gf_nrmse_linear': np.float64(0.01427408819776177)} and parameters: {'l2.mu_n': -4.524783731305657, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 3.506154449043922e+19, 'l1.N_t_int': 669315186323.8967, 'l2.N_t_int': 2638116492407.5566, 'l2.N_ions': 1.500096445749328e+22, 'R_series': 0.00011035161328726663, 'l2.eps_r': 29.341487583062964}
[INFO 08-14 09:14:56] optimpv.axBOtorchOptimizer: Trial 46 with parameters: {'l2.mu_n': -5.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 7.379892546121354e+19, 'l1.N_t_int': 431762210781.03046, 'l2.N_t_int': 10000000000000.0, 'l2.N_ions': 1.3474027597932481e+22, 'R_series': 0.00010308287551317346, 'l2.eps_r': 32.90691030696756}
[INFO 08-14 09:14:56] optimpv.axBOtorchOptimizer: Trial 47 with parameters: {'l2.mu_n': -4.462856300723512, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.9178394995267568e+19, 'l1.N_t_int': 453623682593.24585, 'l2.N_t_int': 7290596544083.445, 'l2.N_ions': 1.5116449346899346e+22, 'R_series': 0.00011578325149061769, 'l2.eps_r': 30.686092609054803}
[INFO 08-14 09:16:37] optimpv.axBOtorchOptimizer: Trial 46 completed with results: {'JV_JV_nrmse_linear': np.float64(0.02663043059160876), 'Imp_Cf_nrmse_linear': np.float64(0.07296247795238875), 'Imp_Gf_nrmse_linear': np.float64(0.0060914210160273865)} and parameters: {'l2.mu_n': -5.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 7.379892546121354e+19, 'l1.N_t_int': 431762210781.03046, 'l2.N_t_int': 10000000000000.0, 'l2.N_ions': 1.3474027597932481e+22, 'R_series': 0.00010308287551317346, 'l2.eps_r': 32.90691030696756}
[INFO 08-14 09:16:37] optimpv.axBOtorchOptimizer: Trial 47 completed with results: {'JV_JV_nrmse_linear': np.float64(0.01961863497450703), 'Imp_Cf_nrmse_linear': np.float64(0.08829672697923795), 'Imp_Gf_nrmse_linear': np.float64(0.0032910751446230836)} and parameters: {'l2.mu_n': -4.462856300723512, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.9178394995267568e+19, 'l1.N_t_int': 453623682593.24585, 'l2.N_t_int': 7290596544083.445, 'l2.N_ions': 1.5116449346899346e+22, 'R_series': 0.00011578325149061769, 'l2.eps_r': 30.686092609054803}
[INFO 08-14 09:16:46] optimpv.axBOtorchOptimizer: Trial 48 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 100000000000.0, 'l2.N_t_int': 10000000000000.0, 'l2.N_ions': 1.2157523478136654e+22, 'R_series': 0.00012039455067037231, 'l2.eps_r': 32.51183578824943}
[INFO 08-14 09:16:46] optimpv.axBOtorchOptimizer: Trial 49 with parameters: {'l2.mu_n': -4.6329235232942825, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.1562016152992594e+19, 'l1.N_t_int': 10000000000000.0, 'l2.N_t_int': 355237100281.40094, 'l2.N_ions': 1.594423058913111e+22, 'R_series': 0.00012135827191052045, 'l2.eps_r': 31.9760799667824}
[INFO 08-14 09:18:25] optimpv.axBOtorchOptimizer: Trial 48 completed with results: {'JV_JV_nrmse_linear': np.float64(0.08248408889623667), 'Imp_Cf_nrmse_linear': np.float64(0.05182934568601881), 'Imp_Gf_nrmse_linear': np.float64(0.011109521789046211)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 100000000000.0, 'l2.N_t_int': 10000000000000.0, 'l2.N_ions': 1.2157523478136654e+22, 'R_series': 0.00012039455067037231, 'l2.eps_r': 32.51183578824943}
[INFO 08-14 09:18:25] optimpv.axBOtorchOptimizer: Trial 49 completed with results: {'JV_JV_nrmse_linear': np.float64(0.10759747416697668), 'Imp_Cf_nrmse_linear': np.float64(0.10704072564825244), 'Imp_Gf_nrmse_linear': np.float64(0.008919013054128682)} and parameters: {'l2.mu_n': -4.6329235232942825, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.1562016152992594e+19, 'l1.N_t_int': 10000000000000.0, 'l2.N_t_int': 355237100281.40094, 'l2.N_ions': 1.594423058913111e+22, 'R_series': 0.00012135827191052045, 'l2.eps_r': 31.9760799667824}
[INFO 08-14 09:18:32] optimpv.axBOtorchOptimizer: Trial 50 with parameters: {'l2.mu_n': -4.824157368267843, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 6.639454840521109e+19, 'l1.N_t_int': 247066993301.77823, 'l2.N_t_int': 1694271340368.5354, 'l2.N_ions': 1.4611454435270322e+22, 'R_series': 0.00011165978905076052, 'l2.eps_r': 32.865653228437274}
[INFO 08-14 09:18:32] optimpv.axBOtorchOptimizer: Trial 51 with parameters: {'l2.mu_n': -4.7227324088443146, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.5629130478449768e+19, 'l1.N_t_int': 186916292492.2724, 'l2.N_t_int': 9164686473751.033, 'l2.N_ions': 1.3962781906832506e+22, 'R_series': 0.00010164329175919005, 'l2.eps_r': 33.44861632103291}
[INFO 08-14 09:20:12] optimpv.axBOtorchOptimizer: Trial 50 completed with results: {'JV_JV_nrmse_linear': np.float64(0.05537886647541878), 'Imp_Cf_nrmse_linear': np.float64(0.09696158065456498), 'Imp_Gf_nrmse_linear': np.float64(0.0037688385033600624)} and parameters: {'l2.mu_n': -4.824157368267843, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 6.639454840521109e+19, 'l1.N_t_int': 247066993301.77823, 'l2.N_t_int': 1694271340368.5354, 'l2.N_ions': 1.4611454435270322e+22, 'R_series': 0.00011165978905076052, 'l2.eps_r': 32.865653228437274}
[INFO 08-14 09:20:12] optimpv.axBOtorchOptimizer: Trial 51 completed with results: {'JV_JV_nrmse_linear': np.float64(0.06378847988963679), 'Imp_Cf_nrmse_linear': np.float64(0.09223606449444073), 'Imp_Gf_nrmse_linear': np.float64(0.005904586119758362)} and parameters: {'l2.mu_n': -4.7227324088443146, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.5629130478449768e+19, 'l1.N_t_int': 186916292492.2724, 'l2.N_t_int': 9164686473751.033, 'l2.N_ions': 1.3962781906832506e+22, 'R_series': 0.00010164329175919005, 'l2.eps_r': 33.44861632103291}
[INFO 08-14 09:20:19] optimpv.axBOtorchOptimizer: Trial 52 with parameters: {'l2.mu_n': -4.617691718991886, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.1594307693592158e+19, 'l1.N_t_int': 433440567828.4899, 'l2.N_t_int': 3277244710814.004, 'l2.N_ions': 1.078391884852203e+22, 'R_series': 0.00010655220475576754, 'l2.eps_r': 33.41197606777158}
[INFO 08-14 09:20:19] optimpv.axBOtorchOptimizer: Trial 53 with parameters: {'l2.mu_n': -3.425977118989805, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.643021105466083e+20, 'l1.N_t_int': 161390768678.71317, 'l2.N_t_int': 3436247311266.014, 'l2.N_ions': 8.481247899103501e+21, 'R_series': 0.00011484719641684811, 'l2.eps_r': 36.07733122410076}
[INFO 08-14 09:22:03] optimpv.axBOtorchOptimizer: Trial 52 completed with results: {'JV_JV_nrmse_linear': np.float64(0.022631048432558604), 'Imp_Cf_nrmse_linear': np.float64(0.038015247338728866), 'Imp_Gf_nrmse_linear': np.float64(0.0011008148283068605)} and parameters: {'l2.mu_n': -4.617691718991886, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.1594307693592158e+19, 'l1.N_t_int': 433440567828.4899, 'l2.N_t_int': 3277244710814.004, 'l2.N_ions': 1.078391884852203e+22, 'R_series': 0.00010655220475576754, 'l2.eps_r': 33.41197606777158}
[INFO 08-14 09:22:03] optimpv.axBOtorchOptimizer: Trial 53 completed with results: {'JV_JV_nrmse_linear': np.float64(0.060468234893826356), 'Imp_Cf_nrmse_linear': np.float64(0.03970808061754574), 'Imp_Gf_nrmse_linear': np.float64(0.02037214680495394)} and parameters: {'l2.mu_n': -3.425977118989805, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.643021105466083e+20, 'l1.N_t_int': 161390768678.71317, 'l2.N_t_int': 3436247311266.014, 'l2.N_ions': 8.481247899103501e+21, 'R_series': 0.00011484719641684811, 'l2.eps_r': 36.07733122410076}
[INFO 08-14 09:22:13] optimpv.axBOtorchOptimizer: Trial 54 with parameters: {'l2.mu_n': -3.7055117175603454, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.0116832032280388e+19, 'l1.N_t_int': 501962823531.2339, 'l2.N_t_int': 7788490571242.31, 'l2.N_ions': 9.526012916218401e+21, 'R_series': 0.00011621962970966026, 'l2.eps_r': 33.347374148005095}
[INFO 08-14 09:22:13] optimpv.axBOtorchOptimizer: Trial 55 with parameters: {'l2.mu_n': -3.0960333903137984, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.0852052617039047e+19, 'l1.N_t_int': 597657167785.2487, 'l2.N_t_int': 1729651303569.0874, 'l2.N_ions': 8.690633230981449e+21, 'R_series': 0.00011001895021213222, 'l2.eps_r': 36.010196779508746}
[INFO 08-14 09:23:53] optimpv.axBOtorchOptimizer: Trial 54 completed with results: {'JV_JV_nrmse_linear': np.float64(0.0038294031260322514), 'Imp_Cf_nrmse_linear': np.float64(0.07595874646460286), 'Imp_Gf_nrmse_linear': np.float64(0.011536062041174753)} and parameters: {'l2.mu_n': -3.7055117175603454, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.0116832032280388e+19, 'l1.N_t_int': 501962823531.2339, 'l2.N_t_int': 7788490571242.31, 'l2.N_ions': 9.526012916218401e+21, 'R_series': 0.00011621962970966026, 'l2.eps_r': 33.347374148005095}
[INFO 08-14 09:23:53] optimpv.axBOtorchOptimizer: Trial 55 completed with results: {'JV_JV_nrmse_linear': np.float64(0.008731120090347948), 'Imp_Cf_nrmse_linear': np.float64(0.040825046104021476), 'Imp_Gf_nrmse_linear': np.float64(0.014908833364292962)} and parameters: {'l2.mu_n': -3.0960333903137984, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.0852052617039047e+19, 'l1.N_t_int': 597657167785.2487, 'l2.N_t_int': 1729651303569.0874, 'l2.N_ions': 8.690633230981449e+21, 'R_series': 0.00011001895021213222, 'l2.eps_r': 36.010196779508746}
[INFO 08-14 09:24:01] optimpv.axBOtorchOptimizer: Trial 56 with parameters: {'l2.mu_n': -3.503728431459832, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 4.412059856699716e+19, 'l1.N_t_int': 427850143469.4529, 'l2.N_t_int': 476419932562.2033, 'l2.N_ions': 9.81896692904813e+21, 'R_series': 0.0001029304055052857, 'l2.eps_r': 36.583143535691235}
[INFO 08-14 09:24:01] optimpv.axBOtorchOptimizer: Trial 57 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 371596814316.7821, 'l2.N_t_int': 1150813105212.7483, 'l2.N_ions': 1.2255665904428847e+22, 'R_series': 0.00011450251513328898, 'l2.eps_r': 33.24751797173727}
[INFO 08-14 09:25:43] optimpv.axBOtorchOptimizer: Trial 56 completed with results: {'JV_JV_nrmse_linear': np.float64(0.01993093216758486), 'Imp_Cf_nrmse_linear': np.float64(0.04549309483454261), 'Imp_Gf_nrmse_linear': np.float64(0.008943221087394152)} and parameters: {'l2.mu_n': -3.503728431459832, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 4.412059856699716e+19, 'l1.N_t_int': 427850143469.4529, 'l2.N_t_int': 476419932562.2033, 'l2.N_ions': 9.81896692904813e+21, 'R_series': 0.0001029304055052857, 'l2.eps_r': 36.583143535691235}
[INFO 08-14 09:25:43] optimpv.axBOtorchOptimizer: Trial 57 completed with results: {'JV_JV_nrmse_linear': np.float64(0.03133554171158734), 'Imp_Cf_nrmse_linear': np.float64(0.04767789340477519), 'Imp_Gf_nrmse_linear': np.float64(0.00830789977547047)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 371596814316.7821, 'l2.N_t_int': 1150813105212.7483, 'l2.N_ions': 1.2255665904428847e+22, 'R_series': 0.00011450251513328898, 'l2.eps_r': 33.24751797173727}
[INFO 08-14 09:25:52] optimpv.axBOtorchOptimizer: Trial 58 with parameters: {'l2.mu_n': -4.993093302872278, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 3.1190561547808444e+19, 'l1.N_t_int': 497477805728.3479, 'l2.N_t_int': 1876114293648.7942, 'l2.N_ions': 1.2086908973962626e+22, 'R_series': 0.00011077100689896568, 'l2.eps_r': 35.26414429679941}
[INFO 08-14 09:25:52] optimpv.axBOtorchOptimizer: Trial 59 with parameters: {'l2.mu_n': -5.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 360541594919.6332, 'l2.N_t_int': 10000000000000.0, 'l2.N_ions': 1.2896080624830344e+22, 'R_series': 0.00011792389731769374, 'l2.eps_r': 30.637991757474126}
[INFO 08-14 09:27:33] optimpv.axBOtorchOptimizer: Trial 58 completed with results: {'JV_JV_nrmse_linear': np.float64(0.02661252969713717), 'Imp_Cf_nrmse_linear': np.float64(0.08096120372103614), 'Imp_Gf_nrmse_linear': np.float64(0.012090711690153296)} and parameters: {'l2.mu_n': -4.993093302872278, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 3.1190561547808444e+19, 'l1.N_t_int': 497477805728.3479, 'l2.N_t_int': 1876114293648.7942, 'l2.N_ions': 1.2086908973962626e+22, 'R_series': 0.00011077100689896568, 'l2.eps_r': 35.26414429679941}
[INFO 08-14 09:27:33] optimpv.axBOtorchOptimizer: Trial 59 completed with results: {'JV_JV_nrmse_linear': np.float64(0.03420915992330581), 'Imp_Cf_nrmse_linear': np.float64(0.08995984205175162), 'Imp_Gf_nrmse_linear': np.float64(0.0010471533000649018)} and parameters: {'l2.mu_n': -5.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 360541594919.6332, 'l2.N_t_int': 10000000000000.0, 'l2.N_ions': 1.2896080624830344e+22, 'R_series': 0.00011792389731769374, 'l2.eps_r': 30.637991757474126}
[INFO 08-14 09:27:41] optimpv.axBOtorchOptimizer: Trial 60 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 437833540026.9546, 'l2.N_t_int': 1404254631413.2131, 'l2.N_ions': 7.947871787006151e+21, 'R_series': 9.947520948511093e-05, 'l2.eps_r': 35.12227723573914}
[INFO 08-14 09:27:41] optimpv.axBOtorchOptimizer: Trial 61 with parameters: {'l2.mu_n': -3.0731231724392227, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 4.553956432480986e+19, 'l1.N_t_int': 583170219261.1349, 'l2.N_t_int': 575778770154.3047, 'l2.N_ions': 7.841131303412125e+21, 'R_series': 0.00010543610415156268, 'l2.eps_r': 33.05476345447062}
[INFO 08-14 09:29:23] optimpv.axBOtorchOptimizer: Trial 60 completed with results: {'JV_JV_nrmse_linear': np.float64(0.01394687735828349), 'Imp_Cf_nrmse_linear': np.float64(0.0935121218803791), 'Imp_Gf_nrmse_linear': np.float64(0.001186667749201102)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 437833540026.9546, 'l2.N_t_int': 1404254631413.2131, 'l2.N_ions': 7.947871787006151e+21, 'R_series': 9.947520948511093e-05, 'l2.eps_r': 35.12227723573914}
[INFO 08-14 09:29:23] optimpv.axBOtorchOptimizer: Trial 61 completed with results: {'JV_JV_nrmse_linear': np.float64(0.011921142261843494), 'Imp_Cf_nrmse_linear': np.float64(0.1512434797107132), 'Imp_Gf_nrmse_linear': np.float64(0.0012668698325616788)} and parameters: {'l2.mu_n': -3.0731231724392227, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 4.553956432480986e+19, 'l1.N_t_int': 583170219261.1349, 'l2.N_t_int': 575778770154.3047, 'l2.N_ions': 7.841131303412125e+21, 'R_series': 0.00010543610415156268, 'l2.eps_r': 33.05476345447062}
[INFO 08-14 09:29:30] optimpv.axBOtorchOptimizer: Trial 62 with parameters: {'l2.mu_n': -4.60298479418171, 'l2.mu_p': -3.496010465091638, 'l2.N_t_bulk': 3.288493206360712e+19, 'l1.N_t_int': 385361019981.6891, 'l2.N_t_int': 4182539504124.558, 'l2.N_ions': 9.317782013881169e+21, 'R_series': 0.00010524438495871044, 'l2.eps_r': 35.46522390446978}
[INFO 08-14 09:29:30] optimpv.axBOtorchOptimizer: Trial 63 with parameters: {'l2.mu_n': -4.187737526687032, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.5894126878890502e+19, 'l1.N_t_int': 432322686441.1171, 'l2.N_t_int': 10000000000000.0, 'l2.N_ions': 8.544919728537406e+21, 'R_series': 0.00010352528189367672, 'l2.eps_r': 32.62346816691636}
[INFO 08-14 09:31:15] optimpv.axBOtorchOptimizer: Trial 62 completed with results: {'JV_JV_nrmse_linear': np.float64(0.024997714353453594), 'Imp_Cf_nrmse_linear': np.float64(0.023178023266774376), 'Imp_Gf_nrmse_linear': np.float64(0.007909536992833727)} and parameters: {'l2.mu_n': -4.60298479418171, 'l2.mu_p': -3.496010465091638, 'l2.N_t_bulk': 3.288493206360712e+19, 'l1.N_t_int': 385361019981.6891, 'l2.N_t_int': 4182539504124.558, 'l2.N_ions': 9.317782013881169e+21, 'R_series': 0.00010524438495871044, 'l2.eps_r': 35.46522390446978}
[INFO 08-14 09:31:15] optimpv.axBOtorchOptimizer: Trial 63 completed with results: {'JV_JV_nrmse_linear': np.float64(0.010836668360479574), 'Imp_Cf_nrmse_linear': np.float64(0.13664449988852706), 'Imp_Gf_nrmse_linear': np.float64(0.0045129618743049715)} and parameters: {'l2.mu_n': -4.187737526687032, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 1.5894126878890502e+19, 'l1.N_t_int': 432322686441.1171, 'l2.N_t_int': 10000000000000.0, 'l2.N_ions': 8.544919728537406e+21, 'R_series': 0.00010352528189367672, 'l2.eps_r': 32.62346816691636}
[INFO 08-14 09:31:23] optimpv.axBOtorchOptimizer: Trial 64 with parameters: {'l2.mu_n': -3.422801070340756, 'l2.mu_p': -3.6717400193701275, 'l2.N_t_bulk': 3.780065720834917e+19, 'l1.N_t_int': 497329239643.5202, 'l2.N_t_int': 216723076192.5623, 'l2.N_ions': 6.57320290024263e+21, 'R_series': 9.37319868730188e-05, 'l2.eps_r': 38.42897038666886}
[INFO 08-14 09:31:23] optimpv.axBOtorchOptimizer: Trial 65 with parameters: {'l2.mu_n': -4.306408723387628, 'l2.mu_p': -3.3701723816714413, 'l2.N_t_bulk': 3.259203949985035e+19, 'l1.N_t_int': 510809062506.90424, 'l2.N_t_int': 2715496232183.2466, 'l2.N_ions': 7.055482312238923e+21, 'R_series': 9.620613548895121e-05, 'l2.eps_r': 35.70546518109775}
[INFO 08-14 09:33:07] optimpv.axBOtorchOptimizer: Trial 64 completed with results: {'JV_JV_nrmse_linear': np.float64(0.003445346916981891), 'Imp_Cf_nrmse_linear': np.float64(0.10424929049820074), 'Imp_Gf_nrmse_linear': np.float64(0.0052584445186970585)} and parameters: {'l2.mu_n': -3.422801070340756, 'l2.mu_p': -3.6717400193701275, 'l2.N_t_bulk': 3.780065720834917e+19, 'l1.N_t_int': 497329239643.5202, 'l2.N_t_int': 216723076192.5623, 'l2.N_ions': 6.57320290024263e+21, 'R_series': 9.37319868730188e-05, 'l2.eps_r': 38.42897038666886}
[INFO 08-14 09:33:07] optimpv.axBOtorchOptimizer: Trial 65 completed with results: {'JV_JV_nrmse_linear': np.float64(0.005908172118811005), 'Imp_Cf_nrmse_linear': np.float64(0.12076719659709265), 'Imp_Gf_nrmse_linear': np.float64(0.0016997402467738194)} and parameters: {'l2.mu_n': -4.306408723387628, 'l2.mu_p': -3.3701723816714413, 'l2.N_t_bulk': 3.259203949985035e+19, 'l1.N_t_int': 510809062506.90424, 'l2.N_t_int': 2715496232183.2466, 'l2.N_ions': 7.055482312238923e+21, 'R_series': 9.620613548895121e-05, 'l2.eps_r': 35.70546518109775}
[INFO 08-14 09:33:16] optimpv.axBOtorchOptimizer: Trial 66 with parameters: {'l2.mu_n': -3.4408430188039785, 'l2.mu_p': -3.468119094339393, 'l2.N_t_bulk': 2.347324066142402e+19, 'l1.N_t_int': 476988901357.5691, 'l2.N_t_int': 110933168967.0611, 'l2.N_ions': 8.068188259140556e+21, 'R_series': 0.00010195085613647542, 'l2.eps_r': 36.680561028025}
[INFO 08-14 09:33:16] optimpv.axBOtorchOptimizer: Trial 67 with parameters: {'l2.mu_n': -4.674896210220575, 'l2.mu_p': -3.252336736516772, 'l2.N_t_bulk': 1.1165391243998126e+19, 'l1.N_t_int': 491493994126.33624, 'l2.N_t_int': 8682172877447.263, 'l2.N_ions': 6.329283451451099e+21, 'R_series': 0.00010033389197494114, 'l2.eps_r': 37.86609297180981}
[INFO 08-14 09:34:56] optimpv.axBOtorchOptimizer: Trial 66 completed with results: {'JV_JV_nrmse_linear': np.float64(0.009263364627290605), 'Imp_Cf_nrmse_linear': np.float64(0.05805158366898985), 'Imp_Gf_nrmse_linear': np.float64(0.008815743204764736)} and parameters: {'l2.mu_n': -3.4408430188039785, 'l2.mu_p': -3.468119094339393, 'l2.N_t_bulk': 2.347324066142402e+19, 'l1.N_t_int': 476988901357.5691, 'l2.N_t_int': 110933168967.0611, 'l2.N_ions': 8.068188259140556e+21, 'R_series': 0.00010195085613647542, 'l2.eps_r': 36.680561028025}
[INFO 08-14 09:34:56] optimpv.axBOtorchOptimizer: Trial 67 completed with results: {'JV_JV_nrmse_linear': np.float64(0.014985811392458824), 'Imp_Cf_nrmse_linear': np.float64(0.11929451400069381), 'Imp_Gf_nrmse_linear': np.float64(0.0114285523451361)} and parameters: {'l2.mu_n': -4.674896210220575, 'l2.mu_p': -3.252336736516772, 'l2.N_t_bulk': 1.1165391243998126e+19, 'l1.N_t_int': 491493994126.33624, 'l2.N_t_int': 8682172877447.263, 'l2.N_ions': 6.329283451451099e+21, 'R_series': 0.00010033389197494114, 'l2.eps_r': 37.86609297180981}
[INFO 08-14 09:35:05] optimpv.axBOtorchOptimizer: Trial 68 with parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.6672407403640515, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 560982145276.8857, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 8.151981306259828e+21, 'R_series': 9.437083148579151e-05, 'l2.eps_r': 35.466591303641714}
[INFO 08-14 09:35:05] optimpv.axBOtorchOptimizer: Trial 69 with parameters: {'l2.mu_n': -3.594406588049826, 'l2.mu_p': -3.737579957893882, 'l2.N_t_bulk': 2.312169960697585e+19, 'l1.N_t_int': 486137590129.27313, 'l2.N_t_int': 787379128949.3433, 'l2.N_ions': 9.18391266946847e+21, 'R_series': 9.749568903020195e-05, 'l2.eps_r': 36.0455295257435}
[INFO 08-14 09:36:45] optimpv.axBOtorchOptimizer: Trial 68 completed with results: {'JV_JV_nrmse_linear': np.float64(0.00787201313964594), 'Imp_Cf_nrmse_linear': np.float64(0.07559364836413884), 'Imp_Gf_nrmse_linear': np.float64(0.004780873044604099)} and parameters: {'l2.mu_n': -3.0, 'l2.mu_p': -3.6672407403640515, 'l2.N_t_bulk': 1e+19, 'l1.N_t_int': 560982145276.8857, 'l2.N_t_int': 100000000000.0, 'l2.N_ions': 8.151981306259828e+21, 'R_series': 9.437083148579151e-05, 'l2.eps_r': 35.466591303641714}
[INFO 08-14 09:36:45] optimpv.axBOtorchOptimizer: Trial 69 completed with results: {'JV_JV_nrmse_linear': np.float64(0.0066145088147529455), 'Imp_Cf_nrmse_linear': np.float64(0.025252407461182853), 'Imp_Gf_nrmse_linear': np.float64(0.0009560326472929299)} and parameters: {'l2.mu_n': -3.594406588049826, 'l2.mu_p': -3.737579957893882, 'l2.N_t_bulk': 2.312169960697585e+19, 'l1.N_t_int': 486137590129.27313, 'l2.N_t_int': 787379128949.3433, 'l2.N_ions': 9.18391266946847e+21, 'R_series': 9.749568903020195e-05, 'l2.eps_r': 36.0455295257435}
[8]:
# get the best parameters and update the params list in the optimizer and the agent
ax_client = optimizer.ax_client # get the ax client
optimizer.update_params_with_best_balance() # update the params list in the optimizer with the best parameters
jv.params = optimizer.params # update the params list in the agent with the best parameters
imp.params = optimizer.params # update the params list in the agent with the best parameters
# print the best parameters
print('Best parameters:')
for p,po in zip(optimizer.params, params_orig):
if p.axis_type == 'log':
print(p.name, 'fitted value:', '{:.2e}'.format(p.value), 'original value:', '{:.2e}'.format(po.value))
else:
print(p.name, 'fitted value:', p.value, 'original value:', po.value)
print('\nSimSS command line:')
print(jv.get_SIMsalabim_clean_cmd(jv.params)) # print the simss command line with the best parameters
Best parameters:
l2.mu_n fitted value: 2.54e-04 original value: 6.00e-04
l2.mu_p fitted value: 1.83e-04 original value: 4.00e-04
l2.N_t_bulk fitted value: 2.31e+19 original value: 1.00e+20
l1.N_t_int fitted value: 4.86e+11 original value: 5.00e+11
l2.N_t_int fitted value: 7.87e+11 original value: 4.00e+12
l2.N_ions fitted value: 9.18e+21 original value: 1.00e+22
R_series fitted value: 9.75e-05 original value: 1.00e-04
l2.eps_r fitted value: 36.0455295257435 original value: 35
SimSS command line:
./simss -l2.mu_n 0.00025444470167495386 -l2.mu_p 0.00018298691783479116 -l2.N_t_bulk 2.312169960697585e+19 -l1.N_t_int 486137590129.27313 -l2.N_t_int 787379128949.3433 -l2.N_anion 9.18391266946847e+21 -l2.N_cation 9.18391266946847e+21 -R_series 9.749568903020195e-05 -l2.eps_r 36.0455295257435
[10]:
# Plot optimization results
data = ax_client.summarize()
all_metrics = optimizer.all_metrics
plt.figure()
for i, metric in enumerate(all_metrics):
plt.plot(np.minimum.accumulate(data[metric]), label=metric)
plt.yscale("log")
plt.xlabel("Iteration")
plt.ylabel("Target")
plt.legend()
plt.title("Best value seen so far")
plt.show()

[12]:
import matplotlib
# import itertools
from itertools import combinations
comb = list(combinations(optimizer.all_metrics, 2))
threshold_list = []
for i in range(len(optimizer.agents)):
for j in range(len(optimizer.agents[i].threshold)):
threshold_list.append(optimizer.agents[i].threshold[j])
threshold_comb = list(combinations(threshold_list, 2))
pareto = ax_client.get_pareto_frontier(use_model_predictions=False)
print('Pareto frontier:', pareto)
cm = matplotlib.colormaps.get_cmap('viridis')
df = get_df_from_ax(params, optimizer)
# create pareto df
dum_dic = {}
for eto in pareto:
print(eto[1])
for metr in optimizer.all_metrics:
if metr not in dum_dic.keys():
dum_dic[metr] = []
dum_dic[metr].append(eto[1][metr][0])
df_pareto = pd.DataFrame(dum_dic)
for c,t_c in zip(comb,threshold_comb):
plt.figure(figsize=(10, 10))
plt.scatter(df[c[0]],df[c[1]],c=df.index, cmap=cm, marker='o', s=100) # plot the points with color according to the iteration
cbar = plt.colorbar()
cbar.set_label('Iteration')
sorted_df = df_pareto.sort_values(by=c[0])
plt.plot(sorted_df[c[0]],sorted_df[c[1]],'r')
plt.scatter(t_c[0],t_c[1],c='r', marker='x', s=100) # plot the threshold
plt.xlabel(c[0])
plt.ylabel(c[1])
plt.xscale('log')
plt.yscale('log')
plt.show()
Pareto frontier: [({'l2.mu_n': -3.594406588049826, 'l2.mu_p': -3.737579957893882, 'l2.N_t_bulk': 2.312169960697585e+19, 'l1.N_t_int': 486137590129.27313, 'l2.N_t_int': 787379128949.3433, 'l2.N_ions': 9.18391266946847e+21, 'R_series': 9.749568903020195e-05, 'l2.eps_r': 36.0455295257435}, {'Imp_Cf_nrmse_linear': (np.float64(0.025252407461182853), nan), 'Imp_Gf_nrmse_linear': (np.float64(0.0009560326472929299), nan), 'JV_JV_nrmse_linear': (np.float64(0.0066145088147529455), nan)}, 69, '69_0'), ({'l2.mu_n': -3.422801070340756, 'l2.mu_p': -3.6717400193701275, 'l2.N_t_bulk': 3.780065720834917e+19, 'l1.N_t_int': 497329239643.5202, 'l2.N_t_int': 216723076192.5623, 'l2.N_ions': 6.57320290024263e+21, 'R_series': 9.37319868730188e-05, 'l2.eps_r': 38.42897038666886}, {'Imp_Cf_nrmse_linear': (np.float64(0.10424929049820074), nan), 'Imp_Gf_nrmse_linear': (np.float64(0.0052584445186970585), nan), 'JV_JV_nrmse_linear': (np.float64(0.003445346916981891), nan)}, 64, '64_0'), ({'l2.mu_n': -4.60298479418171, 'l2.mu_p': -3.496010465091638, 'l2.N_t_bulk': 3.288493206360712e+19, 'l1.N_t_int': 385361019981.6891, 'l2.N_t_int': 4182539504124.558, 'l2.N_ions': 9.317782013881169e+21, 'R_series': 0.00010524438495871044, 'l2.eps_r': 35.46522390446978}, {'Imp_Cf_nrmse_linear': (np.float64(0.023178023266774376), nan), 'Imp_Gf_nrmse_linear': (np.float64(0.007909536992833727), nan), 'JV_JV_nrmse_linear': (np.float64(0.024997714353453594), nan)}, 62, '62_0'), ({'l2.mu_n': -3.7055117175603454, 'l2.mu_p': -3.0, 'l2.N_t_bulk': 2.0116832032280388e+19, 'l1.N_t_int': 501962823531.2339, 'l2.N_t_int': 7788490571242.31, 'l2.N_ions': 9.526012916218401e+21, 'R_series': 0.00011621962970966026, 'l2.eps_r': 33.347374148005095}, {'Imp_Cf_nrmse_linear': (np.float64(0.07595874646460286), nan), 'Imp_Gf_nrmse_linear': (np.float64(0.011536062041174753), nan), 'JV_JV_nrmse_linear': (np.float64(0.0038294031260322514), nan)}, 54, '54_0'), ({'l2.mu_n': -4.306408723387628, 'l2.mu_p': -3.3701723816714413, 'l2.N_t_bulk': 3.259203949985035e+19, 'l1.N_t_int': 510809062506.90424, 'l2.N_t_int': 2715496232183.2466, 'l2.N_ions': 7.055482312238923e+21, 'R_series': 9.620613548895121e-05, 'l2.eps_r': 35.70546518109775}, {'Imp_Cf_nrmse_linear': (np.float64(0.12076719659709265), nan), 'Imp_Gf_nrmse_linear': (np.float64(0.0016997402467738194), nan), 'JV_JV_nrmse_linear': (np.float64(0.005908172118811005), nan)}, 65, '65_0')]
{'Imp_Cf_nrmse_linear': (np.float64(0.025252407461182853), nan), 'Imp_Gf_nrmse_linear': (np.float64(0.0009560326472929299), nan), 'JV_JV_nrmse_linear': (np.float64(0.0066145088147529455), nan)}
{'Imp_Cf_nrmse_linear': (np.float64(0.10424929049820074), nan), 'Imp_Gf_nrmse_linear': (np.float64(0.0052584445186970585), nan), 'JV_JV_nrmse_linear': (np.float64(0.003445346916981891), nan)}
{'Imp_Cf_nrmse_linear': (np.float64(0.023178023266774376), nan), 'Imp_Gf_nrmse_linear': (np.float64(0.007909536992833727), nan), 'JV_JV_nrmse_linear': (np.float64(0.024997714353453594), nan)}
{'Imp_Cf_nrmse_linear': (np.float64(0.07595874646460286), nan), 'Imp_Gf_nrmse_linear': (np.float64(0.011536062041174753), nan), 'JV_JV_nrmse_linear': (np.float64(0.0038294031260322514), nan)}
{'Imp_Cf_nrmse_linear': (np.float64(0.12076719659709265), nan), 'Imp_Gf_nrmse_linear': (np.float64(0.0016997402467738194), nan), 'JV_JV_nrmse_linear': (np.float64(0.005908172118811005), nan)}



[15]:
# Plot the density of the exploration of the parameters
# this gives a nice visualization of where the optimizer focused its exploration and may show some correlation between the parameters
plot_dens = True
if plot_dens:
from optimpv.posterior.posterior import *
params_orig_dict, best_parameters = {}, {}
for p in params_orig:
params_orig_dict[p.name] = p.value
for p in optimizer.params:
best_parameters[p.name] = p.value
fig_dens, ax_dens = plot_density_exploration(params, optimizer = optimizer, best_parameters = best_parameters, params_orig = params_orig_dict, optimizer_type = 'ax')

[13]:
# rerun the simulation with the best parameters
yfit = jv.run(parameters={}) # run the simulation with the best parameters
viridis = plt.get_cmap('viridis', len(Gfracs))
plt.figure(figsize=(10,10))
linewidth = 2
for idx, Gfrac in enumerate(Gfracs[::-1]):
plt.plot(X[X[:,1]==Gfrac,0],y[X[:,1]==Gfrac],label='Gfrac = '+str(Gfrac),color=viridis(idx),alpha=0.5,linewidth=linewidth)
plt.plot(X[X[:,1]==Gfrac,0],yfit[X[:,1]==Gfrac],label='Gfrac = '+str(Gfrac)+' fit',linestyle='--',color=viridis(idx),linewidth=linewidth)
plt.xlabel('Voltage [V]')
plt.ylabel('Current density [A m$^{-2}$]')
plt.legend()
plt.show()

[14]:
# rerun the impedance simulation with the best parameters
# Cf
yfit = imp.run({},X_imp,exp_format='Cf')
# Gf
yfit2 = imp.run({},X_imp,exp_format='Gf')
# Plot the impedance data
plt.figure(figsize=(10,10))
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
ax1.plot(freqs,yimp_noisy, 'g-',alpha=0.5,label= 'C data')
ax2.plot(freqs,yimp2_noisy, 'b-',alpha=0.5,label= 'G data')
ax1.plot(freqs,yfit, 'g--',label= 'C fit')
ax2.plot(freqs,yfit2, 'b--',label= 'G fit')
ax1.set_xlabel('Frequency [Hz]')
ax1.set_ylabel('C [F m$^{-2}$]', color='g')
ax2.set_ylabel('G [S m$^{-2}$]', color='b')
ax1.set_xscale('log')
ax2.set_xscale('log')
# ax1.set_yscale('log')
# ax2.set_yscale('log')
plt.title('Impedance data')
plt.show()
<Figure size 1000x1000 with 0 Axes>

[16]:
# Clean up the output files (comment out if you want to keep the output files)
sim.clean_all_output(session_path)
sim.delete_folders('tmp',session_path)
# uncomment the following lines to delete specific files
sim.clean_up_output('PTAA',session_path)
sim.clean_up_output('fakePerovskite',session_path)
sim.clean_up_output('C60',session_path)
sim.clean_up_output('simulation_setup_fakePerovskite',session_path)
for file in optical_files:
sim.clean_up_output(file,session_path)
# same for zimt
sim.clean_all_output(session_path_zimt)
sim.delete_folders('tmp',session_path_zimt)
# uncomment the following lines to delete specific files
sim.clean_up_output('PTAA',session_path_zimt)
sim.clean_up_output('fakePerovskite',session_path_zimt)
sim.clean_up_output('C60',session_path_zimt)
sim.clean_up_output('simulation_setup_zimt_fakePerovskite',session_path_zimt)
sim.clean_up_output('freqZ',session_path_zimt)
# same for the input files
for file in optical_files:
sim.clean_up_output(file,session_path_zimt)