TCAD simulation DuTs

TCAD (Technology Computer-Aided Design) simulators often simulate just single devices and small volumes. As they allow to obtain special data from inside the device, they are different from circuit simulators.

DutTcad submodules

TCAD class

Provdes a class for TCAD DuTs

Provides a interface superclass. Here all methods which must be implemented by all TCAD interfaces are collected.

Author: Mario Krattenmacher | Mario.Krattenmacher@semimod.de

class DMT.core.dut_tcad.DutTcad(database_dir, name, dut_type, inp_structure, **kwargs)[source]

Bases: DutView

Superclass for common methods and attributes of TCAD DuTs

Makes a TCAD simulator like DEVICE or Hdev useable by DMT

Parameters:
database_dirstr

This is the directory were the DUT will create its database.

namestr

Prefix for the database

dut_typeDutType

Type of the DUT.

nodesstr

Strings with comma separated node names of DUT. If nodes is None, nodes will be requested from Dut_type class.

inp_structurestr or InpTcad

One of 3 different possibilities: special obj for create_inp_header(), string with path to file or direct input file string

simulator_commandstr

Command to start the correct TCAD simulator

simulator_argumentslist[str]

List of arguments for the simulator command, will be added one by one before the input file.

Attributes:
sim_commandstr

Command to start the correct TCAD simulator

sim_argslist[str]

List of arguments for the simulator command, will be added one by one before the input file.

Methods

inp_header(value)

Returns input header of a simulation input file, or sets it to a new value, removing attached files.

inp_structure(value)

Returns input structure for DUT, or sets it while automatically creating a new header.

get_hash()

Returns hash if inp_header is set.

get_start_sim_command()

Returns command to start a specific type of simulation (DEVICE, Hdev, …).

run_sim(sweep)

Starts a simulation.

create_inp_header(inp_structure)

Creates an inp_header for a given inp_structure. Has to be set by inheriting class.

set_param()

Enables setting model parameters for a simulation. Has to be set by in heriting class.

get_param()

Enables getting model parameters for a simulation. Has to be set by in heriting class.

create_inp_header(inp_structure)[source]

Creates the inp_header from the given parameter object.

Parameters:
inp_structure

Type and content depends on implementation of inheriting class!

Returns:
str

Input circuit

classmethod from_json(json_content: Dict, classes_technology: List[Type[Technology]], subclass_kwargs: Dict | None = None) DutTcad[source]

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

Calls the from_json method of DutView with all dictionary inside the “parent” keyword. Afterwards the additional parameters are set correctly.

Parameters:
json_contentdict

Readed dictionary from a saved json DutTcad.

classes_technologyList[Type[Technology]]

All possible technologies this loaded DutTcad can have. One will be choosen according to the serialized technology loaded from the file.

subclass_kwargsDict, optional

Additional kwargs necessary to create the concrete subclassed DutView.

Returns:
DutTcad

Loaded object.

get_hash()[source]

Returns a md5 hash generated from self.inp_header, if it is not set, this will return False!

In case a InpStructure is set, this always recreates the inp_header :/.

Returns:
str or False
info_json(**_kwargs) Dict[source]

Returns a dict with serializeable content for the json file to create.

The topmost dict MUST have only one key: The string casted class name. Inside the parameters are:

  • A version key,

  • all extra parameters of DutTcad compared to DutView and

  • the info_json of DutView.

Returns:
dict

str(DutTcad): serialized content

property inp_header[source]

Getter method for the input header of the simulation input file