Multi-objective BO: OPV light-intensity dependant JV fits with SIMsalabim (real data)
This notebook is a demonstration of how to fit light-intensity dependent JV curves 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
from scipy import constants
import torch, copy, uuid
import pySIMsalabim as sim
from pySIMsalabim.experiments.JV_steady_state 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.optimizers.axBOtorch.axUtils import *
except Exception as e:
sys.path.append('../') # add the path to the optimpv module
from optimpv import *
from optimpv.optimizers.axBOtorch.axUtils import *
[INFO 01-20 10:54:26] ax.utils.notebook.plotting: Injecting Plotly library into cell. Do not overwrite or delete cell.
[INFO 01-20 10:54: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.
Get the experimental data
[2]:
# 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','JVrealOPV')))
simulation_setup_filename = 'simulation_setup_PM6_L8BO.txt'
simulation_setup = os.path.join(session_path, simulation_setup_filename)
# path to the layer files defined in the simulation_setup file
l1 = 'ZnO.txt'
l2 = 'PM6_L8BO.txt'
l3 = 'BM_HTL.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)
# Show the device structure
fig = sim.plot_band_diagram(simulation_setup, session_path)
dev_par, layers = sim.load_device_parameters(session_path, simulation_setup, run_mode = False)
SIMsalabim_params = {}
for layer in layers:
SIMsalabim_params[layer[1]] = sim.ReadParameterFile(os.path.join(session_path,layer[2]))
L_active_Layer = float(SIMsalabim_params['l2']['L'])
# Load the JV data
# 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)
# import JV data
df = pd.read_csv(os.path.join(input_path, 'JV_PM6_L8BO.dat'), sep=' ')
# X = vext,gfrac columns
X = df[['Vext','Gfrac']].values
y = df[['Jext']].values.reshape(-1)
# same order of the Gfrac as they appear in the data
Gfracs = pd.unique(df['Gfrac'])
# Gfracs = np.unique(df[['Gfrac']].values)
print(f'Gfracs = {Gfracs}')
X_1sun = df[['Vext','Gfrac']].values[df['Gfrac'] == 1.0]
y_1sun = df[['Jext']].values[df['Gfrac'] == 1.0].reshape(-1)
# get 1sun Jsc as it will help narrow down the range for Gehp
Jsc_1sun = np.interp(0.0, X_1sun[:,0], y_1sun)
minJ = np.min(y_1sun)
q = constants.value(u'elementary charge')
G_ehp_calc = abs(Jsc_1sun/(q*L_active_Layer))
G_ehp_max = abs(minJ/(q*L_active_Layer))
# get Voc
Voc_1sun = np.interp(0.0, y_1sun, X_1sun[:,0])
print(f'Voc_1sun = {Voc_1sun} V')
# Filter some data
Vmin = -0.1
Jmax = abs(Jsc_1sun)
idx = np.where((X[:,0] > Vmin) & (y < Jmax))
y = y[idx]
X = X[idx]
# get the data for each Gfrac with will be used in the different agents later
X1 = X[X[:,1] == Gfracs[0]]
y1 = y[X[:,1] == Gfracs[0]]
X2 = X[X[:,1] == Gfracs[1]]
y2 = y[X[:,1] == Gfracs[1]]
X3 = X[X[:,1] == Gfracs[2]]
y3 = y[X[:,1] == Gfracs[2]]
# plot the data for each Gfrac
plt.figure(figsize=(10,10))
viridis = plt.get_cmap('viridis', len(Gfracs))
for i, Gfrac in enumerate(Gfracs):
plt.plot(X[X[:,1] == Gfrac][:,0], y[X[:,1] == Gfrac], '-', label = f'Gfrac = {Gfrac}', color = viridis(i))
plt.grid()
plt.xlabel('Voltage [V]')
plt.ylabel('Current density [A m$^{-2}$]')
plt.legend()
plt.show()
Gfracs = [1. 0.1 0.5]
Voc_1sun = 0.8613743287822753 V
Define the parameters for the simulation
[3]:
params = [] # list of parameters to be optimized
mun = FitParam(name = 'l2.mu_n', value = 7e-8, bounds = [1e-9,1e-6], log_scale = True, value_type = 'float', fscale = None, rescale = False, display_name=r'$\mu_n$', unit='m$^2$ V$^{-1}$s$^{-1}$', axis_type = 'log', force_log = True)
params.append(mun)
mup = FitParam(name = 'l2.mu_p', value = 5e-8, bounds = [1e-9,1e-6], log_scale = True, value_type = 'float', fscale = None, rescale = False, display_name=r'$\mu_p$', unit=r'm$^2$ V$^{-1}$s$^{-1}$', axis_type = 'log', force_log = True)
params.append(mup)
bulk_tr = FitParam(name = 'l2.N_t_bulk', value = 1e20, bounds = [1e16,8e22], log_scale = True, value_type = 'float', fscale = None, rescale = False, display_name=r'$N_{T}$', unit=r'm$^{-3}$', axis_type = 'log', force_log = True)
params.append(bulk_tr)
preLangevin = FitParam(name = 'l2.preLangevin', value = 1e-2, bounds = [1e-3,1], log_scale = True, value_type = 'float', fscale = None, rescale = False, display_name=r'$\gamma_{pre}$', unit=r'', axis_type = 'log', force_log = True)
params.append(preLangevin)
R_series = FitParam(name = 'R_series', value = 1e-4, bounds = [1e-6,1e-2], log_scale = True, value_type = 'float', fscale = None, rescale = False, display_name=r'$R_{series}$', unit=r'$\Omega$ m$^2$', axis_type = 'log', force_log = False)
params.append(R_series)
R_shunt = FitParam(name = 'R_shunt', value = 1e1, bounds = [1e-2,1e2], log_scale = True, value_type = 'float', fscale = None, rescale = False, display_name=r'$R_{shunt}$', unit=r'$\Omega$ m$^2$', axis_type = 'log', force_log = False)
params.append(R_shunt)
G_ehp = FitParam(name = 'l2.G_ehp', value = G_ehp_calc, bounds = [G_ehp_calc*0.95,G_ehp_max*1.05], log_scale = False, value_type = 'float', fscale = None, rescale = False, display_name=r'$G_{ehp}$', unit=r'm$^{-3}$ s$^{-1}$', axis_type = 'linear', force_log = False)
params.append(G_ehp)
# save the original parameters for later
params_orig = copy.deepcopy(params)
num_free_params = len([p for p in params if p.type != 'fixed'])
Run the optimization
[4]:
# Define the Agent and the target metric/loss function
from optimpv.models.DDfits.JVAgent import JVAgent
metric = 'nrmse' # can be 'nrmse', 'mse', 'mae'
loss = 'linear' # can be 'linear', 'huber', 'soft_l1'
threshold = 0.05 # need this to get a reference point for the hypervolume calculation
jv_main = JVAgent(params, X, y, session_path, simulation_setup, parallel = True, max_jobs = 3, metric = metric, loss = loss) # agent with ALL the light intensities, not necessary for the MOO but useful later
# The agents below need to add a different name for each agent otherwise they will overwrite each other in the jv.run_Ax output dictionary
jv1 = JVAgent(params, X1, y1, session_path, simulation_setup, parallel = True, max_jobs = 1, metric = metric, loss = loss, threshold=threshold,name='Gfrac1') # agent with Gfrac 1
jv2 = JVAgent(params, X2, y2, session_path, simulation_setup, parallel = True, max_jobs = 1, metric = metric, loss = loss, threshold=threshold,name='Gfrac2') # agent with Gfrac 2
jv3 = JVAgent(params, X3, y3, session_path, simulation_setup, parallel = True, max_jobs = 1, metric = metric, loss = loss, threshold=threshold,name='Gfrac3') # agent with Gfrac 3
[5]:
from optimpv.optimizers.axBOtorch.axBOtorchOptimizer import axBOtorchOptimizer
from optimpv.optimizers.axBOtorch.axUtils import get_VMLC_default_model_kwargs_list
optimizer = axBOtorchOptimizer(params = params, agents = [jv1,jv2,jv3], models = ['CENTER','SOBOL','BOTORCH_MODULAR'],n_batches = [1,1,60], batch_size = [1,10,2], max_parallelism = 100, model_kwargs_list = get_VMLC_default_model_kwargs_list(num_free_params,use_CENTER=True,is_MOO=True))
[6]:
optimizer.optimize() # run the optimization with ax
[INFO 01-20 10:54:27] optimpv.axBOtorchOptimizer: Trial 0 with parameters: {'l2.mu_n': -7.5, 'l2.mu_p': -7.5, 'l2.N_t_bulk': 19.451544993495972, 'l2.preLangevin': -1.5, 'R_series': 0.0001, 'R_shunt': 1.0, 'l2.G_ehp': 1.4669272681272731e+28}
[INFO 01-20 10:54:28] optimpv.axBOtorchOptimizer: Trial 0 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.13334896922864783), 'Gfrac2_JV_nrmse_linear': np.float64(0.08254634225523515), 'Gfrac3_JV_nrmse_linear': np.float64(0.11049013404965334)}
[INFO 01-20 10:54:28] optimpv.axBOtorchOptimizer: Trial 1 with parameters: {'l2.mu_n': -7.100285153836012, 'l2.mu_p': -8.561031312681735, 'l2.N_t_bulk': 16.146061026446894, 'l2.preLangevin': -2.9701101751998067, 'R_series': 0.0004786131197769525, 'R_shunt': 0.10838000360254822, 'l2.G_ehp': 1.5045244836223446e+28}
[INFO 01-20 10:54:28] optimpv.axBOtorchOptimizer: Trial 2 with parameters: {'l2.mu_n': -8.040233619511127, 'l2.mu_p': -7.482117449864745, 'l2.N_t_bulk': 22.81782760341674, 'l2.preLangevin': -1.0863634971901774, 'R_series': 5.381513266681518e-06, 'R_shunt': 55.70869708759558, 'l2.G_ehp': 1.426647439694143e+28}
[INFO 01-20 10:54:28] optimpv.axBOtorchOptimizer: Trial 3 with parameters: {'l2.mu_n': -8.33185837045312, 'l2.mu_p': -8.117837581783533, 'l2.N_t_bulk': 19.34139691442795, 'l2.preLangevin': -2.1894855787977576, 'R_series': 6.2248012553434e-05, 'R_shunt': 3.918541924808449, 'l2.G_ehp': 1.5514679966303913e+28}
[INFO 01-20 10:54:28] optimpv.axBOtorchOptimizer: Trial 4 with parameters: {'l2.mu_n': -6.6211718916893005, 'l2.mu_p': -6.190936538390815, 'l2.N_t_bulk': 19.51457826799194, 'l2.preLangevin': -0.31745770666748285, 'R_series': 0.007382927807506435, 'R_shunt': 0.01355517285077923, 'l2.G_ehp': 1.3793168520273552e+28}
[INFO 01-20 10:54:28] optimpv.axBOtorchOptimizer: Trial 5 with parameters: {'l2.mu_n': -6.359411761164665, 'l2.mu_p': -7.512883706018329, 'l2.N_t_bulk': 21.34212163360987, 'l2.preLangevin': -0.49053884390741587, 'R_series': 0.002798524779924158, 'R_shunt': 0.559692496687379, 'l2.G_ehp': 1.5170094135327935e+28}
[INFO 01-20 10:54:28] optimpv.axBOtorchOptimizer: Trial 6 with parameters: {'l2.mu_n': -8.781324494630098, 'l2.mu_p': -6.444339447654784, 'l2.N_t_bulk': 17.71573701509295, 'l2.preLangevin': -1.5949886357411742, 'R_series': 2.5345481656519758e-05, 'R_shunt': 10.891752013579625, 'l2.G_ehp': 1.413781359027035e+28}
[INFO 01-20 10:54:28] optimpv.axBOtorchOptimizer: Trial 7 with parameters: {'l2.mu_n': -7.5668037459254265, 'l2.mu_p': -8.80275998543948, 'l2.N_t_bulk': 20.978078800295105, 'l2.preLangevin': -1.294875587336719, 'R_series': 1.231957045891553e-06, 'R_shunt': 1.33788336942905, 'l2.G_ehp': 1.4701523458936878e+28}
[INFO 01-20 10:54:28] optimpv.axBOtorchOptimizer: Trial 8 with parameters: {'l2.mu_n': -7.386421021074057, 'l2.mu_p': -6.888837810605764, 'l2.N_t_bulk': 17.756144838870476, 'l2.preLangevin': -2.4344815956428647, 'R_series': 0.00010203967638522432, 'R_shunt': 0.03866478440694554, 'l2.G_ehp': 1.4610137412720737e+28}
[INFO 01-20 10:54:28] optimpv.axBOtorchOptimizer: Trial 9 with parameters: {'l2.mu_n': -7.2014460219070315, 'l2.mu_p': -8.013328758068383, 'l2.N_t_bulk': 20.717133679316778, 'l2.preLangevin': -1.839454430155456, 'R_series': 6.753678157044034e-06, 'R_shunt': 0.030879749136039903, 'l2.G_ehp': 1.5302331628993838e+28}
[INFO 01-20 10:54:28] optimpv.axBOtorchOptimizer: Trial 10 with parameters: {'l2.mu_n': -7.751607111655176, 'l2.mu_p': -6.178624184802175, 'l2.N_t_bulk': 18.354717772737786, 'l2.preLangevin': -0.717386526055634, 'R_series': 0.0005690832887655715, 'R_shunt': 6.228754226959196, 'l2.G_ehp': 1.4063042073855045e+28}
[INFO 01-20 10:54:30] optimpv.axBOtorchOptimizer: Trial 1 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.14230886130337927), 'Gfrac2_JV_nrmse_linear': np.float64(0.1036738322668083), 'Gfrac3_JV_nrmse_linear': np.float64(0.09180529024152408)}
[INFO 01-20 10:54:30] optimpv.axBOtorchOptimizer: Trial 2 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.49213188172924166), 'Gfrac2_JV_nrmse_linear': np.float64(0.13515944324541185), 'Gfrac3_JV_nrmse_linear': np.float64(0.33378999246577534)}
[INFO 01-20 10:54:30] optimpv.axBOtorchOptimizer: Trial 3 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.0794080216353828), 'Gfrac2_JV_nrmse_linear': np.float64(0.106297602679333), 'Gfrac3_JV_nrmse_linear': np.float64(0.07271959998884632)}
[INFO 01-20 10:54:30] optimpv.axBOtorchOptimizer: Trial 4 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.4426486926713703), 'Gfrac2_JV_nrmse_linear': np.float64(0.17724837568209495), 'Gfrac3_JV_nrmse_linear': np.float64(0.2845919488443361)}
[INFO 01-20 10:54:30] optimpv.axBOtorchOptimizer: Trial 5 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.3608464352999506), 'Gfrac2_JV_nrmse_linear': np.float64(0.13587545025888978), 'Gfrac3_JV_nrmse_linear': np.float64(0.224999089391272)}
[INFO 01-20 10:54:30] optimpv.axBOtorchOptimizer: Trial 6 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.2118322752236863), 'Gfrac2_JV_nrmse_linear': np.float64(0.11873257230554612), 'Gfrac3_JV_nrmse_linear': np.float64(0.15932925118124977)}
[INFO 01-20 10:54:30] optimpv.axBOtorchOptimizer: Trial 7 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.30437996045578847), 'Gfrac2_JV_nrmse_linear': np.float64(0.12481131944335289), 'Gfrac3_JV_nrmse_linear': np.float64(0.19868171264124976)}
[INFO 01-20 10:54:30] optimpv.axBOtorchOptimizer: Trial 8 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.0930769322628997), 'Gfrac2_JV_nrmse_linear': np.float64(0.09921771276782673), 'Gfrac3_JV_nrmse_linear': np.float64(0.0944865588134466)}
[INFO 01-20 10:54:30] optimpv.axBOtorchOptimizer: Trial 9 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.1641360327293681), 'Gfrac2_JV_nrmse_linear': np.float64(0.12040269404979162), 'Gfrac3_JV_nrmse_linear': np.float64(0.1458038758913339)}
[INFO 01-20 10:54:30] optimpv.axBOtorchOptimizer: Trial 10 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.28809894365686445), 'Gfrac2_JV_nrmse_linear': np.float64(0.16319102894007761), 'Gfrac3_JV_nrmse_linear': np.float64(0.22581098967422636)}
[INFO 01-20 10:54:33] optimpv.axBOtorchOptimizer: Trial 11 with parameters: {'l2.mu_n': -7.688948714877004, 'l2.mu_p': -7.635985205544669, 'l2.N_t_bulk': 18.580114209010652, 'l2.preLangevin': -1.9417740949990465, 'R_series': 0.0008142954244918885, 'R_shunt': 6.924899854329152, 'l2.G_ehp': 1.5045400262997153e+28}
[INFO 01-20 10:54:33] optimpv.axBOtorchOptimizer: Trial 12 with parameters: {'l2.mu_n': -6.616160618376392, 'l2.mu_p': -6.211137684764649, 'l2.N_t_bulk': 18.0011443048631, 'l2.preLangevin': -1.762879019335455, 'R_series': 1.3576670296598578e-05, 'R_shunt': 0.04440478536949127, 'l2.G_ehp': 1.5234742159463244e+28}
[INFO 01-20 10:54:35] optimpv.axBOtorchOptimizer: Trial 11 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.1507206180423718), 'Gfrac2_JV_nrmse_linear': np.float64(0.10599222281185673), 'Gfrac3_JV_nrmse_linear': np.float64(0.1010919686306678)}
[INFO 01-20 10:54:35] optimpv.axBOtorchOptimizer: Trial 12 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.18949852086862157), 'Gfrac2_JV_nrmse_linear': np.float64(0.20648851911649982), 'Gfrac3_JV_nrmse_linear': np.float64(0.1985968761127967)}
[INFO 01-20 10:54:39] optimpv.axBOtorchOptimizer: Trial 13 with parameters: {'l2.mu_n': -8.249319435470301, 'l2.mu_p': -7.705784522323366, 'l2.N_t_bulk': 16.75776384350165, 'l2.preLangevin': -3.0, 'R_series': 2.162703324994677e-05, 'R_shunt': 0.01, 'l2.G_ehp': 1.4669385990894103e+28}
[INFO 01-20 10:54:39] optimpv.axBOtorchOptimizer: Trial 14 with parameters: {'l2.mu_n': -9.0, 'l2.mu_p': -7.6755957078117865, 'l2.N_t_bulk': 16.573078108073407, 'l2.preLangevin': -3.0, 'R_series': 2.4665975280657346e-05, 'R_shunt': 0.01, 'l2.G_ehp': 1.4203976207323275e+28}
[INFO 01-20 10:54:40] optimpv.axBOtorchOptimizer: Trial 13 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.10392281707317985), 'Gfrac2_JV_nrmse_linear': np.float64(0.1460980716431464), 'Gfrac3_JV_nrmse_linear': np.float64(0.11563147268462508)}
[INFO 01-20 10:54:40] optimpv.axBOtorchOptimizer: Trial 14 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.25787358446103853), 'Gfrac2_JV_nrmse_linear': np.float64(0.16490460231561102), 'Gfrac3_JV_nrmse_linear': np.float64(0.2019428105428174)}
[INFO 01-20 10:54:43] optimpv.axBOtorchOptimizer: Trial 15 with parameters: {'l2.mu_n': -7.603736840360081, 'l2.mu_p': -7.9619745027580775, 'l2.N_t_bulk': 18.598234475846052, 'l2.preLangevin': -2.2530398207926052, 'R_series': 7.650719408996822e-05, 'R_shunt': 0.22999882799012666, 'l2.G_ehp': 1.49415873383208e+28}
[INFO 01-20 10:54:43] optimpv.axBOtorchOptimizer: Trial 16 with parameters: {'l2.mu_n': -7.455374232384377, 'l2.mu_p': -8.10113667967881, 'l2.N_t_bulk': 18.882420109467883, 'l2.preLangevin': -2.6279898881695445, 'R_series': 9.750461131641484e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4775274671756124e+28}
[INFO 01-20 10:54:44] optimpv.axBOtorchOptimizer: Trial 15 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.06541313773389465), 'Gfrac2_JV_nrmse_linear': np.float64(0.024435025417364732), 'Gfrac3_JV_nrmse_linear': np.float64(0.045650039668787404)}
[INFO 01-20 10:54:44] optimpv.axBOtorchOptimizer: Trial 16 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.04397358065252786), 'Gfrac2_JV_nrmse_linear': np.float64(0.029425160705163187), 'Gfrac3_JV_nrmse_linear': np.float64(0.02592467980886632)}
[INFO 01-20 10:54:47] optimpv.axBOtorchOptimizer: Trial 17 with parameters: {'l2.mu_n': -7.525784642869829, 'l2.mu_p': -8.454123617022764, 'l2.N_t_bulk': 18.63849542478331, 'l2.preLangevin': -2.64437366834788, 'R_series': 6.263979931216957e-05, 'R_shunt': 8.22237173755401, 'l2.G_ehp': 1.5103679352548243e+28}
[INFO 01-20 10:54:47] optimpv.axBOtorchOptimizer: Trial 18 with parameters: {'l2.mu_n': -7.573705321945182, 'l2.mu_p': -8.2213707498267, 'l2.N_t_bulk': 18.76808236697644, 'l2.preLangevin': -2.708634881000259, 'R_series': 6.216810788448652e-05, 'R_shunt': 0.0145827267282573, 'l2.G_ehp': 1.414401653736467e+28}
[INFO 01-20 10:54:48] optimpv.axBOtorchOptimizer: Trial 17 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.07101882191248757), 'Gfrac2_JV_nrmse_linear': np.float64(0.04433923782269625), 'Gfrac3_JV_nrmse_linear': np.float64(0.035724547812043046)}
[INFO 01-20 10:54:48] optimpv.axBOtorchOptimizer: Trial 18 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.1042756856358506), 'Gfrac2_JV_nrmse_linear': np.float64(0.10698126487364822), 'Gfrac3_JV_nrmse_linear': np.float64(0.09924439430748877)}
[INFO 01-20 10:54:50] optimpv.axBOtorchOptimizer: Trial 19 with parameters: {'l2.mu_n': -7.509939995459444, 'l2.mu_p': -8.105018662838857, 'l2.N_t_bulk': 18.80567536623589, 'l2.preLangevin': -2.544386079738013, 'R_series': 9.439925403069533e-05, 'R_shunt': 64.42306950568307, 'l2.G_ehp': 1.4864043774731605e+28}
[INFO 01-20 10:54:50] optimpv.axBOtorchOptimizer: Trial 20 with parameters: {'l2.mu_n': -7.665013878232993, 'l2.mu_p': -7.787010523559546, 'l2.N_t_bulk': 19.42289544403259, 'l2.preLangevin': -2.958234551934724, 'R_series': 0.00010719444978006797, 'R_shunt': 0.010641081610271655, 'l2.G_ehp': 1.4979230772416456e+28}
[INFO 01-20 10:54:51] optimpv.axBOtorchOptimizer: Trial 19 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.0483405237774924), 'Gfrac2_JV_nrmse_linear': np.float64(0.03037160695437518), 'Gfrac3_JV_nrmse_linear': np.float64(0.02896209913402288)}
[INFO 01-20 10:54:51] optimpv.axBOtorchOptimizer: Trial 20 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.08010616397578517), 'Gfrac2_JV_nrmse_linear': np.float64(0.14088248469613038), 'Gfrac3_JV_nrmse_linear': np.float64(0.10344419874477782)}
[INFO 01-20 10:54:56] optimpv.axBOtorchOptimizer: Trial 21 with parameters: {'l2.mu_n': -7.604607789739799, 'l2.mu_p': -8.064202358782383, 'l2.N_t_bulk': 17.517180195862665, 'l2.preLangevin': -2.2619002960712655, 'R_series': 7.225447818007941e-05, 'R_shunt': 30.909372517008894, 'l2.G_ehp': 1.5589412339101684e+28}
[INFO 01-20 10:54:56] optimpv.axBOtorchOptimizer: Trial 22 with parameters: {'l2.mu_n': -7.608023872925241, 'l2.mu_p': -7.9118018009275755, 'l2.N_t_bulk': 18.960517005739604, 'l2.preLangevin': -2.336773821892909, 'R_series': 8.219873589353455e-05, 'R_shunt': 20.190344596254647, 'l2.G_ehp': 1.5589412339101684e+28}
[INFO 01-20 10:54:56] optimpv.axBOtorchOptimizer: Trial 21 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.06407431431455274), 'Gfrac2_JV_nrmse_linear': np.float64(0.02774645887545009), 'Gfrac3_JV_nrmse_linear': np.float64(0.043803297303686185)}
[INFO 01-20 10:54:56] optimpv.axBOtorchOptimizer: Trial 22 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.05572605647245905), 'Gfrac2_JV_nrmse_linear': np.float64(0.023677948656219187), 'Gfrac3_JV_nrmse_linear': np.float64(0.03978687202909819)}
[INFO 01-20 10:55:01] optimpv.axBOtorchOptimizer: Trial 23 with parameters: {'l2.mu_n': -7.422327659041198, 'l2.mu_p': -8.405194399617889, 'l2.N_t_bulk': 21.760465318308306, 'l2.preLangevin': -2.3996187706168133, 'R_series': 0.000142905624633623, 'R_shunt': 19.8264562109814, 'l2.G_ehp': 1.40183615316844e+28}
[INFO 01-20 10:55:01] optimpv.axBOtorchOptimizer: Trial 24 with parameters: {'l2.mu_n': -7.573987254713024, 'l2.mu_p': -8.48804596851478, 'l2.N_t_bulk': 16.07270736155987, 'l2.preLangevin': -2.4714040847042154, 'R_series': 0.00015951218815330438, 'R_shunt': 26.48738369749061, 'l2.G_ehp': 1.460577879600941e+28}
[INFO 01-20 10:55:01] optimpv.axBOtorchOptimizer: Trial 23 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.37691551593756434), 'Gfrac2_JV_nrmse_linear': np.float64(0.13273040412771334), 'Gfrac3_JV_nrmse_linear': np.float64(0.25782795767933653)}
[INFO 01-20 10:55:01] optimpv.axBOtorchOptimizer: Trial 24 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.10695961330111123), 'Gfrac2_JV_nrmse_linear': np.float64(0.0680605756984241), 'Gfrac3_JV_nrmse_linear': np.float64(0.059948973272429935)}
[INFO 01-20 10:55:05] optimpv.axBOtorchOptimizer: Trial 25 with parameters: {'l2.mu_n': -7.5090440551304045, 'l2.mu_p': -7.890094168103724, 'l2.N_t_bulk': 18.344068974860946, 'l2.preLangevin': -2.4864702060918917, 'R_series': 6.426414768086133e-05, 'R_shunt': 48.3285609371487, 'l2.G_ehp': 1.511963228657509e+28}
[INFO 01-20 10:55:05] optimpv.axBOtorchOptimizer: Trial 26 with parameters: {'l2.mu_n': -7.386984898986615, 'l2.mu_p': -8.000521376014808, 'l2.N_t_bulk': 18.36381288160806, 'l2.preLangevin': -2.4171989454622786, 'R_series': 6.542182272388884e-05, 'R_shunt': 56.65191337479337, 'l2.G_ehp': 1.4105401336312708e+28}
[INFO 01-20 10:55:06] optimpv.axBOtorchOptimizer: Trial 25 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.041143229498360946), 'Gfrac2_JV_nrmse_linear': np.float64(0.015172106848146346), 'Gfrac3_JV_nrmse_linear': np.float64(0.03039444140861417)}
[INFO 01-20 10:55:06] optimpv.axBOtorchOptimizer: Trial 26 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.06592156391469452), 'Gfrac2_JV_nrmse_linear': np.float64(0.02399687011905028), 'Gfrac3_JV_nrmse_linear': np.float64(0.0456176164239723)}
[INFO 01-20 10:55:08] optimpv.axBOtorchOptimizer: Trial 27 with parameters: {'l2.mu_n': -7.557222464174383, 'l2.mu_p': -7.964263531132158, 'l2.N_t_bulk': 18.336216472786372, 'l2.preLangevin': -2.538952999642409, 'R_series': 8.736702711461873e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.5172581930539308e+28}
[INFO 01-20 10:55:08] optimpv.axBOtorchOptimizer: Trial 28 with parameters: {'l2.mu_n': -7.367588288963219, 'l2.mu_p': -7.989795690013221, 'l2.N_t_bulk': 18.314990140510556, 'l2.preLangevin': -2.5821480990172043, 'R_series': 0.00010103562190211891, 'R_shunt': 100.0, 'l2.G_ehp': 1.5427028166743973e+28}
[INFO 01-20 10:55:08] optimpv.axBOtorchOptimizer: Trial 27 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.03828472183824342), 'Gfrac2_JV_nrmse_linear': np.float64(0.025501570515114858), 'Gfrac3_JV_nrmse_linear': np.float64(0.026759206471793404)}
[INFO 01-20 10:55:08] optimpv.axBOtorchOptimizer: Trial 28 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.04702266561598321), 'Gfrac2_JV_nrmse_linear': np.float64(0.019040645355622915), 'Gfrac3_JV_nrmse_linear': np.float64(0.03266682049822087)}
[INFO 01-20 10:55:12] optimpv.axBOtorchOptimizer: Trial 29 with parameters: {'l2.mu_n': -7.413494954008, 'l2.mu_p': -8.156390898396975, 'l2.N_t_bulk': 18.511675914009118, 'l2.preLangevin': -2.157904086897127, 'R_series': 2.1909826822426534e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.5533956132177829e+28}
[INFO 01-20 10:55:12] optimpv.axBOtorchOptimizer: Trial 30 with parameters: {'l2.mu_n': -7.524616863353332, 'l2.mu_p': -7.88395712066007, 'l2.N_t_bulk': 18.522656563756122, 'l2.preLangevin': -2.540213155970049, 'R_series': 5.151056723619201e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.5198008685831136e+28}
[INFO 01-20 10:55:13] optimpv.axBOtorchOptimizer: Trial 29 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.08530658906535396), 'Gfrac2_JV_nrmse_linear': np.float64(0.038779279607047114), 'Gfrac3_JV_nrmse_linear': np.float64(0.06567649198121212)}
[INFO 01-20 10:55:13] optimpv.axBOtorchOptimizer: Trial 30 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.03594162440821724), 'Gfrac2_JV_nrmse_linear': np.float64(0.01368762441906761), 'Gfrac3_JV_nrmse_linear': np.float64(0.027511739024716382)}
[INFO 01-20 10:55:17] optimpv.axBOtorchOptimizer: Trial 31 with parameters: {'l2.mu_n': -7.593546872238302, 'l2.mu_p': -7.737679997788777, 'l2.N_t_bulk': 18.394337172929646, 'l2.preLangevin': -2.7273152781833714, 'R_series': 5.535471398954561e-05, 'R_shunt': 41.624776491679654, 'l2.G_ehp': 1.5589412339101684e+28}
[INFO 01-20 10:55:17] optimpv.axBOtorchOptimizer: Trial 32 with parameters: {'l2.mu_n': -7.605099905689553, 'l2.mu_p': -7.6132426687738235, 'l2.N_t_bulk': 18.333705301582263, 'l2.preLangevin': -3.0, 'R_series': 5.771935965018063e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.5589412339101684e+28}
[INFO 01-20 10:55:18] optimpv.axBOtorchOptimizer: Trial 31 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.038788492009773516), 'Gfrac2_JV_nrmse_linear': np.float64(0.017972990924551534), 'Gfrac3_JV_nrmse_linear': np.float64(0.03052116250533087)}
[INFO 01-20 10:55:18] optimpv.axBOtorchOptimizer: Trial 32 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.05484879415974524), 'Gfrac2_JV_nrmse_linear': np.float64(0.039092619140985906), 'Gfrac3_JV_nrmse_linear': np.float64(0.0482330617523839)}
[INFO 01-20 10:55:20] optimpv.axBOtorchOptimizer: Trial 33 with parameters: {'l2.mu_n': -7.582627991679459, 'l2.mu_p': -7.918735521900584, 'l2.N_t_bulk': 18.47326919358207, 'l2.preLangevin': -2.6019111198276432, 'R_series': 6.0805009564126554e-05, 'R_shunt': 41.434243603108406, 'l2.G_ehp': 1.5589412339101684e+28}
[INFO 01-20 10:55:20] optimpv.axBOtorchOptimizer: Trial 34 with parameters: {'l2.mu_n': -7.701783197491688, 'l2.mu_p': -7.819406443761253, 'l2.N_t_bulk': 18.363252815380697, 'l2.preLangevin': -2.4780682520453805, 'R_series': 4.8331934721289324e-05, 'R_shunt': 8.595211234343557, 'l2.G_ehp': 1.5589412339101684e+28}
[INFO 01-20 10:55:21] optimpv.axBOtorchOptimizer: Trial 33 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.03822481018135071), 'Gfrac2_JV_nrmse_linear': np.float64(0.020015952444911455), 'Gfrac3_JV_nrmse_linear': np.float64(0.029256568860026443)}
[INFO 01-20 10:55:21] optimpv.axBOtorchOptimizer: Trial 34 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.040088823870713976), 'Gfrac2_JV_nrmse_linear': np.float64(0.017160866835071426), 'Gfrac3_JV_nrmse_linear': np.float64(0.029927448834462876)}
[INFO 01-20 10:55:23] optimpv.axBOtorchOptimizer: Trial 35 with parameters: {'l2.mu_n': -7.563644676152347, 'l2.mu_p': -7.849484043418, 'l2.N_t_bulk': 18.501692058935234, 'l2.preLangevin': -2.610208084142792, 'R_series': 6.348592434352903e-05, 'R_shunt': 33.62881419124432, 'l2.G_ehp': 1.5120950558219638e+28}
[INFO 01-20 10:55:23] optimpv.axBOtorchOptimizer: Trial 36 with parameters: {'l2.mu_n': -7.512412588061263, 'l2.mu_p': -7.8070644302155685, 'l2.N_t_bulk': 18.53096060161605, 'l2.preLangevin': -2.598885056812761, 'R_series': 6.156883426407214e-05, 'R_shunt': 21.362008101925205, 'l2.G_ehp': 1.5187705988463881e+28}
[INFO 01-20 10:55:24] optimpv.axBOtorchOptimizer: Trial 35 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.028698506803461515), 'Gfrac2_JV_nrmse_linear': np.float64(0.014285058878808769), 'Gfrac3_JV_nrmse_linear': np.float64(0.02129922590729654)}
[INFO 01-20 10:55:24] optimpv.axBOtorchOptimizer: Trial 36 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.03221749158223168), 'Gfrac2_JV_nrmse_linear': np.float64(0.012629781855711928), 'Gfrac3_JV_nrmse_linear': np.float64(0.024827749248656716)}
[INFO 01-20 10:55:27] optimpv.axBOtorchOptimizer: Trial 37 with parameters: {'l2.mu_n': -7.538055767609503, 'l2.mu_p': -7.782434678316719, 'l2.N_t_bulk': 18.54713983455129, 'l2.preLangevin': -2.623991552369202, 'R_series': 5.645472644533936e-05, 'R_shunt': 18.31806048824444, 'l2.G_ehp': 1.4984808003798391e+28}
[INFO 01-20 10:55:27] optimpv.axBOtorchOptimizer: Trial 38 with parameters: {'l2.mu_n': -7.692745786000364, 'l2.mu_p': -7.646261029893612, 'l2.N_t_bulk': 18.63951955119225, 'l2.preLangevin': -2.54551250313491, 'R_series': 4.283972071202472e-05, 'R_shunt': 14.778623185118967, 'l2.G_ehp': 1.4760217166401592e+28}
[INFO 01-20 10:55:27] optimpv.axBOtorchOptimizer: Trial 37 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.026252379234123605), 'Gfrac2_JV_nrmse_linear': np.float64(0.01082688804787824), 'Gfrac3_JV_nrmse_linear': np.float64(0.020244452261518938)}
[INFO 01-20 10:55:27] optimpv.axBOtorchOptimizer: Trial 38 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.026067188649920553), 'Gfrac2_JV_nrmse_linear': np.float64(0.01096887515063949), 'Gfrac3_JV_nrmse_linear': np.float64(0.019658159645697035)}
[INFO 01-20 10:55:29] optimpv.axBOtorchOptimizer: Trial 39 with parameters: {'l2.mu_n': -7.594283806099166, 'l2.mu_p': -7.66244838643466, 'l2.N_t_bulk': 18.656402248997885, 'l2.preLangevin': -2.583860412036426, 'R_series': 4.4000931628542214e-05, 'R_shunt': 15.375600829684606, 'l2.G_ehp': 1.4831308186294745e+28}
[INFO 01-20 10:55:29] optimpv.axBOtorchOptimizer: Trial 40 with parameters: {'l2.mu_n': -7.51216124854561, 'l2.mu_p': -7.4109341140904315, 'l2.N_t_bulk': 18.967850659295795, 'l2.preLangevin': -2.5808905500014125, 'R_series': 1.9162072221453587e-05, 'R_shunt': 9.200292851633192, 'l2.G_ehp': 1.4834437848144589e+28}
[INFO 01-20 10:55:30] optimpv.axBOtorchOptimizer: Trial 39 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.02728010378943631), 'Gfrac2_JV_nrmse_linear': np.float64(0.017788087692727675), 'Gfrac3_JV_nrmse_linear': np.float64(0.023576671612702143)}
[INFO 01-20 10:55:30] optimpv.axBOtorchOptimizer: Trial 40 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.04772525228246868), 'Gfrac2_JV_nrmse_linear': np.float64(0.0607298882983163), 'Gfrac3_JV_nrmse_linear': np.float64(0.053879835338547497)}
[INFO 01-20 10:55:33] optimpv.axBOtorchOptimizer: Trial 41 with parameters: {'l2.mu_n': -7.666841029768655, 'l2.mu_p': -7.742185543239028, 'l2.N_t_bulk': 18.448238148176497, 'l2.preLangevin': -2.557886267205556, 'R_series': 5.995611677652099e-05, 'R_shunt': 14.32692010480216, 'l2.G_ehp': 1.4829426943993116e+28}
[INFO 01-20 10:55:33] optimpv.axBOtorchOptimizer: Trial 42 with parameters: {'l2.mu_n': -7.626382361048358, 'l2.mu_p': -7.740347701621271, 'l2.N_t_bulk': 18.414097005200567, 'l2.preLangevin': -2.4978193752080684, 'R_series': 5.883145755231449e-05, 'R_shunt': 12.656641480464836, 'l2.G_ehp': 1.4898811316628335e+28}
[INFO 01-20 10:55:33] optimpv.axBOtorchOptimizer: Trial 41 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.025545360892350048), 'Gfrac2_JV_nrmse_linear': np.float64(0.013278293335233263), 'Gfrac3_JV_nrmse_linear': np.float64(0.017543201048091164)}
[INFO 01-20 10:55:33] optimpv.axBOtorchOptimizer: Trial 42 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.03271048703865549), 'Gfrac2_JV_nrmse_linear': np.float64(0.011993027432133435), 'Gfrac3_JV_nrmse_linear': np.float64(0.023810072348395)}
[INFO 01-20 10:55:35] optimpv.axBOtorchOptimizer: Trial 43 with parameters: {'l2.mu_n': -7.671684667786932, 'l2.mu_p': -7.7584798947314795, 'l2.N_t_bulk': 18.516085184108974, 'l2.preLangevin': -2.614124973427072, 'R_series': 5.887335387029796e-05, 'R_shunt': 19.622044308472333, 'l2.G_ehp': 1.479169655909365e+28}
[INFO 01-20 10:55:35] optimpv.axBOtorchOptimizer: Trial 44 with parameters: {'l2.mu_n': -7.431917500758719, 'l2.mu_p': -7.786154720816032, 'l2.N_t_bulk': 18.51708103924693, 'l2.preLangevin': -2.4875597791331647, 'R_series': 4.747608268542814e-05, 'R_shunt': 29.16030807015653, 'l2.G_ehp': 1.5531434371376963e+28}
[INFO 01-20 10:55:36] optimpv.axBOtorchOptimizer: Trial 43 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.02043602284233356), 'Gfrac2_JV_nrmse_linear': np.float64(0.016996930929162966), 'Gfrac3_JV_nrmse_linear': np.float64(0.015127737605992385)}
[INFO 01-20 10:55:36] optimpv.axBOtorchOptimizer: Trial 44 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.04903827773331367), 'Gfrac2_JV_nrmse_linear': np.float64(0.034222829254614284), 'Gfrac3_JV_nrmse_linear': np.float64(0.043245229400644486)}
[INFO 01-20 10:55:39] optimpv.axBOtorchOptimizer: Trial 45 with parameters: {'l2.mu_n': -7.71162178848582, 'l2.mu_p': -7.7973289246846695, 'l2.N_t_bulk': 18.372328629533516, 'l2.preLangevin': -2.621723818787178, 'R_series': 5.849734055039055e-05, 'R_shunt': 33.06658707514289, 'l2.G_ehp': 1.4719860665200617e+28}
[INFO 01-20 10:55:39] optimpv.axBOtorchOptimizer: Trial 46 with parameters: {'l2.mu_n': -7.695913587268732, 'l2.mu_p': -7.79158852845709, 'l2.N_t_bulk': 18.32940261203749, 'l2.preLangevin': -2.5675647494482887, 'R_series': 5.780943630934478e-05, 'R_shunt': 27.236701646416016, 'l2.G_ehp': 1.4767562203136476e+28}
[INFO 01-20 10:55:40] optimpv.axBOtorchOptimizer: Trial 45 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.01884705843961581), 'Gfrac2_JV_nrmse_linear': np.float64(0.02492343796137711), 'Gfrac3_JV_nrmse_linear': np.float64(0.016621077521487625)}
[INFO 01-20 10:55:40] optimpv.axBOtorchOptimizer: Trial 46 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.023140265395332787), 'Gfrac2_JV_nrmse_linear': np.float64(0.019100859985485975), 'Gfrac3_JV_nrmse_linear': np.float64(0.016239617884561953)}
[INFO 01-20 10:55:43] optimpv.axBOtorchOptimizer: Trial 47 with parameters: {'l2.mu_n': -7.671484440646074, 'l2.mu_p': -7.811100217517525, 'l2.N_t_bulk': 18.398992241724542, 'l2.preLangevin': -2.631444213267982, 'R_series': 5.9234087069450055e-05, 'R_shunt': 26.708335402740488, 'l2.G_ehp': 1.4781214772049173e+28}
[INFO 01-20 10:55:43] optimpv.axBOtorchOptimizer: Trial 48 with parameters: {'l2.mu_n': -7.676990940325938, 'l2.mu_p': -7.730268930824257, 'l2.N_t_bulk': 18.47540047229253, 'l2.preLangevin': -2.601990111351184, 'R_series': 6.803817616591858e-05, 'R_shunt': 34.79643379585401, 'l2.G_ehp': 1.4788757951245323e+28}
[INFO 01-20 10:55:44] optimpv.axBOtorchOptimizer: Trial 47 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.019198565157601495), 'Gfrac2_JV_nrmse_linear': np.float64(0.021941697217710453), 'Gfrac3_JV_nrmse_linear': np.float64(0.016026378926350827)}
[INFO 01-20 10:55:44] optimpv.axBOtorchOptimizer: Trial 48 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.02236400708185141), 'Gfrac2_JV_nrmse_linear': np.float64(0.018830500683986933), 'Gfrac3_JV_nrmse_linear': np.float64(0.016514815937141696)}
[INFO 01-20 10:55:47] optimpv.axBOtorchOptimizer: Trial 49 with parameters: {'l2.mu_n': -7.669301847040856, 'l2.mu_p': -7.8056716514199955, 'l2.N_t_bulk': 18.41826344357852, 'l2.preLangevin': -2.6078668300321257, 'R_series': 5.861247101976101e-05, 'R_shunt': 24.83584609196712, 'l2.G_ehp': 1.4827098818428846e+28}
[INFO 01-20 10:55:47] optimpv.axBOtorchOptimizer: Trial 50 with parameters: {'l2.mu_n': -7.364195991007662, 'l2.mu_p': -7.814915732986817, 'l2.N_t_bulk': 18.675060306338843, 'l2.preLangevin': -2.491518152292461, 'R_series': 7.157343050987024e-05, 'R_shunt': 61.609693713078016, 'l2.G_ehp': 1.5589412339101684e+28}
[INFO 01-20 10:55:47] optimpv.axBOtorchOptimizer: Trial 49 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.021225600071477224), 'Gfrac2_JV_nrmse_linear': np.float64(0.019621501842401027), 'Gfrac3_JV_nrmse_linear': np.float64(0.016209190999270325)}
[INFO 01-20 10:55:47] optimpv.axBOtorchOptimizer: Trial 50 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.05210934180858506), 'Gfrac2_JV_nrmse_linear': np.float64(0.030546150152731304), 'Gfrac3_JV_nrmse_linear': np.float64(0.043473857527658206)}
[INFO 01-20 10:55:52] optimpv.axBOtorchOptimizer: Trial 51 with parameters: {'l2.mu_n': -7.658332367991127, 'l2.mu_p': -7.8001378880563, 'l2.N_t_bulk': 18.382304061920724, 'l2.preLangevin': -2.5727974489761727, 'R_series': 5.7159634075325224e-05, 'R_shunt': 23.14302781577449, 'l2.G_ehp': 1.486904219945432e+28}
[INFO 01-20 10:55:52] optimpv.axBOtorchOptimizer: Trial 52 with parameters: {'l2.mu_n': -7.665283853331001, 'l2.mu_p': -7.813352933535198, 'l2.N_t_bulk': 18.429149912806672, 'l2.preLangevin': -2.654543017321479, 'R_series': 5.662245562037026e-05, 'R_shunt': 34.90863127708012, 'l2.G_ehp': 1.4774947808091352e+28}
[INFO 01-20 10:55:52] optimpv.axBOtorchOptimizer: Trial 51 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.024436182637286002), 'Gfrac2_JV_nrmse_linear': np.float64(0.01562626657420473), 'Gfrac3_JV_nrmse_linear': np.float64(0.017146734189258783)}
[INFO 01-20 10:55:52] optimpv.axBOtorchOptimizer: Trial 52 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.01752240826317235), 'Gfrac2_JV_nrmse_linear': np.float64(0.02181757826041107), 'Gfrac3_JV_nrmse_linear': np.float64(0.015607172943156939)}
[INFO 01-20 10:55:56] optimpv.axBOtorchOptimizer: Trial 53 with parameters: {'l2.mu_n': -7.655393724441572, 'l2.mu_p': -7.791085052822233, 'l2.N_t_bulk': 18.393265121309646, 'l2.preLangevin': -2.550159760080676, 'R_series': 5.754877341522793e-05, 'R_shunt': 19.85105529652051, 'l2.G_ehp': 1.4896905221834135e+28}
[INFO 01-20 10:55:56] optimpv.axBOtorchOptimizer: Trial 54 with parameters: {'l2.mu_n': -7.863974160192714, 'l2.mu_p': -7.886649509267498, 'l2.N_t_bulk': 17.989020165604902, 'l2.preLangevin': -2.5286144339433694, 'R_series': 2.3537925689246893e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4540323665537628e+28}
[INFO 01-20 10:55:56] optimpv.axBOtorchOptimizer: Trial 53 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.026667357492382013), 'Gfrac2_JV_nrmse_linear': np.float64(0.01407336260293474), 'Gfrac3_JV_nrmse_linear': np.float64(0.018547999435307792)}
[INFO 01-20 10:55:56] optimpv.axBOtorchOptimizer: Trial 54 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.021083499975494364), 'Gfrac2_JV_nrmse_linear': np.float64(0.03306880750394094), 'Gfrac3_JV_nrmse_linear': np.float64(0.01806983796038153)}
[INFO 01-20 10:56:00] optimpv.axBOtorchOptimizer: Trial 55 with parameters: {'l2.mu_n': -7.7253086576130165, 'l2.mu_p': -7.8152316786557785, 'l2.N_t_bulk': 18.449693253853763, 'l2.preLangevin': -2.5842832427557383, 'R_series': 4.893151079704978e-05, 'R_shunt': 29.736885214744426, 'l2.G_ehp': 1.4850552931282996e+28}
[INFO 01-20 10:56:00] optimpv.axBOtorchOptimizer: Trial 56 with parameters: {'l2.mu_n': -7.704308708138662, 'l2.mu_p': -7.806129194493706, 'l2.N_t_bulk': 18.36351181766923, 'l2.preLangevin': -2.535297433846637, 'R_series': 4.899407265887297e-05, 'R_shunt': 21.474561224694718, 'l2.G_ehp': 1.486536637599042e+28}
[INFO 01-20 10:56:00] optimpv.axBOtorchOptimizer: Trial 55 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.02112670557577465), 'Gfrac2_JV_nrmse_linear': np.float64(0.02181587304865249), 'Gfrac3_JV_nrmse_linear': np.float64(0.016601079480126225)}
[INFO 01-20 10:56:00] optimpv.axBOtorchOptimizer: Trial 56 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.025389673229885022), 'Gfrac2_JV_nrmse_linear': np.float64(0.016129317179017826), 'Gfrac3_JV_nrmse_linear': np.float64(0.017407610891992997)}
[INFO 01-20 10:56:04] optimpv.axBOtorchOptimizer: Trial 57 with parameters: {'l2.mu_n': -7.6250336513361185, 'l2.mu_p': -7.7900214257785585, 'l2.N_t_bulk': 18.304509637665642, 'l2.preLangevin': -2.6629426463593093, 'R_series': 5.423465665896577e-05, 'R_shunt': 38.361024485345126, 'l2.G_ehp': 1.4711493481051247e+28}
[INFO 01-20 10:56:04] optimpv.axBOtorchOptimizer: Trial 58 with parameters: {'l2.mu_n': -7.627629772898391, 'l2.mu_p': -7.7822318785872735, 'l2.N_t_bulk': 18.271411101815673, 'l2.preLangevin': -2.611300331793463, 'R_series': 5.413092731890058e-05, 'R_shunt': 27.71357610756878, 'l2.G_ehp': 1.4788529095195549e+28}
[INFO 01-20 10:56:04] optimpv.axBOtorchOptimizer: Trial 57 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.016186007695273813), 'Gfrac2_JV_nrmse_linear': np.float64(0.015099619912295392), 'Gfrac3_JV_nrmse_linear': np.float64(0.012522197823290225)}
[INFO 01-20 10:56:04] optimpv.axBOtorchOptimizer: Trial 58 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.02093326910705005), 'Gfrac2_JV_nrmse_linear': np.float64(0.012065403484019294), 'Gfrac3_JV_nrmse_linear': np.float64(0.014851100282550884)}
[INFO 01-20 10:56:07] optimpv.axBOtorchOptimizer: Trial 59 with parameters: {'l2.mu_n': -7.589378237105187, 'l2.mu_p': -7.766712878879619, 'l2.N_t_bulk': 18.10397548871492, 'l2.preLangevin': -2.658997805245029, 'R_series': 5.177665988987155e-05, 'R_shunt': 42.96147268427755, 'l2.G_ehp': 1.4669995325657466e+28}
[INFO 01-20 10:56:07] optimpv.axBOtorchOptimizer: Trial 60 with parameters: {'l2.mu_n': -7.593108549806278, 'l2.mu_p': -7.764657678063046, 'l2.N_t_bulk': 18.113705376237437, 'l2.preLangevin': -2.6032039121508532, 'R_series': 5.269056558462686e-05, 'R_shunt': 30.62224368199025, 'l2.G_ehp': 1.4764687679577885e+28}
[INFO 01-20 10:56:08] optimpv.axBOtorchOptimizer: Trial 59 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.016807163137859224), 'Gfrac2_JV_nrmse_linear': np.float64(0.009573380714693255), 'Gfrac3_JV_nrmse_linear': np.float64(0.012151830211545839)}
[INFO 01-20 10:56:08] optimpv.axBOtorchOptimizer: Trial 60 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.0226896331955706), 'Gfrac2_JV_nrmse_linear': np.float64(0.009273479902834041), 'Gfrac3_JV_nrmse_linear': np.float64(0.016470914058826155)}
[INFO 01-20 10:56:11] optimpv.axBOtorchOptimizer: Trial 61 with parameters: {'l2.mu_n': -7.551108835354048, 'l2.mu_p': -7.764911781679141, 'l2.N_t_bulk': 17.934901979413137, 'l2.preLangevin': -2.7324964274747368, 'R_series': 4.9603362289342914e-05, 'R_shunt': 76.33755776525997, 'l2.G_ehp': 1.4488308979274905e+28}
[INFO 01-20 10:56:11] optimpv.axBOtorchOptimizer: Trial 62 with parameters: {'l2.mu_n': -7.633160356143813, 'l2.mu_p': -7.773737251403126, 'l2.N_t_bulk': 18.298827235550114, 'l2.preLangevin': -2.5694457924171266, 'R_series': 5.4456247890537404e-05, 'R_shunt': 21.848411011095592, 'l2.G_ehp': 1.484128555525607e+28}
[INFO 01-20 10:56:12] optimpv.axBOtorchOptimizer: Trial 61 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.010107791889324183), 'Gfrac2_JV_nrmse_linear': np.float64(0.009732986646908266), 'Gfrac3_JV_nrmse_linear': np.float64(0.007867239179974207)}
[INFO 01-20 10:56:12] optimpv.axBOtorchOptimizer: Trial 62 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.024914223300800745), 'Gfrac2_JV_nrmse_linear': np.float64(0.010934115462040098), 'Gfrac3_JV_nrmse_linear': np.float64(0.017588010092204873)}
[INFO 01-20 10:56:15] optimpv.axBOtorchOptimizer: Trial 63 with parameters: {'l2.mu_n': -7.493299500020898, 'l2.mu_p': -7.757347098752636, 'l2.N_t_bulk': 17.73857540502431, 'l2.preLangevin': -2.767321644840784, 'R_series': 5.043308152432282e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4330645464348307e+28}
[INFO 01-20 10:56:15] optimpv.axBOtorchOptimizer: Trial 64 with parameters: {'l2.mu_n': -7.6805034443432145, 'l2.mu_p': -7.804800926074026, 'l2.N_t_bulk': 18.318669231497413, 'l2.preLangevin': -2.648467979792897, 'R_series': 5.092207391662119e-05, 'R_shunt': 41.72516579389125, 'l2.G_ehp': 1.4733043807867184e+28}
[INFO 01-20 10:56:15] optimpv.axBOtorchOptimizer: Trial 63 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.00981669604175018), 'Gfrac2_JV_nrmse_linear': np.float64(0.008447988524289414), 'Gfrac3_JV_nrmse_linear': np.float64(0.006908769231613081)}
[INFO 01-20 10:56:15] optimpv.axBOtorchOptimizer: Trial 64 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.016229174911817235), 'Gfrac2_JV_nrmse_linear': np.float64(0.02031621821368888), 'Gfrac3_JV_nrmse_linear': np.float64(0.014160657314862114)}
[INFO 01-20 10:56:20] optimpv.axBOtorchOptimizer: Trial 65 with parameters: {'l2.mu_n': -7.490780702069229, 'l2.mu_p': -7.765272720209636, 'l2.N_t_bulk': 17.76476853416345, 'l2.preLangevin': -2.811290198201494, 'R_series': 4.765534808730583e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4225339811728516e+28}
[INFO 01-20 10:56:20] optimpv.axBOtorchOptimizer: Trial 66 with parameters: {'l2.mu_n': -7.494166906177752, 'l2.mu_p': -7.823674497068032, 'l2.N_t_bulk': 17.590070924254512, 'l2.preLangevin': -2.7953715310454954, 'R_series': 3.779686886338892e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4290755410338033e+28}
[INFO 01-20 10:56:20] optimpv.axBOtorchOptimizer: Trial 65 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.007677260910884626), 'Gfrac2_JV_nrmse_linear': np.float64(0.009975025105161591), 'Gfrac3_JV_nrmse_linear': np.float64(0.005517556598144097)}
[INFO 01-20 10:56:20] optimpv.axBOtorchOptimizer: Trial 66 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.008208707877288002), 'Gfrac2_JV_nrmse_linear': np.float64(0.01020435415666224), 'Gfrac3_JV_nrmse_linear': np.float64(0.006864719227051059)}
[INFO 01-20 10:56:25] optimpv.axBOtorchOptimizer: Trial 67 with parameters: {'l2.mu_n': -7.53531851197097, 'l2.mu_p': -7.441349591578745, 'l2.N_t_bulk': 16.45755008896884, 'l2.preLangevin': -2.64716845748312, 'R_series': 2.299440885207262e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.3749133023443778e+28}
[INFO 01-20 10:56:25] optimpv.axBOtorchOptimizer: Trial 68 with parameters: {'l2.mu_n': -7.552006311257056, 'l2.mu_p': -7.660618168213591, 'l2.N_t_bulk': 17.554704483976064, 'l2.preLangevin': -2.7654506556996465, 'R_series': 3.795736773769647e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4039692666617152e+28}
[INFO 01-20 10:56:26] optimpv.axBOtorchOptimizer: Trial 67 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.0422996517108604), 'Gfrac2_JV_nrmse_linear': np.float64(0.04781497087544052), 'Gfrac3_JV_nrmse_linear': np.float64(0.04352533681331828)}
[INFO 01-20 10:56:26] optimpv.axBOtorchOptimizer: Trial 68 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.014900992843095446), 'Gfrac2_JV_nrmse_linear': np.float64(0.01153882646757164), 'Gfrac3_JV_nrmse_linear': np.float64(0.010920878998737858)}
[INFO 01-20 10:56:30] optimpv.axBOtorchOptimizer: Trial 69 with parameters: {'l2.mu_n': -7.4435663422642, 'l2.mu_p': -7.86269220747465, 'l2.N_t_bulk': 17.792204589282985, 'l2.preLangevin': -2.8510193558201387, 'R_series': 5.263365100841966e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4340964029016987e+28}
[INFO 01-20 10:56:30] optimpv.axBOtorchOptimizer: Trial 70 with parameters: {'l2.mu_n': -7.393199766405039, 'l2.mu_p': -7.899624651015861, 'l2.N_t_bulk': 17.684040814652008, 'l2.preLangevin': -2.9182652569417287, 'R_series': 6.221254211207269e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4285967950195145e+28}
[INFO 01-20 10:56:31] optimpv.axBOtorchOptimizer: Trial 69 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.006256078972302615), 'Gfrac2_JV_nrmse_linear': np.float64(0.015192659904766759), 'Gfrac3_JV_nrmse_linear': np.float64(0.008293682753741186)}
[INFO 01-20 10:56:31] optimpv.axBOtorchOptimizer: Trial 70 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.01034500824919896), 'Gfrac2_JV_nrmse_linear': np.float64(0.02282707766956589), 'Gfrac3_JV_nrmse_linear': np.float64(0.014445774882529029)}
[INFO 01-20 10:56:34] optimpv.axBOtorchOptimizer: Trial 71 with parameters: {'l2.mu_n': -7.5076569097501125, 'l2.mu_p': -7.8160359822482155, 'l2.N_t_bulk': 17.905234237240748, 'l2.preLangevin': -2.7868251709307383, 'R_series': 4.1295030139099844e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.431488792433132e+28}
[INFO 01-20 10:56:34] optimpv.axBOtorchOptimizer: Trial 72 with parameters: {'l2.mu_n': -7.526834501468406, 'l2.mu_p': -7.845052088810186, 'l2.N_t_bulk': 17.816167179224742, 'l2.preLangevin': -2.789223691752013, 'R_series': 4.4738721896074146e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4323108712232617e+28}
[INFO 01-20 10:56:35] optimpv.axBOtorchOptimizer: Trial 71 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.007633340750505734), 'Gfrac2_JV_nrmse_linear': np.float64(0.010122960335491482), 'Gfrac3_JV_nrmse_linear': np.float64(0.005993936273792377)}
[INFO 01-20 10:56:35] optimpv.axBOtorchOptimizer: Trial 72 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.006906809387160325), 'Gfrac2_JV_nrmse_linear': np.float64(0.01375054804052721), 'Gfrac3_JV_nrmse_linear': np.float64(0.006564520260486341)}
[INFO 01-20 10:56:39] optimpv.axBOtorchOptimizer: Trial 73 with parameters: {'l2.mu_n': -7.493003240467988, 'l2.mu_p': -7.773779861048661, 'l2.N_t_bulk': 17.906961440018726, 'l2.preLangevin': -2.808478671785553, 'R_series': 4.342018675620352e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4373348515801278e+28}
[INFO 01-20 10:56:39] optimpv.axBOtorchOptimizer: Trial 74 with parameters: {'l2.mu_n': -7.50851050582229, 'l2.mu_p': -7.798678348417962, 'l2.N_t_bulk': 17.90149371711826, 'l2.preLangevin': -2.825135221273479, 'R_series': 4.457583590291131e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4350024259734108e+28}
[INFO 01-20 10:56:39] optimpv.axBOtorchOptimizer: Trial 73 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.006444240833551029), 'Gfrac2_JV_nrmse_linear': np.float64(0.01043654893743226), 'Gfrac3_JV_nrmse_linear': np.float64(0.0073561054558387165)}
[INFO 01-20 10:56:39] optimpv.axBOtorchOptimizer: Trial 74 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.005633773445235312), 'Gfrac2_JV_nrmse_linear': np.float64(0.013313375970123952), 'Gfrac3_JV_nrmse_linear': np.float64(0.008107471784947412)}
[INFO 01-20 10:56:44] optimpv.axBOtorchOptimizer: Trial 75 with parameters: {'l2.mu_n': -7.486988143124387, 'l2.mu_p': -7.808188094376334, 'l2.N_t_bulk': 17.86832282421608, 'l2.preLangevin': -2.7743924515476737, 'R_series': 4.5285262125328846e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4282534498500527e+28}
[INFO 01-20 10:56:44] optimpv.axBOtorchOptimizer: Trial 76 with parameters: {'l2.mu_n': -7.491423392792458, 'l2.mu_p': -7.800795921123772, 'l2.N_t_bulk': 17.846480031175346, 'l2.preLangevin': -2.7797803808860455, 'R_series': 4.512293554896334e-05, 'R_shunt': 60.307322193298056, 'l2.G_ehp': 1.428162916932698e+28}
[INFO 01-20 10:56:44] optimpv.axBOtorchOptimizer: Trial 75 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.010187882210489906), 'Gfrac2_JV_nrmse_linear': np.float64(0.008697483401309684), 'Gfrac3_JV_nrmse_linear': np.float64(0.006426637447003438)}
[INFO 01-20 10:56:44] optimpv.axBOtorchOptimizer: Trial 76 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.009379976624050823), 'Gfrac2_JV_nrmse_linear': np.float64(0.00894723310466227), 'Gfrac3_JV_nrmse_linear': np.float64(0.006104174243464377)}
[INFO 01-20 10:56:47] optimpv.axBOtorchOptimizer: Trial 77 with parameters: {'l2.mu_n': -7.491807685400254, 'l2.mu_p': -7.803018109173063, 'l2.N_t_bulk': 17.816463154745225, 'l2.preLangevin': -2.7847980811616995, 'R_series': 4.494849761673065e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4334971572509764e+28}
[INFO 01-20 10:56:47] optimpv.axBOtorchOptimizer: Trial 78 with parameters: {'l2.mu_n': -7.587643081425776, 'l2.mu_p': -7.372220036873296, 'l2.N_t_bulk': 17.106514110655404, 'l2.preLangevin': -2.70225675938773, 'R_series': 2.238755912826636e-05, 'R_shunt': 43.96908707922238, 'l2.G_ehp': 1.3799819890719598e+28}
[INFO 01-20 10:56:48] optimpv.axBOtorchOptimizer: Trial 77 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.00815358522779669), 'Gfrac2_JV_nrmse_linear': np.float64(0.009482767772434937), 'Gfrac3_JV_nrmse_linear': np.float64(0.006277462209081744)}
[INFO 01-20 10:56:48] optimpv.axBOtorchOptimizer: Trial 78 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.03731804212423096), 'Gfrac2_JV_nrmse_linear': np.float64(0.04382797236183444), 'Gfrac3_JV_nrmse_linear': np.float64(0.03880329946542141)}
[INFO 01-20 10:56:51] optimpv.axBOtorchOptimizer: Trial 79 with parameters: {'l2.mu_n': -7.500323625516501, 'l2.mu_p': -7.812782875284292, 'l2.N_t_bulk': 17.80611181210483, 'l2.preLangevin': -2.7894308648314063, 'R_series': 4.692605091502618e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4264670414795863e+28}
[INFO 01-20 10:56:51] optimpv.axBOtorchOptimizer: Trial 80 with parameters: {'l2.mu_n': -7.499939312473844, 'l2.mu_p': -7.463322588302979, 'l2.N_t_bulk': 17.922332307605664, 'l2.preLangevin': -2.858370059399432, 'R_series': 1.770102888202606e-05, 'R_shunt': 27.67643444622498, 'l2.G_ehp': 1.4953833591158145e+28}
[INFO 01-20 10:56:51] optimpv.axBOtorchOptimizer: Trial 79 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.008318594525875524), 'Gfrac2_JV_nrmse_linear': np.float64(0.010434771672084444), 'Gfrac3_JV_nrmse_linear': np.float64(0.005078738832834709)}
[INFO 01-20 10:56:51] optimpv.axBOtorchOptimizer: Trial 80 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.029581990361403968), 'Gfrac2_JV_nrmse_linear': np.float64(0.0361699392959709), 'Gfrac3_JV_nrmse_linear': np.float64(0.03125892712931881)}
[INFO 01-20 10:56:56] optimpv.axBOtorchOptimizer: Trial 81 with parameters: {'l2.mu_n': -7.498796583442218, 'l2.mu_p': -7.802610732508602, 'l2.N_t_bulk': 17.78965155454797, 'l2.preLangevin': -2.8046190280976298, 'R_series': 4.468153467635799e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4340462228037599e+28}
[INFO 01-20 10:56:56] optimpv.axBOtorchOptimizer: Trial 82 with parameters: {'l2.mu_n': -7.484514036901445, 'l2.mu_p': -7.7895096695288055, 'l2.N_t_bulk': 17.7854323506245, 'l2.preLangevin': -2.78198214462892, 'R_series': 4.403481665797475e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4360558555813414e+28}
[INFO 01-20 10:56:56] optimpv.axBOtorchOptimizer: Trial 81 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.006165767869363186), 'Gfrac2_JV_nrmse_linear': np.float64(0.011106817770795564), 'Gfrac3_JV_nrmse_linear': np.float64(0.006385952579594909)}
[INFO 01-20 10:56:56] optimpv.axBOtorchOptimizer: Trial 82 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.008857718214275986), 'Gfrac2_JV_nrmse_linear': np.float64(0.009448487235937351), 'Gfrac3_JV_nrmse_linear': np.float64(0.007599369830117979)}
[INFO 01-20 10:57:01] optimpv.axBOtorchOptimizer: Trial 83 with parameters: {'l2.mu_n': -7.970865909264431, 'l2.mu_p': -7.866042582843533, 'l2.N_t_bulk': 17.63813958577824, 'l2.preLangevin': -1.9588460651955495, 'R_series': 1.6907900553520945e-05, 'R_shunt': 0.2944718380649281, 'l2.G_ehp': 1.526919348214591e+28}
[INFO 01-20 10:57:01] optimpv.axBOtorchOptimizer: Trial 84 with parameters: {'l2.mu_n': -7.925051324767894, 'l2.mu_p': -7.917464312525563, 'l2.N_t_bulk': 18.143667699070523, 'l2.preLangevin': -2.0444270991438174, 'R_series': 1.9889076643751396e-05, 'R_shunt': 8.547187576606312, 'l2.G_ehp': 1.5443591383591762e+28}
[INFO 01-20 10:57:02] optimpv.axBOtorchOptimizer: Trial 83 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.07492864036159684), 'Gfrac2_JV_nrmse_linear': np.float64(0.03844390896621661), 'Gfrac3_JV_nrmse_linear': np.float64(0.04955017662921834)}
[INFO 01-20 10:57:02] optimpv.axBOtorchOptimizer: Trial 84 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.06400005017365458), 'Gfrac2_JV_nrmse_linear': np.float64(0.03855360671988074), 'Gfrac3_JV_nrmse_linear': np.float64(0.04288835790243884)}
[INFO 01-20 10:57:06] optimpv.axBOtorchOptimizer: Trial 85 with parameters: {'l2.mu_n': -7.501311854434898, 'l2.mu_p': -7.806361315804756, 'l2.N_t_bulk': 17.804443811084383, 'l2.preLangevin': -2.785411146348761, 'R_series': 4.7628344502379706e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4235883360450593e+28}
[INFO 01-20 10:57:06] optimpv.axBOtorchOptimizer: Trial 86 with parameters: {'l2.mu_n': -7.600260519225382, 'l2.mu_p': -7.330490250962557, 'l2.N_t_bulk': 17.065929666570597, 'l2.preLangevin': -2.68654180154278, 'R_series': 1.9398112202554817e-05, 'R_shunt': 37.41960333977184, 'l2.G_ehp': 1.3749133023443778e+28}
[INFO 01-20 10:57:06] optimpv.axBOtorchOptimizer: Trial 85 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.009162980943308108), 'Gfrac2_JV_nrmse_linear': np.float64(0.009989873763579434), 'Gfrac3_JV_nrmse_linear': np.float64(0.0049216704782636626)}
[INFO 01-20 10:57:06] optimpv.axBOtorchOptimizer: Trial 86 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.04196286625874446), 'Gfrac2_JV_nrmse_linear': np.float64(0.04915901259816859), 'Gfrac3_JV_nrmse_linear': np.float64(0.043754494374767715)}
[INFO 01-20 10:57:12] optimpv.axBOtorchOptimizer: Trial 87 with parameters: {'l2.mu_n': -7.554039156092034, 'l2.mu_p': -8.13063298244443, 'l2.N_t_bulk': 16.99686671469706, 'l2.preLangevin': -2.731998672528808, 'R_series': 1.2188824195575095e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4629938577696599e+28}
[INFO 01-20 10:57:12] optimpv.axBOtorchOptimizer: Trial 88 with parameters: {'l2.mu_n': -7.5097694909904185, 'l2.mu_p': -7.791600317060169, 'l2.N_t_bulk': 17.76496526591345, 'l2.preLangevin': -2.801829199827444, 'R_series': 4.5521018117810725e-05, 'R_shunt': 70.66494831063804, 'l2.G_ehp': 1.4330629252034215e+28}
[INFO 01-20 10:57:12] optimpv.axBOtorchOptimizer: Trial 87 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.018140671607348478), 'Gfrac2_JV_nrmse_linear': np.float64(0.015832609886179974), 'Gfrac3_JV_nrmse_linear': np.float64(0.009247828214926515)}
[INFO 01-20 10:57:12] optimpv.axBOtorchOptimizer: Trial 88 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.00607428783970278), 'Gfrac2_JV_nrmse_linear': np.float64(0.011373425460640853), 'Gfrac3_JV_nrmse_linear': np.float64(0.006336953195504699)}
[INFO 01-20 10:57:17] optimpv.axBOtorchOptimizer: Trial 89 with parameters: {'l2.mu_n': -7.544553858376719, 'l2.mu_p': -7.909897794039699, 'l2.N_t_bulk': 17.56428399691233, 'l2.preLangevin': -2.7726983238716123, 'R_series': 2.4879533974589633e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4444771181388405e+28}
[INFO 01-20 10:57:17] optimpv.axBOtorchOptimizer: Trial 90 with parameters: {'l2.mu_n': -7.593642394028037, 'l2.mu_p': -8.517722657277055, 'l2.N_t_bulk': 16.56121954629107, 'l2.preLangevin': -2.4732200970282405, 'R_series': 7.465462835399561e-06, 'R_shunt': 100.0, 'l2.G_ehp': 1.440269343118208e+28}
[INFO 01-20 10:57:18] optimpv.axBOtorchOptimizer: Trial 89 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.007906712131524106), 'Gfrac2_JV_nrmse_linear': np.float64(0.012384622867886533), 'Gfrac3_JV_nrmse_linear': np.float64(0.008197109152439803)}
[INFO 01-20 10:57:18] optimpv.axBOtorchOptimizer: Trial 90 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.09544632606791957), 'Gfrac2_JV_nrmse_linear': np.float64(0.031581589735697004), 'Gfrac3_JV_nrmse_linear': np.float64(0.047594276711700634)}
[INFO 01-20 10:57:23] optimpv.axBOtorchOptimizer: Trial 91 with parameters: {'l2.mu_n': -7.518359900818943, 'l2.mu_p': -7.990071107124283, 'l2.N_t_bulk': 16.993552847884413, 'l2.preLangevin': -2.746816178236847, 'R_series': 2.274870271995279e-05, 'R_shunt': 24.291194676382087, 'l2.G_ehp': 1.4631689330619674e+28}
[INFO 01-20 10:57:23] optimpv.axBOtorchOptimizer: Trial 92 with parameters: {'l2.mu_n': -7.498935861164864, 'l2.mu_p': -7.75899739596995, 'l2.N_t_bulk': 17.9037777394764, 'l2.preLangevin': -2.792559854540998, 'R_series': 5.45836299134228e-05, 'R_shunt': 73.75948802045565, 'l2.G_ehp': 1.4266219905660895e+28}
[INFO 01-20 10:57:23] optimpv.axBOtorchOptimizer: Trial 91 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.013238227359987753), 'Gfrac2_JV_nrmse_linear': np.float64(0.011658244907373785), 'Gfrac3_JV_nrmse_linear': np.float64(0.01070924609550635)}
[INFO 01-20 10:57:23] optimpv.axBOtorchOptimizer: Trial 92 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.008111673527222737), 'Gfrac2_JV_nrmse_linear': np.float64(0.01021598884198829), 'Gfrac3_JV_nrmse_linear': np.float64(0.005168222728225426)}
[INFO 01-20 10:57:27] optimpv.axBOtorchOptimizer: Trial 93 with parameters: {'l2.mu_n': -7.401174731769393, 'l2.mu_p': -8.093983916825572, 'l2.N_t_bulk': 17.11155932734981, 'l2.preLangevin': -2.8039293049011036, 'R_series': 1.9061994233203636e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4842439758885092e+28}
[INFO 01-20 10:57:27] optimpv.axBOtorchOptimizer: Trial 94 with parameters: {'l2.mu_n': -7.439678859552373, 'l2.mu_p': -7.981544156460387, 'l2.N_t_bulk': 17.092414254740984, 'l2.preLangevin': -2.8310091315289547, 'R_series': 1.8296083679630122e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4344159706824643e+28}
[INFO 01-20 10:57:28] optimpv.axBOtorchOptimizer: Trial 93 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.02030534179741799), 'Gfrac2_JV_nrmse_linear': np.float64(0.01304603464623612), 'Gfrac3_JV_nrmse_linear': np.float64(0.0157097498485801)}
[INFO 01-20 10:57:28] optimpv.axBOtorchOptimizer: Trial 94 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.012513449670012883), 'Gfrac2_JV_nrmse_linear': np.float64(0.013430944322058873), 'Gfrac3_JV_nrmse_linear': np.float64(0.011018209660421765)}
[INFO 01-20 10:57:33] optimpv.axBOtorchOptimizer: Trial 95 with parameters: {'l2.mu_n': -7.550693944040461, 'l2.mu_p': -7.901154589785712, 'l2.N_t_bulk': 16.836974592363642, 'l2.preLangevin': -2.7922604723914093, 'R_series': 1.796060161014865e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4840519641845207e+28}
[INFO 01-20 10:57:33] optimpv.axBOtorchOptimizer: Trial 96 with parameters: {'l2.mu_n': -7.39389968587578, 'l2.mu_p': -8.088466212471829, 'l2.N_t_bulk': 17.08488328910151, 'l2.preLangevin': -2.8054883142050002, 'R_series': 1.911047072423162e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4929829993813887e+28}
[INFO 01-20 10:57:33] optimpv.axBOtorchOptimizer: Trial 95 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.016837205647775886), 'Gfrac2_JV_nrmse_linear': np.float64(0.015131799777155149), 'Gfrac3_JV_nrmse_linear': np.float64(0.01673896375619625)}
[INFO 01-20 10:57:33] optimpv.axBOtorchOptimizer: Trial 96 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.02116295508232047), 'Gfrac2_JV_nrmse_linear': np.float64(0.013687350393556355), 'Gfrac3_JV_nrmse_linear': np.float64(0.0173252162085111)}
[INFO 01-20 10:57:38] optimpv.axBOtorchOptimizer: Trial 97 with parameters: {'l2.mu_n': -7.504448906294205, 'l2.mu_p': -7.779232117383724, 'l2.N_t_bulk': 17.78493913896743, 'l2.preLangevin': -2.7975044428813884, 'R_series': 4.8484268086633756e-05, 'R_shunt': 49.210701220209174, 'l2.G_ehp': 1.4291676420014332e+28}
[INFO 01-20 10:57:38] optimpv.axBOtorchOptimizer: Trial 98 with parameters: {'l2.mu_n': -7.597387421955267, 'l2.mu_p': -7.773858964700283, 'l2.N_t_bulk': 18.332348623719813, 'l2.preLangevin': -2.6158055628687555, 'R_series': 4.630540492061235e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4778476940723974e+28}
[INFO 01-20 10:57:38] optimpv.axBOtorchOptimizer: Trial 97 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.006945601441965952), 'Gfrac2_JV_nrmse_linear': np.float64(0.01061230550181035), 'Gfrac3_JV_nrmse_linear': np.float64(0.005567495934576969)}
[INFO 01-20 10:57:38] optimpv.axBOtorchOptimizer: Trial 98 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.021402090983450382), 'Gfrac2_JV_nrmse_linear': np.float64(0.009201499902243102), 'Gfrac3_JV_nrmse_linear': np.float64(0.01604693725264388)}
[INFO 01-20 10:57:42] optimpv.axBOtorchOptimizer: Trial 99 with parameters: {'l2.mu_n': -7.505492693798444, 'l2.mu_p': -7.783732202290628, 'l2.N_t_bulk': 17.783881270394584, 'l2.preLangevin': -2.8112888905732896, 'R_series': 4.57167839323649e-05, 'R_shunt': 56.20105500433017, 'l2.G_ehp': 1.4335310451849863e+28}
[INFO 01-20 10:57:42] optimpv.axBOtorchOptimizer: Trial 100 with parameters: {'l2.mu_n': -7.607623735887018, 'l2.mu_p': -7.764015408741244, 'l2.N_t_bulk': 18.368223512116913, 'l2.preLangevin': -2.5539190098388564, 'R_series': 4.942549980045758e-05, 'R_shunt': 100.0, 'l2.G_ehp': 1.4822409447700658e+28}
[INFO 01-20 10:57:43] optimpv.axBOtorchOptimizer: Trial 99 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.005739002914375911), 'Gfrac2_JV_nrmse_linear': np.float64(0.011602719933894114), 'Gfrac3_JV_nrmse_linear': np.float64(0.006760610037550273)}
[INFO 01-20 10:57:43] optimpv.axBOtorchOptimizer: Trial 100 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.027208027988011956), 'Gfrac2_JV_nrmse_linear': np.float64(0.010521895828019151), 'Gfrac3_JV_nrmse_linear': np.float64(0.020234499788044914)}
[INFO 01-20 10:57:47] optimpv.axBOtorchOptimizer: Trial 101 with parameters: {'l2.mu_n': -7.501344246353345, 'l2.mu_p': -7.772636697515932, 'l2.N_t_bulk': 17.86203901802042, 'l2.preLangevin': -2.7921361894394607, 'R_series': 5.357985030723476e-05, 'R_shunt': 69.44692145719966, 'l2.G_ehp': 1.4205815716124807e+28}
[INFO 01-20 10:57:47] optimpv.axBOtorchOptimizer: Trial 102 with parameters: {'l2.mu_n': -7.489594159979156, 'l2.mu_p': -7.741162017533275, 'l2.N_t_bulk': 17.926400515614308, 'l2.preLangevin': -2.7916204433329135, 'R_series': 5.397964167467749e-05, 'R_shunt': 70.57835445866161, 'l2.G_ehp': 1.4286430730617906e+28}
[INFO 01-20 10:57:48] optimpv.axBOtorchOptimizer: Trial 101 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.00934420163184053), 'Gfrac2_JV_nrmse_linear': np.float64(0.01045379240898602), 'Gfrac3_JV_nrmse_linear': np.float64(0.005011972469492185)}
[INFO 01-20 10:57:48] optimpv.axBOtorchOptimizer: Trial 102 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.008165288649069971), 'Gfrac2_JV_nrmse_linear': np.float64(0.008965249876634293), 'Gfrac3_JV_nrmse_linear': np.float64(0.00541270443754719)}
[INFO 01-20 10:57:51] optimpv.axBOtorchOptimizer: Trial 103 with parameters: {'l2.mu_n': -7.4507305406817, 'l2.mu_p': -7.883398039981608, 'l2.N_t_bulk': 16.139836604940978, 'l2.preLangevin': -3.0, 'R_series': 1.741700481777273e-06, 'R_shunt': 0.14761175327056625, 'l2.G_ehp': 1.4498238715165466e+28}
[INFO 01-20 10:57:51] optimpv.axBOtorchOptimizer: Trial 104 with parameters: {'l2.mu_n': -7.506014478433427, 'l2.mu_p': -7.452285832281032, 'l2.N_t_bulk': 17.996820431719193, 'l2.preLangevin': -2.8402797520683074, 'R_series': 2.105424642599498e-05, 'R_shunt': 43.47615015737621, 'l2.G_ehp': 1.496138833705405e+28}
[INFO 01-20 10:57:51] optimpv.axBOtorchOptimizer: Trial 103 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.02085296800143987), 'Gfrac2_JV_nrmse_linear': np.float64(0.018823125714044042), 'Gfrac3_JV_nrmse_linear': np.float64(0.018859262537282796)}
[INFO 01-20 10:57:51] optimpv.axBOtorchOptimizer: Trial 104 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.02902857477750799), 'Gfrac2_JV_nrmse_linear': np.float64(0.03571658137753713), 'Gfrac3_JV_nrmse_linear': np.float64(0.03094626567783915)}
[INFO 01-20 10:57:56] optimpv.axBOtorchOptimizer: Trial 105 with parameters: {'l2.mu_n': -7.604512507375586, 'l2.mu_p': -7.979683129712003, 'l2.N_t_bulk': 17.293350839904345, 'l2.preLangevin': -3.0, 'R_series': 1e-06, 'R_shunt': 31.47244848962439, 'l2.G_ehp': 1.488202781334864e+28}
[INFO 01-20 10:57:56] optimpv.axBOtorchOptimizer: Trial 106 with parameters: {'l2.mu_n': -7.711254809962936, 'l2.mu_p': -7.830060554070833, 'l2.N_t_bulk': 16.31216720681197, 'l2.preLangevin': -2.642320408504458, 'R_series': 1.4344176519417295e-06, 'R_shunt': 0.07073821407078577, 'l2.G_ehp': 1.4519793473431586e+28}
[INFO 01-20 10:57:57] optimpv.axBOtorchOptimizer: Trial 105 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.04081719370240583), 'Gfrac2_JV_nrmse_linear': np.float64(0.03763796350503515), 'Gfrac3_JV_nrmse_linear': np.float64(0.039051835167257486)}
[INFO 01-20 10:57:57] optimpv.axBOtorchOptimizer: Trial 106 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.022830261641413385), 'Gfrac2_JV_nrmse_linear': np.float64(0.020818360281530633), 'Gfrac3_JV_nrmse_linear': np.float64(0.022191383941958825)}
[INFO 01-20 10:58:01] optimpv.axBOtorchOptimizer: Trial 107 with parameters: {'l2.mu_n': -7.567885043079677, 'l2.mu_p': -8.146412411545914, 'l2.N_t_bulk': 16.198339679551992, 'l2.preLangevin': -2.7774139998194824, 'R_series': 2.787054847728333e-06, 'R_shunt': 0.01, 'l2.G_ehp': 1.5589412339101684e+28}
[INFO 01-20 10:58:01] optimpv.axBOtorchOptimizer: Trial 108 with parameters: {'l2.mu_n': -7.569823515105177, 'l2.mu_p': -7.9156452056612565, 'l2.N_t_bulk': 16.534601220613432, 'l2.preLangevin': -2.7653563113700472, 'R_series': 4.8075456436995635e-06, 'R_shunt': 1.4039630483619328, 'l2.G_ehp': 1.4237706102009869e+28}
[INFO 01-20 10:58:01] optimpv.axBOtorchOptimizer: Trial 107 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.08042747586373546), 'Gfrac2_JV_nrmse_linear': np.float64(0.12696833659765874), 'Gfrac3_JV_nrmse_linear': np.float64(0.09626670650596227)}
[INFO 01-20 10:58:01] optimpv.axBOtorchOptimizer: Trial 108 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.013828041334847047), 'Gfrac2_JV_nrmse_linear': np.float64(0.0140492710824614), 'Gfrac3_JV_nrmse_linear': np.float64(0.012769796473366702)}
[INFO 01-20 10:58:06] optimpv.axBOtorchOptimizer: Trial 109 with parameters: {'l2.mu_n': -7.55205908735603, 'l2.mu_p': -7.617140144364225, 'l2.N_t_bulk': 16.0, 'l2.preLangevin': -2.9231066180923744, 'R_series': 1e-06, 'R_shunt': 1.0920728536090474, 'l2.G_ehp': 1.3749133023443778e+28}
[INFO 01-20 10:58:06] optimpv.axBOtorchOptimizer: Trial 110 with parameters: {'l2.mu_n': -7.447753321601716, 'l2.mu_p': -7.916120964739058, 'l2.N_t_bulk': 16.18028962741595, 'l2.preLangevin': -2.996071753281473, 'R_series': 1.8789372866556917e-06, 'R_shunt': 0.11766509865617744, 'l2.G_ehp': 1.4608157938946275e+28}
[INFO 01-20 10:58:06] optimpv.axBOtorchOptimizer: Trial 109 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.02570901606580196), 'Gfrac2_JV_nrmse_linear': np.float64(0.026816401592895847), 'Gfrac3_JV_nrmse_linear': np.float64(0.023299977678952644)}
[INFO 01-20 10:58:06] optimpv.axBOtorchOptimizer: Trial 110 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.019704014727627367), 'Gfrac2_JV_nrmse_linear': np.float64(0.017864636590399923), 'Gfrac3_JV_nrmse_linear': np.float64(0.0177829402832138)}
[INFO 01-20 10:58:11] optimpv.axBOtorchOptimizer: Trial 111 with parameters: {'l2.mu_n': -7.435314781542781, 'l2.mu_p': -7.8183714448004995, 'l2.N_t_bulk': 16.102561603600176, 'l2.preLangevin': -2.6187906924831026, 'R_series': 1e-06, 'R_shunt': 3.10575892848213, 'l2.G_ehp': 1.432203910005841e+28}
[INFO 01-20 10:58:11] optimpv.axBOtorchOptimizer: Trial 112 with parameters: {'l2.mu_n': -7.759664744034016, 'l2.mu_p': -7.829307373066891, 'l2.N_t_bulk': 16.36576718979511, 'l2.preLangevin': -2.7101033514383834, 'R_series': 1.7228115697055714e-06, 'R_shunt': 0.04249226479458915, 'l2.G_ehp': 1.448448287351258e+28}
[INFO 01-20 10:58:12] optimpv.axBOtorchOptimizer: Trial 111 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.040730652597175815), 'Gfrac2_JV_nrmse_linear': np.float64(0.04641710438840147), 'Gfrac3_JV_nrmse_linear': np.float64(0.043729607745959215)}
[INFO 01-20 10:58:12] optimpv.axBOtorchOptimizer: Trial 112 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.022299088917175313), 'Gfrac2_JV_nrmse_linear': np.float64(0.029121340932257524), 'Gfrac3_JV_nrmse_linear': np.float64(0.024678218024318986)}
[INFO 01-20 10:58:17] optimpv.axBOtorchOptimizer: Trial 113 with parameters: {'l2.mu_n': -7.816578710616813, 'l2.mu_p': -7.679978982695621, 'l2.N_t_bulk': 16.683257286275445, 'l2.preLangevin': -2.6294723490765564, 'R_series': 1.5089982920324945e-06, 'R_shunt': 1.114068933298983, 'l2.G_ehp': 1.40669988214061e+28}
[INFO 01-20 10:58:17] optimpv.axBOtorchOptimizer: Trial 114 with parameters: {'l2.mu_n': -7.8857622950955335, 'l2.mu_p': -7.6371509189466025, 'l2.N_t_bulk': 16.70017231466212, 'l2.preLangevin': -2.451887004596578, 'R_series': 1e-06, 'R_shunt': 0.3302766849142326, 'l2.G_ehp': 1.3749133023443778e+28}
[INFO 01-20 10:58:18] optimpv.axBOtorchOptimizer: Trial 113 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.020543113866962736), 'Gfrac2_JV_nrmse_linear': np.float64(0.009086776987329343), 'Gfrac3_JV_nrmse_linear': np.float64(0.01212258948827405)}
[INFO 01-20 10:58:18] optimpv.axBOtorchOptimizer: Trial 114 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.04687264637427102), 'Gfrac2_JV_nrmse_linear': np.float64(0.01063466975846358), 'Gfrac3_JV_nrmse_linear': np.float64(0.030616754858865888)}
[INFO 01-20 10:58:22] optimpv.axBOtorchOptimizer: Trial 115 with parameters: {'l2.mu_n': -7.622693848159595, 'l2.mu_p': -7.725058175336358, 'l2.N_t_bulk': 17.297285290711862, 'l2.preLangevin': -2.785614001306985, 'R_series': 1e-06, 'R_shunt': 0.07390493599400659, 'l2.G_ehp': 1.3897343687317084e+28}
[INFO 01-20 10:58:22] optimpv.axBOtorchOptimizer: Trial 116 with parameters: {'l2.mu_n': -7.760000557077222, 'l2.mu_p': -7.829689928754295, 'l2.N_t_bulk': 16.35279869776187, 'l2.preLangevin': -2.70803309131957, 'R_series': 1.7288811616950954e-06, 'R_shunt': 0.04338463555007783, 'l2.G_ehp': 1.4491029751108793e+28}
[INFO 01-20 10:58:23] optimpv.axBOtorchOptimizer: Trial 115 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.028436458689152972), 'Gfrac2_JV_nrmse_linear': np.float64(0.02963887908418912), 'Gfrac3_JV_nrmse_linear': np.float64(0.02836073391670984)}
[INFO 01-20 10:58:23] optimpv.axBOtorchOptimizer: Trial 116 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.021894675304994917), 'Gfrac2_JV_nrmse_linear': np.float64(0.028357149377196543), 'Gfrac3_JV_nrmse_linear': np.float64(0.02410676660227814)}
[INFO 01-20 10:58:27] optimpv.axBOtorchOptimizer: Trial 117 with parameters: {'l2.mu_n': -7.739494808079801, 'l2.mu_p': -7.502059016850524, 'l2.N_t_bulk': 16.152941881850097, 'l2.preLangevin': -2.738948267194706, 'R_series': 1.4863983030570167e-06, 'R_shunt': 0.30485255928157134, 'l2.G_ehp': 1.4405473651062012e+28}
[INFO 01-20 10:58:27] optimpv.axBOtorchOptimizer: Trial 118 with parameters: {'l2.mu_n': -7.640140622112133, 'l2.mu_p': -7.446746927432985, 'l2.N_t_bulk': 16.619130594284737, 'l2.preLangevin': -2.812313955737837, 'R_series': 1.7296884760277156e-06, 'R_shunt': 6.29284538513133, 'l2.G_ehp': 1.430697730041766e+28}
[INFO 01-20 10:58:28] optimpv.axBOtorchOptimizer: Trial 117 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.018854677502537522), 'Gfrac2_JV_nrmse_linear': np.float64(0.027173239896175653), 'Gfrac3_JV_nrmse_linear': np.float64(0.022610402838729785)}
[INFO 01-20 10:58:28] optimpv.axBOtorchOptimizer: Trial 118 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.022764944038311485), 'Gfrac2_JV_nrmse_linear': np.float64(0.03685335274748386), 'Gfrac3_JV_nrmse_linear': np.float64(0.029062929181105295)}
[INFO 01-20 10:58:32] optimpv.axBOtorchOptimizer: Trial 119 with parameters: {'l2.mu_n': -7.762908713875354, 'l2.mu_p': -7.819197949288901, 'l2.N_t_bulk': 17.201876023706706, 'l2.preLangevin': -2.635781604405861, 'R_series': 6.049861733671926e-06, 'R_shunt': 5.784015607011432, 'l2.G_ehp': 1.4434767341214883e+28}
[INFO 01-20 10:58:32] optimpv.axBOtorchOptimizer: Trial 120 with parameters: {'l2.mu_n': -7.777161044332269, 'l2.mu_p': -7.886989743903751, 'l2.N_t_bulk': 16.0, 'l2.preLangevin': -2.795514492821579, 'R_series': 1e-06, 'R_shunt': 1.9365280222405392, 'l2.G_ehp': 1.3946668362845666e+28}
[INFO 01-20 10:58:33] optimpv.axBOtorchOptimizer: Trial 119 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.010300527380300255), 'Gfrac2_JV_nrmse_linear': np.float64(0.012767722696509966), 'Gfrac3_JV_nrmse_linear': np.float64(0.006959615643752893)}
[INFO 01-20 10:58:33] optimpv.axBOtorchOptimizer: Trial 120 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.021524622647693552), 'Gfrac2_JV_nrmse_linear': np.float64(0.029147869165075398), 'Gfrac3_JV_nrmse_linear': np.float64(0.020670560257019115)}
[INFO 01-20 10:58:39] optimpv.axBOtorchOptimizer: Trial 121 with parameters: {'l2.mu_n': -7.976936423867339, 'l2.mu_p': -7.6243548524723845, 'l2.N_t_bulk': 17.67975655489896, 'l2.preLangevin': -2.486361611197918, 'R_series': 4.543928139109357e-06, 'R_shunt': 3.6029889210936603, 'l2.G_ehp': 1.4780044225087333e+28}
[INFO 01-20 10:58:39] optimpv.axBOtorchOptimizer: Trial 122 with parameters: {'l2.mu_n': -7.6468723633524185, 'l2.mu_p': -7.876760165188857, 'l2.N_t_bulk': 17.22058066024924, 'l2.preLangevin': -2.694113078005097, 'R_series': 1.0288526473960356e-05, 'R_shunt': 15.550604804966905, 'l2.G_ehp': 1.4286296022026976e+28}
[INFO 01-20 10:58:39] optimpv.axBOtorchOptimizer: Trial 121 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.02751448963325443), 'Gfrac2_JV_nrmse_linear': np.float64(0.014640982147148087), 'Gfrac3_JV_nrmse_linear': np.float64(0.015031147123491646)}
[INFO 01-20 10:58:39] optimpv.axBOtorchOptimizer: Trial 122 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.011986655246285963), 'Gfrac2_JV_nrmse_linear': np.float64(0.010771526401375285), 'Gfrac3_JV_nrmse_linear': np.float64(0.008600237758883897)}
[INFO 01-20 10:58:45] optimpv.axBOtorchOptimizer: Trial 123 with parameters: {'l2.mu_n': -7.2558283692674905, 'l2.mu_p': -8.014597802209291, 'l2.N_t_bulk': 16.54541264614812, 'l2.preLangevin': -3.0, 'R_series': 6.517237524027588e-06, 'R_shunt': 0.7629500650173799, 'l2.G_ehp': 1.432906131562397e+28}
[INFO 01-20 10:58:45] optimpv.axBOtorchOptimizer: Trial 124 with parameters: {'l2.mu_n': -7.439876040001184, 'l2.mu_p': -7.902723519634308, 'l2.N_t_bulk': 16.168338542092354, 'l2.preLangevin': -3.0, 'R_series': 1.8735382957577898e-06, 'R_shunt': 0.13900254842785786, 'l2.G_ehp': 1.453758339592871e+28}
[INFO 01-20 10:58:46] optimpv.axBOtorchOptimizer: Trial 123 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.01715523290749567), 'Gfrac2_JV_nrmse_linear': np.float64(0.02215373870221879), 'Gfrac3_JV_nrmse_linear': np.float64(0.018481223571468763)}
[INFO 01-20 10:58:46] optimpv.axBOtorchOptimizer: Trial 124 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.020116824337305033), 'Gfrac2_JV_nrmse_linear': np.float64(0.018580688652892648), 'Gfrac3_JV_nrmse_linear': np.float64(0.018440555533144613)}
[INFO 01-20 10:58:51] optimpv.axBOtorchOptimizer: Trial 125 with parameters: {'l2.mu_n': -7.825665300024864, 'l2.mu_p': -7.7062194855944135, 'l2.N_t_bulk': 16.75479802169965, 'l2.preLangevin': -2.511834230335557, 'R_series': 7.381130702260733e-06, 'R_shunt': 1.2612830022821075, 'l2.G_ehp': 1.4321058203031698e+28}
[INFO 01-20 10:58:51] optimpv.axBOtorchOptimizer: Trial 126 with parameters: {'l2.mu_n': -7.814767901213235, 'l2.mu_p': -7.821942990514742, 'l2.N_t_bulk': 16.919388196946546, 'l2.preLangevin': -2.6017968838954566, 'R_series': 2.8229125110506833e-06, 'R_shunt': 7.1196500815935035, 'l2.G_ehp': 1.4527777232714884e+28}
[INFO 01-20 10:58:51] optimpv.axBOtorchOptimizer: Trial 125 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.025401307707031986), 'Gfrac2_JV_nrmse_linear': np.float64(0.0061159303817485446), 'Gfrac3_JV_nrmse_linear': np.float64(0.015594455522475665)}
[INFO 01-20 10:58:51] optimpv.axBOtorchOptimizer: Trial 126 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.01122588205014474), 'Gfrac2_JV_nrmse_linear': np.float64(0.01602999835588994), 'Gfrac3_JV_nrmse_linear': np.float64(0.007990418353526119)}
[INFO 01-20 10:58:57] optimpv.axBOtorchOptimizer: Trial 127 with parameters: {'l2.mu_n': -7.49510520565253, 'l2.mu_p': -7.781076188931906, 'l2.N_t_bulk': 17.787805832438597, 'l2.preLangevin': -2.721780255407745, 'R_series': 3.818159255427882e-05, 'R_shunt': 57.29075474844822, 'l2.G_ehp': 1.4330616493246297e+28}
[INFO 01-20 10:58:57] optimpv.axBOtorchOptimizer: Trial 128 with parameters: {'l2.mu_n': -7.4918167828387165, 'l2.mu_p': -7.773843887621186, 'l2.N_t_bulk': 17.809303986351033, 'l2.preLangevin': -2.750570658871516, 'R_series': 4.305817904898809e-05, 'R_shunt': 61.83077708550444, 'l2.G_ehp': 1.429935062712018e+28}
[INFO 01-20 10:58:57] optimpv.axBOtorchOptimizer: Trial 127 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.01603099974813521), 'Gfrac2_JV_nrmse_linear': np.float64(0.012858209938121931), 'Gfrac3_JV_nrmse_linear': np.float64(0.013843823364043597)}
[INFO 01-20 10:58:57] optimpv.axBOtorchOptimizer: Trial 128 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.012658049599117352), 'Gfrac2_JV_nrmse_linear': np.float64(0.009844648034252605), 'Gfrac3_JV_nrmse_linear': np.float64(0.009898097220222704)}
[INFO 01-20 10:59:03] optimpv.axBOtorchOptimizer: Trial 129 with parameters: {'l2.mu_n': -7.797732883170839, 'l2.mu_p': -7.761722163056553, 'l2.N_t_bulk': 17.079877233442012, 'l2.preLangevin': -2.54710336428961, 'R_series': 3.910088649957467e-06, 'R_shunt': 1.7390836750811074, 'l2.G_ehp': 1.4337300890204372e+28}
[INFO 01-20 10:59:03] optimpv.axBOtorchOptimizer: Trial 130 with parameters: {'l2.mu_n': -7.812333514796988, 'l2.mu_p': -7.782620779737549, 'l2.N_t_bulk': 17.373128687659445, 'l2.preLangevin': -2.4832480721073624, 'R_series': 4.926184340602532e-06, 'R_shunt': 1.8282306871570753, 'l2.G_ehp': 1.4431091210004847e+28}
[INFO 01-20 10:59:03] optimpv.axBOtorchOptimizer: Trial 129 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.020532599077894013), 'Gfrac2_JV_nrmse_linear': np.float64(0.007099088585352849), 'Gfrac3_JV_nrmse_linear': np.float64(0.012521536457102245)}
[INFO 01-20 10:59:03] optimpv.axBOtorchOptimizer: Trial 130 completed with results: {'Gfrac1_JV_nrmse_linear': np.float64(0.025152771824037426), 'Gfrac2_JV_nrmse_linear': np.float64(0.006609924142445539), 'Gfrac3_JV_nrmse_linear': np.float64(0.015391635554105892)}
[7]:
# 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_main.params = optimizer.params # update the params list in the agent with the best parameters
# print the best parameters
print('Best parameters:')
for p in optimizer.params:
print(p.name, 'fitted value:', p.value)
print('\nSimSS command line:')
print(jv_main.get_SIMsalabim_clean_cmd(jv_main.params)) # print the simss command line with the best parameters
Best parameters:
l2.mu_n fitted value: 3.238961904466114e-08
l2.mu_p fitted value: 1.814838494350394e-08
l2.N_t_bulk fitted value: 8.441128577616348e+17
l2.preLangevin fitted value: 0.0016157700608006532
R_series fitted value: 5.397964167467749e-05
R_shunt fitted value: 70.57835445866161
l2.G_ehp fitted value: 1.4286430730617906e+28
SimSS command line:
./simss -l2.mu_n 3.238961904466114e-08 -l2.mu_p 1.814838494350394e-08 -l2.N_t_bulk 8.441128577616348e+17 -l2.preLangevin 0.0016157700608006532 -R_series 5.397964167467749e-05 -R_shunt 70.57835445866161 -l2.G_ehp 1.4286430730617906e+28
[8]:
# Plot optimization results
data = ax_client.summarize()
all_metrics = optimizer.all_metrics
plt.figure()
plt.plot(np.minimum.accumulate(data[all_metrics]), label="Best value seen so far")
plt.yscale("log")
plt.xlabel("Iteration")
plt.ylabel("Target metric: " + metric + " with " + loss + " loss")
plt.legend()
plt.title("Best value seen so far")
plt.show()
[9]:
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)
cm = matplotlib.colormaps.get_cmap('viridis')
df = get_df_from_ax(params, optimizer)
# create pareto df
dum_dic = {}
for eto in pareto:
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()
[10]:
# 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.exploration_density import *
best_parameters = {}
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, optimizer_type = 'ax')
[11]:
# rerun the simulation with the best parameters
yfit = jv_main.run(parameters={}) # run the simulation with the best parameters
res_dic = jv_main.run_Ax(parameters={})
keys = list(res_dic.keys())
print('Best combined target metric:', res_dic[keys[0]])
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()
Best combined target metric: 0.005653415170981986
[12]:
# 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('ZnO',session_path)
sim.clean_up_output('PM6_L8BO',session_path)
sim.clean_up_output('BM_HTL',session_path)
sim.clean_up_output('simulation_setup_PM6_L8BO',session_path)