from QuantumATK import *
from AddOns.FET2D.Study.FET2DSentaurusModelCalibration import FET2DSentaurusModelCalibration

# Define previous parameter extraction results.
parameter_extraction_results = {
    'channel_material_name': 'MoS2',
    'contact_material_name': 'Gold',
    'channel_thickness': 1,
    'maxE': 1.1 * eV,
    'contact_orientation': (0, 0, 1),
    'NBands': 8,
    'chi': 4.25 * eV,
    'eps': 3.38,
    'H': 0.0006516 * um,
    'BG': 1.699 * eV,
    'qatk_bands': '0.367\n1.081\n1.923\n0.989\n0.346\n0.801\n1.773\n0.989\n0.254\n1.081\n0.618\n0.989\n0.346\n0.801\n1.773\n0.989\n0.367\n1.081\n1.923\n0.989\n0.344\n0.801\n0.433\n0.989\n0.254\n1.081\n0.618\n0.989\n0.344\n0.801\n0.433\n0.989\n0.452\n0.484\n0.911\n0.85\n0.485\n0.484\n1.215\n0.85\n0.527\n0.484\n1.589\n0.85\n0.485\n0.484\n1.215\n0.85\n0.312\n0.714\n0.542\n0.989\n0.204\n1.311\n1.155\n0.989\n0.713\n0.714\n1.153\n0.989\n0.204\n1.311\n1.155\n0.989',
    'PhiSB': 0.276 * eV,
}

# Define the Model Calibration Study Object.
model_calibration = FET2DSentaurusModelCalibration(
    filename='fet2d_model_calibration_1642514480.76.hdf5',
    object_id='FET2DSentaurusModelCalibration_0',
    workfunction=7.835 * eV,
    parameter_extraction_results=parameter_extraction_results,
    log_filename_prefix_default='fet2d_model_calibration_',
)

# Start the calculations.
model_calibration.update()

# Extract the results.
model_calibration_results = model_calibration.extractionResults()

