mx_verify module

Step to allow global fitting of multiple measurements ti simulation data. Step is based upon XVerify (see x_verify.py)

Author: Pascal Kuthe | PascalKuthe@pm.me

class DMT.extraction.mx_verify.MXVerify(name, mcard, lib, op_definition, DutCircuitClass, relevant_duts=None, model_deemb_method=None, verify_area_densities=False, **kwargs)[source]

Bases: XStep

add_to_xtraction(xtraction)[source]

Sets the duts from xtraction to the given step

Parameters:
xtractionXTraction]
calc_all(*args, **kwargs)[source]

This method needs to start the calculation of the function to be optimized self.f_0 and its jacobian self.jac .

Calculating the jacobian here allows to use DMT’s parallel computing features, which might be relevant for circuit or TCAD simulations.

This function is called inside fit_function.

Parameters:
xdatanp.ndarray

The argument of the fit_function, scipy.curve_fit wants to calculate.

paras_modelMcParameterCollection

Parameters of the model to calculate. Can bei either a full modelcard or only a McParameterCollection.

jac{True, False}, optional

This boolean controls wheather or not the jacobian is computed.

reinitBoolean

What is this?

n_optimizeinteger

The number of parameters to optimize. Not really needed but for memoization in XVerify.

Returns:
self.data_modeldict{}

This is only returned in order to enable memoization. It is actually not really needed for anything else.

child_steps: List[XVerify][source]
ensure_input_correct()[source]

Search for all required columns in the data frames.

ensure_input_correct_per_dataframe(dataframe, dut=None, key=None, **_kwargs)[source]
Parameters:
dataframeDMT.core.DataFrame

Dataframe to ensure columns

dutDutView, optional

The corresponding dut (if dut parameters are needed)

keystr, optional

The corresponding key (if ambient temperature is needed)

Raises:
KeyError

If a needed column is not in the frame.

fit(line, paras_model, dut=None)[source]

Implementation is similar to the one in XVerify However in this implementation the data for each quantity is concatenated to form the full data Furthermore the data is normalized for each quantity individually and the bounds of each subset are applied to the line

fit_along: List[SpecifierStr][source]
get_bool_array(line_ref, bounds=None)[source]

Return a boolean array, where True means that the value in line_ref is inside the bounds.

Parameters:
line_ref{}

A dictionarray of a line that has at least the keys “x” and “y”

boundsDMT.extraction.XBounds, YBounds or XYBounds

The boundaries that shall be used to determine which values in bool_array are true

Returnsnp.array()

An array that has “True” where the value in “x” or “y”, depending on the type of bounds, is inside the bounds.

get_description()[source]

Return a tex description of this XStep. Used for generating the documentation. If not implemented, there is no description for this XStep in the documentation.

get_dut(line, paras_model)[source]

Overwritten from XStep. See doc in XStep.

get_tex()[source]

Return a tex Representation of the Model that is beeing fitted. This can then be displayed in the UI.

init_data()[source]
init_data_reference()[source]

Find the required data in the user supplied dataframe or database and write them into data_model attribute of XStep object.

iynorms: List[Type[IYNorm]][source]
main_plot()[source]

Overwrite main plot.

order_data_reference()[source]

Order the x,y,y_ref data in data_reference with x

quantity_fit: List[SpecifierStr][source]
set_initial_guess(data_reference)[source]

This methods should set an initial guess for the optimization parameters from the available reference_data array. If no initial guess is set for a parameter, the value for the initial guess is taken form the modelcard. For steps which use a simulation of a DutCircuit, here the sweep should be defined, too.

sort_line(line)[source]

Sort all values in line with increasing “x” or “y” or self.sort_by and cast everything to numpy.

Returns:
line :{str:[]}

The sorted line.

staticMetaObject = PySide6.QtCore.QMetaObject("MXVerify" inherits "XStep": )[source]
y_data_len: List[int][source]
y_normalizers: List[IYNorm][source]

Step class inherits always from XStep.

Parameters:
namestr

Name of this specific xcjei object.

mcardMCard or McParameterCollection

This MCard needs to hold all relevant parameters of the model and is used for simulations or model equation calculations.

libDutLib

This library of devices needs to hold a relevant reference dut with data in one or more DataFrames.

op_definition{keyfloat, tuple or list}