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_dir
str
This is the directory were the DUT will create its database.
- name
str
Prefix for the database
- dut_type
DutType
Type of the DUT.
- nodes
str
Strings with comma separated node names of DUT. If nodes is None, nodes will be requested from Dut_type class.
- inp_structure
str
orInpTcad
One of 3 different possibilities: special obj for create_inp_header(), string with path to file or direct input file string
- simulator_command
str
Command to start the correct TCAD simulator
- simulator_arguments
list
[str
] List of arguments for the simulator command, will be added one by one before the input file.
- database_dir
- Attributes:
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_content
dict
Readed dictionary from a saved json DutTcad.
- classes_technology
List
[Type
[Technology
]] All possible technologies this loaded DutTcad can have. One will be choosen according to the serialized technology loaded from the file.
- subclass_kwargs
Dict
,optional
Additional kwargs necessary to create the concrete subclassed DutView.
- json_content
- 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 :/.
- 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