xtraction module

Xtraction is a improved list of xsteps.

By using this one can change between gui and script and also exchange the order of steps including boundaries of extraction area and parameters

Offers:

  • List of steps, which all work on the same DutViews for reference and extraction

  • Modelcard management using a global and local modelcards and push_modelcard/pull_modelcard.

  • Saving and loading of whole extractions

  • Access point for XtractionGui

class DMT.extraction.xtraction.IterXtraction(xtraction, pull, push, initial_guess)[source]

Bases: object

Xtraction steps iterator

use with:

for i_step, step in xtraction.iter_steps(pull=True, push=False, initial_guess=[0, 4])
    step.extract()
Parameters:
pullbool or list, optional
Is done before the current step is returned from the iterator.

In case list is given, it must be a list of numbers in which pull is used.

pushbool or list, optional

Is done before the next step is returned from the iterator. In case list is given, it must be a list of numbers in which push is used.

initial_guessbool or list, optional

Is done before the current step is returned from the iterator. In case list is given, it must be a list of numbers in which initial guess is used.

class DMT.extraction.xtraction.Xtraction(name: str, mcard: MCard, save_dir: str | Path, lib: DutLib, autosave_pushed_modelcards: Literal['no', 'yes', 'code', 'code_compressed'] = 'no', technology: Technology | None = None)[source]

Bases: QObject

Xtraction objects are a container for XStep objects and can be used to define a model parameter extraction flow. Xtraction objects can be displayed in the DMT.extraction.gui and provide routines for plotting and documenting a parameter extraction.

Parameters:
mcardMCard

This MCard needs to hold all parameters (incl. boundaries) of the model and is used for simulations or model equation calculations.

save_dirstr

Path to folder where all databases are saved.

dut_refDutView

This device needs to hold relevant reference data in one or more DataFrames.

dut_extDutCircuit

The extraction Dut, whose model parameters shall be extracted; needed for model circuit simulations.

Attributes:
mcardMCard

This MCard needs to hold all parameters (incl. boundaries) of the model and is used for simulations or model equation calculations.

dirsdict{key: str}

Path to folders where all databases are saved.

libDutLib

This library holds all devices that are relevant for the extraction. This lib is passed to all xsteps.

available_xstepslist[XStep]

List of xsteps for this extraction.

curr_xstepXStep

Current active xstep. All methods work with this xstep.

autosave_pushed_modelcards{“no”,”yes”,”code”, “code_compressed”}, optional

If “yes”, saves each pushed modelcard with the timestamp as filename in the xtraction folder. If “code”, it turns on code saving in the modelcards to save. If “code_compressed”, the code is compressed to save.

activate_xstep(step_name)[source]

Sets self.curr_xstep to the step with the name step_name.

Parameters:
step_namestr

Name of the step to set.

add_xstep(xstep: XStep)[source]

Adds a step to the extraction flow.

Parameters:
xsteplist[XStep]
adjust_xstep(xstep: XStep)[source]

Sets the duts from xtraction to the given step

Parameters:
xsteplist[XStep]
check_dims()[source]
extract()[source]

Ask the current xstep to optimize itself.

property global_plot_methods[source]
iter_steps(pull=True, push=True, initial_guess=False)[source]

Get an step iterator

use with:

for i_step, step in xtraction.iter_steps(pull=True, push=False, initial_guess=[0, 4])
    step.extract()
Parameters:
pullbool or list, optional

Is done before the current step is returned from the iterator. In case list is given, it must be a list of numbers in which pull is used.

pushbool or list, optional

Is done before the next step is returned from the iterator. In case list is given, it must be a list of numbers in which push is used.

initial_guessbool or list, optional

Is done before the current step is returned from the iterator. In case list is given, it must be a list of numbers in which initial guess is used.

Returns:
iteratorIterXtraction
static load(path_extraction)[source]

Static class method. Loads a DutView object from a pickle file with full path save_dir.

Parameters:
path_extractionstr

Path to the pickled Xtraction object that shall be loaded.

Returns:
Xtraction

Loaded object from the pickle file.

mcardChanged[source]
next_xstep()[source]

Places the next xstep on curr_xstep.

previous_xstep()[source]

Places the previous xstep on curr_xstep.

pull_global_mcard(initial_guess=False, mcard=None)[source]

Set all parameters that exist in both self.mcard and self.curren_xstep.mcard to self.current_xstep.mcard

push_local_mcard(mcard=None)[source]

Set the parameters in my mcard according to the paramaters_to_push attribute of the current_xstep. And saves it to the local mcard folder with the time as name.

save()[source]

Saves the current extraction status in the given directory. The extraction status includes the steps, the modelcard and the current duts.

set_technology(technology)[source]

Set a technology for this extraction that holds necessary technology-specific scaling and extraction routines.

Just use the setter propery. This method is deprecated!

staticMetaObject = PySide6.QtCore.QMetaObject("Xtraction" inherits "QObject": Methods:   #4 type=Signal, signature=stepChanged()   #5 type=Signal, signature=mcardChanged() )[source]
step(step, bounds)[source]

perform an extraction of XStep step using bounds. Before, pull global Mcard, then push local Mcard.

stepChanged[source]
stop()[source]
property technology[source]

Technology of this xtraction.

Returns:
Technology

Directly the set technology