Introduction

This page provides a brief introduction on the basic workflow and classes used in DMT. The focus of this guide is the core (DMT.core). Module of DMT, the only publicly available module at this time. The goal of this intro is to compare measured data to simulation results of a Spice-Gummel-Poon compact model.

Any DMT scripts begins with the import of the modules and classes that are needed for the use case at hand. For simplicity, we will import the full core module and also define a path to the folder where our data is located:

from pathlib import Path
from DMT import core
path_data = Path(__file__).resolve().parent / "_static" / "intro"

The source code of this example is available in the Gitlab repository here Read Measurement Data ———————

First, lets import measurement data from a .csv-File. The file has the following structure and represents typical measurement data of a bipolar transistor at 300 K in common-emitter configuration. At each DC operation point an AC-data at two frequencies is available. Pay attention to the inconsistent naming of the columns. Keeping the names of electrical quantities consistent is an issue that is handled by DMT during read-in, as will be shown next.

Measurement data at 300 K

V_c

V_E

V_B

I_E_

I_C

I_b

FREQ

Y_21

Y_11

Y22

Y_12

0

0

0

0

0

0

1000000

-3.06350793e-12-1.60584341e-07j

8.72507958e-12+2.96160585e-07j

3.98877664e-12+3.43658038e-07j

-3.06328894e-12-1.60584341e-07j

0

0

0

0

0

0

1258930

-4.27020658e-12-2.02164445e-07j

1.25895396e-11+3.72529034e-07j

5.1432059e-12+4.30271036e-07j

-4.26998758e-12-2.02164445e-07j

0

0

0

0

0

0

1584890

-6.18261255e-12-2.54508516e-07j

1.89350322e-11+4.71249226e-07j

6.79447903e-12+5.43892388e-07j

-6.18239356e-12-2.54508516e-07j

0

0

0

0

0

0

1995260

-9.21364444e-12-3.20407512e-07j

2.87245986e-11+5.92321159e-07j

9.5455319e-12+6.85453419e-07j

-9.21342544e-12-3.20407512e-07j

0

0

0

0

0

0

2511890

-1.40175594e-11-4.033702e-07j

4.43240664e-11+7.4133277e-07j

1.42437224e-11+8.58679416e-07j

-1.40173404e-11-4.033702e-07j

0

0

0

0

0

0

3162280

-2.16311561e-11-5.07812649e-07j

6.91366328e-11+9.35047864e-07j

2.16041093e-11+1.08033419e-06j

-2.16309371e-11-5.07812649e-07j

0

0

0

0

0

0

3981070

-3.36978454e-11-6.392975e-07j

1.08674162e-10+1.17719173e-06j

3.30431687e-11+1.36718154e-06j

-3.36976264e-11-6.392975e-07j

0

0

0

0

0

0

5011870

-5.28223312e-11-8.04827835e-07j

1.7091205e-10+1.48266553e-06j

5.07286984e-11+1.72108412e-06j

-5.28221122e-11-8.04827835e-07j

0

0

0

0

0

0

6309570

-8.31325886e-11-1.01321813e-06j

2.6972415e-10+1.85519456e-06j

7.96874783e-11+2.16811895e-06j

-8.31323696e-11-1.01321813e-06j

0

0

0

0

0

0

7943280

-1.31171186e-10-1.27556636e-06j

4.26474687e-10+2.34693288e-06j

1.25139214e-10+2.71201134e-06j

-1.31170967e-10-1.27556636e-06j

0

0

0

0

0

0

10000000

-2.07307283e-10-1.60584335e-06j

6.74706018e-10+2.95788049e-06j

1.96775258e-10+3.43471765e-06j

-2.07307064e-10-1.60584335e-06j

0.1

2.05072477e-16

0.1

-2.05072477e-13

1.00254762e-13

1.04817715e-13

1000000

-3.07238561e-12-1.60584341e-07j

9.32398068e-12+3.04542488e-07j

3.93126069e-12+3.39001425e-07j

-3.08193547e-12-1.60584341e-07j

0.1

2.05072477e-16

0.1

-2.05072477e-13

1.00254762e-13

1.04817715e-13

1258930

-4.2899907e-12-2.02164445e-07j

1.34520728e-11+3.83704905e-07j

5.10429517e-12+4.246831e-07j

-4.29954055e-12-2.02164445e-07j

0.1

2.05072477e-16

0.1

-2.05072477e-13

1.00254762e-13

1.04817715e-13

1584890

-6.21968148e-12-2.54508516e-07j

2.01930458e-11+4.84287742e-07j

6.76587765e-12+5.36441808e-07j

-6.22923133e-12-2.54508516e-07j

0.1

2.05072477e-16

0.1

-2.05072477e-13

1.00254762e-13

1.04817715e-13

1995260

-9.27810858e-12-3.20407512e-07j

3.05984994e-11+6.09084965e-07j

9.48680508e-12+6.76140193e-07j

-9.28765844e-12-3.20407512e-07j

0.1

2.05072477e-16

0.1

-2.05072477e-13

1.00254762e-13

1.04817715e-13

2511890

-1.41254425e-11-4.033702e-07j

4.74078357e-11+7.65547156e-07j

1.39893915e-11+8.47503545e-07j

-1.41349924e-11-4.033702e-07j

0.1

2.05072477e-16

0.1

-2.05072477e-13

1.00254762e-13

1.04817715e-13

3162280

-2.18078528e-11-5.07812649e-07j

7.40101682e-11+9.64850186e-07j

2.10566272e-11+1.06915832e-06j

-2.18174027e-11-5.07812649e-07j

0.1

2.05072477e-16

0.1

-2.05072477e-13

1.00254762e-13

1.04817715e-13

3981070

-3.39836038e-11-6.392975e-07j

1.16144414e-10+1.21444463e-06j

3.21357343e-11+1.34855509e-06j

-3.39931537e-11-6.392975e-07j

0.1

2.05072477e-16

0.1

-2.05072477e-13

1.00254762e-13

1.04817715e-13

5011870

-5.32809415e-11-8.04827835e-07j

1.82773641e-10+1.52736902e-06j

4.95201003e-11+1.69873238e-06j

-5.32904913e-11-8.04827835e-07j

0.1

2.05072477e-16

0.1

-2.05072477e-13

1.00254762e-13

1.04817715e-13

6309570

-8.38651505e-11-1.01321813e-06j

2.88447132e-10+1.92224979e-06j

7.75072069e-11+2.13831663e-06j

-8.38747003e-11-1.01321813e-06j

0.1

2.05072477e-16

0.1

-2.05072477e-13

1.00254762e-13

1.04817715e-13

7943280

-1.32337932e-10-1.27556635e-06j

4.55889051e-10+2.42143869e-06j

1.21582416e-10+2.68220901e-06j

-1.32347482e-10-1.27556635e-06j

0.1

2.05072477e-16

0.1

-2.05072477e-13

1.00254762e-13

1.04817715e-13

10000000

-2.09162166e-10-1.60584335e-06j

7.21160935e-10+3.04728745e-06j

1.91523407e-10+3.39001417e-06j

-2.09171716e-10-1.60584335e-06j

0.2

4.4159056700000003e-16

0.2

-4.41590567e-13

2.12063425e-13

2.29527142e-13

1000000

-2.64759197e-12-1.60584341e-07j

1.03419635e-11+3.13855714e-07j

3.93036398e-12+3.35276135e-07j

-3.1098162e-12-1.60584341e-07j

0.2

4.4159056700000003e-16

0.2

-4.41590567e-13

2.12063425e-13

2.29527142e-13

1258930

-3.88150463e-12-2.02164445e-07j

1.46898815e-11+3.95812099e-07j

4.85098101e-12+4.20026487e-07j

-4.34372886e-12-2.02164445e-07j

0.2

4.4159056700000003e-16

0.2

-4.41590567e-13

2.12063425e-13

2.29527142e-13

1584890

-5.83704006e-12-2.54508516e-07j

2.20193935e-11+4.99188903e-07j

6.62358942e-12+5.30853872e-07j

-6.29926429e-12-2.54508516e-07j

0.2

4.4159056700000003e-16

0.2

-4.41590567e-13

2.12063425e-13

2.29527142e-13

1995260

-8.93642916e-12-3.20407512e-07j

3.34353481e-11+6.29574062e-07j

9.31439141e-12+6.68689612e-07j

-9.39865338e-12-3.20407512e-07j

0.2

4.4159056700000003e-16

0.2

-4.41590567e-13

2.12063425e-13

2.29527142e-13

2511890

-1.38486842e-11-4.033702e-07j

5.13570762e-11+7.91624188e-07j

1.35211656e-11+8.3819032e-07j

-1.43109084e-11-4.033702e-07j

0.2

4.4159056700000003e-16

0.2

-4.41590567e-13

2.12063425e-13

2.29527142e-13

3162280

-2.16339862e-11-5.07812649e-07j

8.01066825e-11+9.98377798e-07j

2.0509145e-11+1.05425716e-06j

-2.20962105e-11-5.07812649e-07j

0.2

4.4159056700000003e-16

0.2

-4.41590567e-13

2.12063425e-13

2.29527142e-13

3981070

-3.39728089e-11-6.39297499e-07j

1.25740813e-10+1.25914812e-06j

3.14536133e-11+1.33365393e-06j

-3.44350331e-11-6.39297499e-07j

0.2

4.4159056700000003e-16

0.2

-4.41590567e-13

2.12063425e-13

2.29527142e-13

5011870

-5.35285988e-11-8.04827834e-07j

1.97772434e-10+1.57952308e-06j

4.81978153e-11+1.67638063e-06j

-5.3990823e-11-8.04827834e-07j

0.2

4.4159056700000003e-16

0.2

-4.41590567e-13

2.12063425e-13

2.29527142e-13

6309570

-8.45224267e-11-1.01321813e-06j

3.11828057e-10+1.98185443e-06j

7.5616208e-11+2.11596489e-06j

-8.49846509e-11-1.01321813e-06j

0.2

4.4159056700000003e-16

0.2

-4.41590567e-13

2.12063425e-13

2.29527142e-13

7943280

-1.33644411e-10-1.27556635e-06j

4.92860849e-10+2.49594449e-06j

1.18532915e-10+2.64495611e-06j

-1.34106636e-10-1.27556635e-06j

0.2

4.4159056700000003e-16

0.2

-4.41590567e-13

2.12063425e-13

2.29527142e-13

10000000

-2.11497563e-10-1.60584335e-06j

7.79465229e-10+3.15159558e-06j

1.86583634e-10+3.34531069e-06j

-2.11959787e-10-1.60584335e-06j

0.3

1.3190316000000002e-15

0.3

-1.3190316e-12

8.59203354e-13

4.5982825e-13

1000000

1.8280746e-11-1.60584342e-07j

1.3304528e-11+3.2689423e-07j

3.87284803e-12+3.31550844e-07j

-3.14930796e-12-1.60584341e-07j

0.3

1.3190316000000002e-15

0.3

-1.3190316e-12

8.59203354e-13

4.5982825e-13

1258930

1.70237344e-11-2.02164446e-07j

1.81164282e-11+4.11644582e-07j

4.92575711e-12+4.15369874e-07j

-4.40631954e-12-2.02164445e-07j

0.3

1.3190316000000002e-15

0.3

-1.3190316e-12

8.59203354e-13

4.5982825e-13

1584890

1.50315912e-11-2.54508518e-07j

2.60158611e-11+5.19677999e-07j

6.59498804e-12+5.25265937e-07j

-6.3984627e-12-2.54508516e-07j

0.3

1.3190316000000002e-15

0.3

-1.3190316e-12

8.59203354e-13

4.5982825e-13

1995260

1.18741813e-11-3.20407514e-07j

3.87048818e-11+6.51925803e-07j

9.25566458e-12+6.61239031e-07j

-9.55587254e-12-3.20407512e-07j

0.3

1.3190316000000002e-15

0.3

-1.3190316e-12

8.59203354e-13

4.5982825e-13

2511890

6.86996854e-12-4.03370202e-07j

5.84361354e-11+8.19563865e-07j

1.31666264e-11+8.28877094e-07j

-1.45600853e-11-4.033702e-07j

0.3

1.3190316000000002e-15

0.3

-1.3190316e-12

8.59203354e-13

4.5982825e-13

3162280

-1.06107495e-12-5.07812651e-07j

8.98647433e-11+1.0356307e-06j

2.00753497e-11+1.04308129e-06j

-2.24911286e-11-5.07812648e-07j

0.3

1.3190316000000002e-15

0.3

-1.3190316e-12

8.59203354e-13

4.5982825e-13

3981070

-1.36308813e-11-6.39297503e-07j

1.39899181e-10+1.3038516e-06j

3.0715679e-11+1.31875277e-06j

-3.50609347e-11-6.39297499e-07j

0.3

1.3190316000000002e-15

0.3

-1.3190316e-12

8.59203354e-13

4.5982825e-13

5011870

-3.3552757e-11-8.04827838e-07j

2.1853279e-10+1.64285302e-06j

4.72026052e-11+1.66147947e-06j

-5.498281e-11-8.04827834e-07j

0.3

1.3190316000000002e-15

0.3

-1.3190316e-12

8.59203354e-13

4.5982825e-13

6309570

-6.51267916e-11-1.01321813e-06j

3.43586315e-10+2.06381082e-06j

7.38388959e-11+2.09361315e-06j

-8.6556844e-11-1.01321812e-06j

0.3

1.3190316000000002e-15

0.3

-1.3190316e-12

8.59203354e-13

4.5982825e-13

7943280

-1.15168343e-10-1.27556636e-06j

5.4193943e-10+2.60025262e-06j

1.15766199e-10+2.62260437e-06j

-1.36598395e-10-1.27556635e-06j

0.3

1.3190316000000002e-15

0.3

-1.3190316e-12

8.59203354e-13

4.5982825e-13

10000000

-1.94478911e-10-1.60584335e-06j

8.56056996e-10+3.27080487e-06j

1.82183313e-10+3.31550836e-06j

-2.15908961e-10-1.60584334e-06j

0.4

2.77003373e-14

0.4

-2.77003373e-11

2.62831194e-11

1.41721793e-12

1000000

9.88393672e-10-1.60584387e-07j

3.29036168e-11+3.42726711e-07j

4.61024323e-12+3.28756876e-07j

-3.20430582e-12-1.60584341e-07j

0.4

2.77003373e-14

0.4

-2.77003373e-11

2.62831194e-11

1.41721793e-12

1258930

9.87104491e-10-2.02164502e-07j

3.86084708e-11+4.30271031e-07j

5.75743036e-12+4.11644584e-07j

-4.49348591e-12-2.02164444e-07j

0.4

2.77003373e-14

0.4

-2.77003373e-11

2.62831194e-11

1.41721793e-12

1584890

9.85061364e-10-2.54508589e-07j

4.72834545e-11+5.43892384e-07j

7.35486449e-12+5.21540646e-07j

-6.53661052e-12-2.54508516e-07j

0.4

2.77003373e-14

0.4

-2.77003373e-11

2.62831194e-11

1.41721793e-12

1995260

9.8182315e-10-3.20407603e-07j

6.12069352e-11+6.83590769e-07j

9.82033195e-12+6.55651096e-07j

-9.77482245e-12-3.20407512e-07j

0.4

2.77003373e-14

0.4

-2.77003373e-11

2.62831194e-11

1.41721793e-12

2511890

9.76690868e-10-4.03370314e-07j

8.32285599e-11+8.60542057e-07j

1.39952495e-11+8.21426513e-07j

-1.49070993e-11-4.03370199e-07j

0.4

2.77003373e-14

0.4

-2.77003373e-11

2.62831194e-11

1.41721793e-12

3162280

9.68556852e-10-5.07812793e-07j

1.18504413e-10+1.08033418e-06j

2.04284356e-11+1.0356307e-06j

-2.3041108e-11-5.07812648e-07j

0.4

2.77003373e-14

0.4

-2.77003373e-11

2.62831194e-11

1.41721793e-12

3981070

9.55665358e-10-6.3929768e-07j

1.74144216e-10+1.36718153e-06j

3.0769432e-11+1.3075769e-06j

-3.59325913e-11-6.39297498e-07j

0.4

2.77003373e-14

0.4

-2.77003373e-11

2.62831194e-11

1.41721793e-12

5011870

9.35233639e-10-8.04828062e-07j

2.62217149e-10+1.71735882e-06j

4.69612458e-11+1.64657831e-06j

-5.63642924e-11-8.04827832e-07j

0.4

2.77003373e-14

0.4

-2.77003373e-11

2.62831194e-11

1.41721793e-12

6309570

9.02851557e-10-1.01321841e-06j

4.01577647e-10+2.15321778e-06j

7.32498288e-11+2.07126141e-06j

-8.87463454e-11-1.01321812e-06j

0.4

2.77003373e-14

0.4

-2.77003373e-11

2.62831194e-11

1.41721793e-12

7943280

8.51529335e-10-1.27556671e-06j

6.22704622e-10+2.71201133e-06j

1.14127761e-10+2.60025263e-06j

-1.40068522e-10-1.27556635e-06j

0.4

2.77003373e-14

0.4

-2.77003373e-11

2.62831194e-11

1.41721793e-12

10000000

7.70189042e-10-1.60584379e-06j

9.73265403e-10+3.42726706e-06j

1.78961092e-10+3.28570604e-06j

-2.21408744e-10-1.60584334e-06j

0.5

1.21217863e-12

0.5

-1.21217863e-09

1.19712072e-09

1.50579126e-11

1000000

4.5824297e-08-1.60586555e-07j

4.84705814e-10+3.62284414e-07j

4.34962001e-11+3.25962902e-07j

-3.28129191e-12-1.60584338e-07j

0.5

1.21217863e-12

0.5

-1.21217863e-09

1.19712072e-09

1.50579126e-11

1258930

4.58229627e-08-2.02167232e-07j

4.91019902e-10+4.56348007e-07j

4.43241076e-11+4.07919289e-07j

-4.61550154e-12-2.02164441e-07j

0.5

1.21217863e-12

0.5

-1.21217863e-09

1.19712072e-09

1.50579126e-11

1584890

4.58208481e-08-2.54512026e-07j

5.00927338e-10+5.75557307e-07j

4.60379954e-11+5.15952707e-07j

-6.7299901e-12-2.54508511e-07j

0.5

1.21217863e-12

0.5

-1.21217863e-09

1.19712072e-09

1.50579126e-11

1995260

4.58174967e-08-3.2041193e-07j

5.17062642e-10+7.20843636e-07j

4.84431489e-11+6.50063157e-07j

-1.0081309e-11-3.20407506e-07j

0.5

1.21217863e-12

0.5

-1.21217863e-09

1.19712072e-09

1.50579126e-11

2511890

4.58121849e-08-4.03375761e-07j

5.42213126e-10+9.08970802e-07j

5.24694046e-11+8.1397593e-07j

-1.53928502e-11-4.03370192e-07j

0.5

1.21217863e-12

0.5

-1.21217863e-09

1.19712072e-09

1.50579126e-11

3162280

4.58037664e-08-5.0781965e-07j

5.8231595e-10+1.1436641e-06j

5.90189626e-11+1.02445483e-06j

-2.38109702e-11-5.07812638e-07j

0.5

1.21217863e-12

0.5

-1.21217863e-09

1.19712072e-09

1.50579126e-11

3981070

4.57904241e-08-6.39306313e-07j

6.45919278e-10+1.44168732e-06j

6.89607087e-11+1.29640102e-06j

-3.71527378e-11-6.39297486e-07j

0.5

1.21217863e-12

0.5

-1.21217863e-09

1.19712072e-09

1.50579126e-11

5011870

4.57692778e-08-8.04838929e-07j

7.46357968e-10+1.81421635e-06j

8.49163352e-11+1.63167715e-06j

-5.8298094e-11-8.04827816e-07j

0.5

1.21217863e-12

0.5

-1.21217863e-09

1.19712072e-09

1.50579126e-11

6309570

4.57357632e-08-1.01323209e-06j

9.05706867e-10+2.28732822e-06j

1.10538936e-10+2.05636024e-06j

-9.18112138e-11-1.0132181e-06j

0.5

1.21217863e-12

0.5

-1.21217863e-09

1.19712072e-09

1.50579126e-11

7943280

4.56826461e-08-1.27558393e-06j

1.15842739e-09+2.87592409e-06j

1.50705609e-10+2.57790088e-06j

-1.44926013e-10-1.27556632e-06j

0.5

1.21217863e-12

0.5

-1.21217863e-09

1.19712072e-09

1.50579126e-11

10000000

4.55984611e-08-1.60586547e-06j

1.55903458e-09+3.62843273e-06j

2.14270621e-10+3.25590372e-06j

-2.2910735e-10-1.6058433e-06j

0.6

5.57760746e-11

0.6

-5.57760746e-08

5.52533967e-08

5.22677906e-10

1000000

2.11524872e-06-1.60693195e-07j

1.97428636e-08+3.87427059e-07j

1.89881018e-09+3.24099962e-07j

-3.39203545e-12-1.60584213e-07j

0.6

5.57760746e-11

0.6

-5.57760746e-08

5.52533967e-08

5.22677906e-10

1258930

2.11524732e-06-2.02301484e-07j

1.97503029e-08+4.8801054e-07j

1.90007356e-09+4.06056409e-07j

-4.79096538e-12-2.02164283e-07j

0.6

5.57760746e-11

0.6

-5.57760746e-08

5.52533967e-08

5.22677906e-10

1584890

2.11524509e-06-2.54681038e-07j

1.97623184e-08+6.16533566e-07j

1.90150715e-09+5.1222723e-07j

-7.00802428e-12-2.54508313e-07j

0.6

5.57760746e-11

0.6

-5.57760746e-08

5.52533967e-08

5.22677906e-10

1995260

2.11524157e-06-3.20624704e-07j

1.97812151e-08+7.72996164e-07j

1.90394659e-09+6.46337719e-07j

-1.05219101e-11-3.20407256e-07j

0.6

5.57760746e-11

0.6

-5.57760746e-08

5.52533967e-08

5.22677906e-10

2511890

2.11523599e-06-4.03643629e-07j

1.98110966e-08+9.72299517e-07j

1.90766806e-09+8.10250522e-07j

-1.60911053e-11-4.03369877e-07j

0.6

5.57760746e-11

0.6

-5.57760746e-08

5.52533967e-08

5.22677906e-10

3162280

2.11522715e-06-5.08156874e-07j

1.98584579e-08+1.22189422e-06j

1.91413626e-09+1.02072945e-06j

-2.49175744e-11-5.07812241e-07j

0.6

5.57760746e-11

0.6

-5.57760746e-08

5.52533967e-08

5.22677906e-10

3981070

2.11521313e-06-6.39730853e-07j

1.99335432e-08+1.54599468e-06j

1.9241373e-09+1.28895037e-06j

-3.8906529e-11-6.39296986e-07j

0.6

5.57760746e-11

0.6

-5.57760746e-08

5.52533967e-08

5.22677906e-10

5011870

2.11519091e-06-8.05373392e-07j

2.0052461e-08+1.9446009e-06j

1.93977039e-09+1.62050122e-06j

-6.10776113e-11-8.04827187e-07j

0.6

5.57760746e-11

0.6

-5.57760746e-08

5.52533967e-08

5.22677906e-10

6309570

2.11515569e-06-1.01390494e-06j

2.02408983e-08+2.44378993e-06j

1.96475088e-09+2.04145904e-06j

-9.62163964e-11-1.01321731e-06j

0.6

5.57760746e-11

0.6

-5.57760746e-08

5.52533967e-08

5.22677906e-10

7943280

2.11509988e-06-1.276431e-06j

2.05398665e-08+3.07708938e-06j

2.0043617e-09+2.56299969e-06j

-1.51907705e-10-1.27556532e-06j

0.6

5.57760746e-11

0.6

-5.57760746e-08

5.52533967e-08

5.22677906e-10

10000000

2.11501142e-06-1.60693186e-06j

2.10134462e-08+3.88175216e-06j

2.0668597e-09+3.23355195e-06j

-2.40172537e-10-1.60584203e-06j

0.699999997

2.57114938e-09

0.7

-2.57114938e-06

2.54706098e-06

2.40883991e-08

1000000

9.74403284e-05-1.66086079e-07j

9.29175541e-07+4.25466545e-07j

9.06585914e-08+3.21291868e-07j

-3.78274316e-12-1.60578429e-07j

0.699999997

2.57114938e-09

0.7

-2.57114938e-06

2.54706098e-06

2.40883991e-08

1258930

9.74403267e-05-2.09090748e-07j

9.29185185e-07+5.37255666e-07j

9.06597517e-08+4.0325122e-07j

-5.2867214e-12-2.02157002e-07j

0.699999997

2.57114938e-09

0.7

-2.57114938e-06

2.54706098e-06

2.40883991e-08

1584890

9.7440324e-05-2.63228166e-07j

9.29200055e-07+6.77909531e-07j

9.06612853e-08+5.10355672e-07j

-7.67026348e-12-2.54499146e-07j

0.699999997

2.57114938e-09

0.7

-2.57114938e-06

2.54706098e-06

2.40883991e-08

1995260

9.74403198e-05-3.31384911e-07j

9.29223836e-07+8.51154718e-07j

9.06637055e-08+6.40742703e-07j

-1.14480137e-11-3.20395716e-07j

0.699999997

2.57114938e-09

0.7

-2.57114938e-06

2.54706098e-06

2.40883991e-08

2511890

9.74403132e-05-4.17189961e-07j

9.29261447e-07+1.07282473e-06j

9.06675774e-08+8.04656963e-07j

-1.74354104e-11-4.03355349e-07j

0.699999997

2.57114938e-09

0.7

-2.57114938e-06

2.54706098e-06

2.40883991e-08

3162280

9.74403026e-05-5.25210685e-07j

9.29321152e-07+1.34850832e-06j

9.06739362e-08+1.0132744e-06j

-2.69246759e-11-5.07793952e-07j

0.699999997

2.57114938e-09

0.7

-2.57114938e-06

2.54706098e-06

2.40883991e-08

3981070

9.74402859e-05-6.61200303e-07j

9.29416041e-07+1.70242051e-06j

9.0684052e-08+1.28149624e-06j

-4.19640876e-11-6.3927396e-07j

0.699999997

2.57114938e-09

0.7

-2.57114938e-06

2.54706098e-06

2.40883991e-08

5011870

9.74402593e-05-8.32401827e-07j

9.29565969e-07+2.13456182e-06j

9.06996542e-08+1.61304782e-06j

-6.58000383e-11-8.04798198e-07j

0.699999997

2.57114938e-09

0.7

-2.57114938e-06

2.54706098e-06

2.40883991e-08

6309570

9.74402173e-05-1.04793172e-06j

9.29803556e-07+2.68218556e-06j

9.07249259e-08+2.02655564e-06j

-1.03577461e-10-1.01318081e-06j

0.699999997

2.57114938e-09

0.7

-2.57114938e-06

2.54706098e-06

2.40883991e-08

7943280

9.74401506e-05-1.31926818e-06j

9.30180472e-07+3.38254495e-06j

9.07645568e-08+2.54064617e-06j

-1.63450733e-10-1.27551937e-06j

0.699999997

2.57114938e-09

0.7

-2.57114938e-06

2.54706098e-06

2.40883991e-08

10000000

9.7440045e-05-1.66086068e-06j

9.30777807e-07+4.26171729e-06j

9.08272795e-08+3.21864937e-06j

-2.58343533e-10-1.60578418e-06j

0.799999884

1.16746301e-07

0.799999999

-0.000116746301

0.000115610969

1.13533131e-06

1000000

0.00435822467-5.07614638e-07j

4.34095082e-05+5.80755722e-07j

4.23075039e-06+3.45778662e-07j

-4.69074821e-10-1.60317283e-07j

0.799999884

1.16746301e-07

0.799999999

-0.000116746301

0.000115610969

1.13533131e-06

1258930

0.00435822465-6.3905273e-07j

4.34095289e-05+7.33050946e-07j

4.23075274e-06+4.35324117e-07j

-4.71080546e-10-2.01828237e-07j

0.799999884

1.16746301e-07

0.799999999

-0.000116746301

0.000115610969

1.13533131e-06

1584890

0.00435822463-8.04516305e-07j

4.34095612e-05+9.21375452e-07j

4.23075628e-06+5.47192826e-07j

-4.74259269e-10-2.54085258e-07j

0.799999884

1.16746301e-07

0.799999999

-0.000116746301

0.000115610969

1.13533131e-06

1995260

0.00435822458-1.01282779e-06j

4.34096124e-05+1.16069059e-06j

4.23076187e-06+6.90703882e-07j

-4.79297326e-10-3.19874661e-07j

0.799999884

1.16746301e-07

0.799999999

-0.000116746301

0.000115610969

1.13533131e-06

2511890

0.00435822451-1.27507863e-06j

4.34096938e-05+1.46128863e-06j

4.23077093e-06+8.69587224e-07j

-4.87282196e-10-4.02699377e-07j

0.799999884

1.16746301e-07

0.799999999

-0.000116746301

0.000115610969

1.13533131e-06

3162280

0.0043582244-1.60522835e-06j

4.34098226e-05+1.83810863e-06j

4.23078516e-06+1.09129713e-06j

-4.99937203e-10-5.06968132e-07j

0.799999884

1.16746301e-07

0.799999999

-0.000116746301

0.000115610969

1.13533131e-06

3981070

0.00435822423-2.0208608e-06j

4.34100269e-05+2.31912042e-06j

4.23080766e-06+1.37818827e-06j

-5.19993957e-10-6.38234313e-07j

0.799999884

1.16746301e-07

0.799999999

-0.000116746301

0.000115610969

1.13533131e-06

5011870

0.00435822395-2.54411317e-06j

4.34103506e-05+2.91179849e-06j

4.23084328e-06+1.73212564e-06j

-5.51781887e-10-8.03489355e-07j

0.799999884

1.16746301e-07

0.799999999

-0.000116746301

0.000115610969

1.13533131e-06

6309570

0.00435822351-3.20284855e-06j

4.34108635e-05+3.67204122e-06j

4.23090011e-06+2.18291339e-06j

-6.02162341e-10-1.01153307e-06j

0.799999884

1.16746301e-07

0.799999999

-0.000116746301

0.000115610969

1.13533131e-06

7943280

0.00435822282-4.03214826e-06j

4.34116766e-05+4.61849016e-06j

4.23098992e-06+2.73427831e-06j

-6.82010094e-10-1.27344496e-06j

0.799999884

1.16746301e-07

0.799999999

-0.000116746301

0.000115610969

1.13533131e-06

10000000

0.00435822172-5.07617477e-06j

4.34129653e-05+5.81821251e-06j

4.23113201e-06+3.45700206e-06j

-8.08560311e-10-1.60317261e-06j

0.899996531

3.50789443e-06

0.899999961

-0.00350789443

0.00346915636

3.87380622e-05

1000000

0.0921356005-3.44269805e-05j

0.001137478+2.34378032e-06j

0.000102414581+7.95813519e-07j

-3.78760901e-07-1.55339706e-07j

0.899996531

3.50789443e-06

0.899999961

-0.00350789443

0.00346915636

3.87380622e-05

1258930

0.0921355932-4.33417998e-05j

0.00113747847+2.95098402e-06j

0.000102414687+1.00126295e-06j

-3.78767958e-07-1.95561822e-07j

0.899996531

3.50789443e-06

0.899999961

-0.00350789443

0.00346915636

3.87380622e-05

1584890

0.0921355815-5.45642895e-05j

0.00113747923+3.71537259e-06j

0.000102414853+1.25817684e-06j

-3.78779142e-07-2.46196354e-07j

0.899996531

3.50789443e-06

0.899999961

-0.00350789443

0.00346915636

3.87380622e-05

1995260

0.0921355629-6.86928225e-05j

0.00113748043+4.67763876e-06j

0.000102415118+1.58625496e-06j

-3.78796869e-07-3.09943104e-07j

0.899996531

3.50789443e-06

0.899999961

-0.00350789443

0.00346915636

3.87380622e-05

2511890

0.0921355335-8.64796589e-05j

0.00113748234+5.88653025e-06j

0.000102415538+1.99585443e-06j

-3.78824963e-07-3.90196236e-07j

0.899996531

3.50789443e-06

0.899999961

-0.00350789443

0.00346915636

3.87380622e-05

3162280

0.0921354869-0.000108871568j

0.00113748535+7.41568366e-06j

0.000102416202+2.51314173e-06j

-3.7886949e-07-4.91227577e-07j

0.899996531

3.50789443e-06

0.899999961

-0.00350789443

0.00346915636

3.87380622e-05

3981070

0.0921354131-0.00013706112j

0.00113749013+9.33108119e-06j

0.000102417256+3.16985291e-06j

-3.7894006e-07-6.1841806e-07j

0.899996531

3.50789443e-06

0.899999961

-0.00350789443

0.00346915636

3.87380622e-05

5011870

0.0921352961-0.000172549666j

0.00113749771+1.17506966e-05j

0.000102418926+3.98653354e-06j

-3.79051905e-07-7.78541986e-07j

0.899996531

3.50789443e-06

0.899999961

-0.00350789443

0.00346915636

3.87380622e-05

6309570

0.0921351106-0.00021722684j

0.00113750971+1.47830613e-05j

0.000102421573+5.01165723e-06j

-3.79229168e-07-9.80125819e-07j

0.899996531

3.50789443e-06

0.899999961

-0.00350789443

0.00346915636

3.87380622e-05

7943280

0.0921348166-0.000273471701j

0.00113752874+1.86185607e-05j

0.000102425767+6.30113894e-06j

-3.79510109e-07-1.23390482e-06j

0.899996531

3.50789443e-06

0.899999961

-0.00350789443

0.00346915636

3.87380622e-05

10000000

0.0921343508-0.000344278942j

0.00113755891+2.34586747e-05j

0.000102432415+7.94813924e-06j

-3.79955368e-07-1.55339302e-06j

0.999979913

2.04209306e-05

0.999999666

-0.0204209306

0.0200867109

0.000334219784

1000000

0.22083663-0.000177690506j

0.00517450066+4.22515245e-06j

0.000352293113+1.18165854e-06j

-1.01904738e-05-1.58185199e-07j

0.999979913

2.04209306e-05

0.999999666

-0.0204209306

0.0200867109

0.000334219784

1258930

0.220836547-0.000223703612j

0.00517450257+5.31840699e-06j

0.000352293512+1.48562579e-06j

-1.01904833e-05-1.9914421e-07j

0.999979913

2.04209306e-05

0.999999666

-0.0204209306

0.0200867109

0.000334219784

1584890

0.220836415-0.000281627409j

0.0051745056+6.69439994e-06j

0.000352294145+1.87197121e-06j

-1.01904984e-05-2.5070637e-07j

0.999979913

2.04209306e-05

0.999999666

-0.0204209306

0.0200867109

0.000334219784

1995260

0.220836207-0.000354550261j

0.0051745104+8.43108655e-06j

0.000352295148+2.35608445e-06j

-1.01905223e-05-3.15620933e-07j

0.999979913

2.04209306e-05

0.999999666

-0.0204209306

0.0200867109

0.000334219784

2511890

0.220835876-0.000446354719j

0.005174518+1.06133169e-05j

0.000352296737+2.96536109e-06j

-1.01905601e-05-3.97344228e-07j

0.999979913

2.04209306e-05

0.999999666

-0.0204209306

0.0200867109

0.000334219784

3162280

0.220835352-0.000561927098j

0.00517453006+1.33629568e-05j

0.000352299255+3.72991112e-06j

-1.01906201e-05-5.0022631e-07j

0.999979913

2.04209306e-05

0.999999666

-0.0204209306

0.0200867109

0.000334219784

3981070

0.220834522-0.000707422031j

0.00517454917+1.68214342e-05j

0.000352303247+4.70585846e-06j

-1.01907152e-05-6.29746626e-07j

0.999979913

2.04209306e-05

0.999999666

-0.0204209306

0.0200867109

0.000334219784

5011870

0.220833206-0.000890587215j

0.00517457945+2.11778663e-05j

0.000352309574+5.91947436e-06j

-1.01908659e-05-7.9280345e-07j

0.999979913

2.04209306e-05

0.999999666

-0.0204209306

0.0200867109

0.000334219784

6309570

0.22083112-0.00112117302j

0.00517462745+2.66543105e-05j

0.000352319601+7.44914414e-06j

-1.01911047e-05-9.98079193e-07j

0.999979913

2.04209306e-05

0.999999666

-0.0204209306

0.0200867109

0.000334219784

7943280

0.220827814-0.00141145316j

0.00517470352+3.35580406e-05j

0.000352335491+9.36577085e-06j

-1.01914832e-05-1.25650528e-06j

0.999979913

2.04209306e-05

0.999999666

-0.0204209306

0.0200867109

0.000334219784

10000000

0.220822574-0.00177687335j

0.00517482408+4.22443885e-05j

0.000352360676+1.18110128e-05j

-1.0192083e-05-1.58184228e-06j

Electrical measurement data is not useful if information on the device that has been measured is not available. Therefore, data in DMT is stored in objects that represent an electron device, this could be for example a diode, MOSFET or BJT. The code below shows how to define a DUT (device-under-test) object which represent an electron device. The object can then be used to import measurement data in different formats (e.g. csv, mdm…) as shown below:

dut_meas = core.DutMeas(
    database_dir=None, # Use dir from config
    dut_type=core.DutType.npn, # it is a BJT-npn
    width=float(1e-6),
    length=float(2e-6),
    name="dut_meas_npn", # name and width/length for documentation
    reference_node="E", # defines configuration
)
dut_meas.add_data(path_data / "meas_data_300K.csv", key="300K/iv")

After read-in, the measurement data is available as a so called DataFrame (DMT.core.DataFrame) object. All DataFrame objects corresponding to a DUT can be accessed using a key that is generated by default as <measurement temperature>/<measurement data file name>.

As mentioned earlier, the data columns of the measurement data need to be converted to a unified format, so that it can be used within the software in a unified way. To clean up the data-columns, the code below is used.

dut_meas.clean_data(fallback={"E_": "E"})

The clean_data method capitalizes all columns and respects the fallback dictionary as described in the method documentation. Hence, the column I_E_ is converted to I_E. All column names are converted into SpecifierStr (DMT.core.naming) objects that exactly specify the type of data in each column.

After cleaning up, the data has the following columns:

dut_meas.data["300K/iv"].columns
> Index(
    ['V_C', 'V_E', 'V_B', 'I_E', 'I_C', 'I_B', 'FREQ', 'Y_CB', 'Y_BB', 'Y_CC', 'Y_BC'],
    dtype='object'
 )

The SpecifierStr objects are displayed and can be used exactly like regular strings but have some useful attributes and methods. The Y-parameters are translated to “standardized” Y-parameters that use the node names of the DUT instead of numeric indices, as the parameters would else depend on the contact configuration of the DUT as a two-port during measurement. Later, we will demonstrate the generation of SpecifierStr objects.

Preparing a Simulation

For running a simulation of an BJT different things are needed:

  • a circuit simulator,

  • a compact model (either built-in to the simulator or as Verilog-A code),

  • model parameters,

  • a circuit definition,

  • and finally operation point definitions (temperature, applied voltages and frequencies).

First, we read-in the model as defined in a Verilog-A source file:

modelcard = core.MCard(
    ["c", "b", "e", "s"],
    "QSGP1",
    core.circuit.SGP_BJT,
    1.0,
    va_file=path_data / "sgp_v1p0.va",
)

The MCard object now holds some information on the compact model, amongst which is the subcircuit name of the model and the location of its Verilog-A code. Using verilogae the model source file is read, and its model parameters are collected.

Usually the model parameters of a given technology are stored in separate files, which can also be read-in with DMT. For this purpose the following code can be used, where “bjt.lib” is an exemplary file that stores model parameters of our SGP model:

modelcard.load_model_parameters(path_data / "bjt.lib")

Next, we need to define a circuit for simulating our DUT using the circuit simulator, this is a bit tricky. There are two options

  • define a circuit explicitly

  • overwrite the abstract MCard.get_circuit method and pass the modelcard directly into our simulator interface.

Here, we will use the second option. The MCard.get_circuit method is abstract so that one may create subclasses representing compact models that are used often.

Instead of creating a subclass, we will simply overwrite the method in this tutorial. So let us define the method that creates a circuit using the DUT information:

def get_circuit(self):
    """Returns a circuit which uses the modelcard to which the method is attached.

    Returns
    -------
    circuit : :class:`~DMT.core.circuit.Circuit`

    """
    circuit_elements = []
    # model instance
    circuit_elements.append(
        core.circuit.CircuitElement(
            self.default_module_name,
            self.default_subckt_name,
            [f"n_{node.upper()}" for node in self.nodes_list],
            # ["n_C", "n_B", "n_E"],
            parameters=self,
        )
    )

    # BASE NODE CONNECTION #############
    # shorts for current measurement
    circuit_elements.append(
        core.circuit.CircuitElement(core.circuit.SHORT, "I_B", ["n_B_FORCED", "n_B"])
    )
    # COLLECTOR NODE CONNECTION #############
    circuit_elements.append(
        core.circuit.CircuitElement(core.circuit.SHORT, "I_C", ["n_C_FORCED", "n_C"])
    )
    # EMITTER NODE CONNECTION #############
    circuit_elements.append(
        core.circuit.CircuitElement(core.circuit.SHORT, "I_E", ["n_E_FORCED", "n_E"])
    )
    # add sources
    circuit_elements.append(
        core.circuit.CircuitElement(
            core.circuit.VOLTAGE,
            "V_B",
            ["n_B_FORCED", "0"],
            parameters=[("Vdc", "V_B"), ("Vac", "V_B_ac")],
        )
    )
    circuit_elements.append(
        core.circuit.CircuitElement(
            core.circuit.VOLTAGE,
            "V_C",
            ["n_C_FORCED", "0"],
            parameters=[("Vdc", "V_C"), ("Vac", "V_C_ac")],
        )
    )
    circuit_elements.append(
        core.circuit.CircuitElement(
            core.circuit.VOLTAGE,
            "V_E",
            ["n_E_FORCED", "0"],
            parameters=[("Vdc", "V_E"), ("Vac", "V_E_ac")],
        )
    )

    # metal resistance between contact emitter potential and substrate contact
    circuit_elements.append(
        core.circuit.CircuitElement(
            core.circuit.RESISTANCE, "R_S", ["n_S", "n_E_FORCED"], parameters=[("R", str(0.5))]
        )
    )

    # some variables used in this circuit
    circuit_elements += [
        "V_B=0",
        "V_C=0",
        "V_E=0",
        "ac_switch=0",
        "V_B_ac=1-ac_switch",
        "V_C_ac=ac_switch",
        "V_E_ac=0",
    ]

    return core.circuit.Circuit(circuit_elements)

This circuit connects voltage sources to all terminals of the DUT except the substrate node. The sources are connected using shorts in series to the terminals for measuring the terminal currents. This approach is used for all circuit simulators in DMT for having a unified interface that works in all circuit simulators.

For binding the method to our modelcard, the types module of Python is required:

import types

modelcard.get_circuit = types.MethodType(get_circuit, modelcard)

In this example, we will use the circuit simulator Xyce. The circuit is represented by another DUT object that corresponding to the circuit simulator:

from DMT.xyce import DutXyce
dut_sim = DutXyce(
    None,
    core.DutType.npn,
    modelcard,
    nodes="C,B,E",
    reference_node="E",
)

Alternatively, you may use a different simulator. The target of DMT is that all simulators can be used interchangeable, but as the feature set of the simulators differ, not every interface supports all DUTs. If you encounter a case, where a simulation does not work, please write an issue including the code here. For the example here, ngspice could be used:

from DMT.ngspice import DutNgspice
dut_sim = DutNgspice(
    None,
    core.DutType.npn,
    modelcard,
    nodes="B,C,E",
    reference_node="E",
)

This object uses the get_circuit method that we have defined previously for the modelcard for generating a circuit.

For defining the operating point conditions of the simulation, we will create a Sweep object, next. Conveniently, the DataFrame object provides a method that automatically creates the sweep definition from its content:

sweep = core.Sweep.get_sweep_from_dataframe(dut_meas.data[key_saved], temperature=300)

In some cases this will not work, since generating the sweep for arbitrary data is not always possible in an automated way. In such a case, do not hesitate to create an issue on github and supply an example of the measurement data. More test data is always welcome.

With Xyce intalled on your computer, we are now ready to run the simulation:

sim_con = core.SimCon()
sim_con.append_simulation(dut=dut_sim, sweep=sweep)
sim_con.run_and_read()

Accessing the Data and Plotting

Now the data is simulated and ready to use. Next, we will show how to access and add more data to the DataFrame, before finally plotting it in a suitable way for documentation or publications.

We now have measurement and simulation data:

data_meas = dut_meas.data[key_saved]
data_sim = dut_sim.get_data(sweep=sweep)

The measurement data is accessed using the key that was defined during read-in, e.g. <temperature in K>/<measurement data file name>. For simulations, DMT creates a MD5-hash for every sweep that is part of the key. During simulation, a folder is created under <DMT simulation directory>/<DUT MD5 Hash>/<Sweep MD5 Hash>, in which the simulation is run.

Now, let us access the different columns inside the DataFrame instances and demonstrate the SpecifierStr class capabilities. First, let’s create some column names:

col_vbe = core.specifiers.VOLTAGE + ["B", "E"]
col_vbc = core.specifiers.VOLTAGE + ["B", "C"]
col_ic = core.specifiers.CURRENT + "C"
col_freq = core.specifiers.FREQUENCY
col_ft = core.specifiers.TRANSIT_FREQUENCY
col_y21_real = core.specifiers.SS_PARA_Y + ["C", "B"] + core.sub_specifiers.REAL

These column names can then be used to add the voltages, the transit frequency and the real part of y_21 to the DataFrame instances. As all column names follow the same format, every DataFrame instance can be treated in exactly the same way, which is really convenient.

for dut, data in zip([dut_meas, dut_sim], [data_meas, data_sim]):
    data.ensure_specifier_column(col_vbe)
    data.ensure_specifier_column(col_vbc)
    data.ensure_specifier_column(col_ft, ports=dut.ac_ports)
    data.ensure_specifier_column(col_y21_real, ports=dut.ac_ports)

Next, we define some plots using the Plot class:

plt_ic = core.Plot(
    plot_name="I_C(V_BE)",
    x_specifier=col_vbe,
    y_specifier=col_ic,
    y_scale=1e3,
    y_log=True,
    legend_location="lower right",
)
plt_y21 = core.Plot(
    plot_name="Y_21(I_C)",
    x_specifier=col_ic,
    x_scale=1e3,
    x_log=True,
    y_specifier=col_y21_real,
    y_scale=1e3,
    y_log=True,
    legend_location="lower right",
)
plt_ft = core.Plot(
    plot_name="F_T(I_C)",
    x_specifier=col_ic,
    x_scale=1e3,
    x_log=True,
    y_specifier=col_ft,
    legend_location="upper left",
)

Again the specifiers are used, this time for formatting electrical quantities as human-readable strings. Let us add data to the plots:

import numpy as np

for source, data in zip(["meas", "sim"], [data_meas, data_sim]):
    for i_vbc, vbc, data_vbc in data.iter_unique_col(col_vbc, decimals=3):
        data_freq = data_vbc[np.isclose(data_vbc[col_freq], 1e7)]
        plt_ic.add_data_set(
            data_freq[col_vbe],
            data_freq[col_ic],
            label=source + " " + col_vbc.to_legend_with_value(vbc),
        )
        plt_y21.add_data_set(
            data_freq[col_ic],
            data_freq[col_y21_real],
            label=source + " " + col_vbc.to_legend_with_value(vbc),
        )
        plt_ft.add_data_set(
            data_freq[col_ic],
            data_freq[col_ft],
            label=source + " " + col_vbc.to_legend_with_value(vbc),
        )

This piece of code also uses the specifiers and the data handling capabilities DMT offers. But here are multiple things to unpack:

  1. the zip is used again to handle the both frames the same way.

  2. DataFrame.iter_unique_col allows to iterate over parts of the data where a specific column is unique.

  3. In the next line, Pandas indexing is used together with a numpy filter. This way one can easily select the rows of the data.

  4. The correct columns are added to the plots using the specifiers from above.

  5. SpecifierStr instances offer many methods for pretty printing. The shown variant here, includes all of them at once. The variable is pretty printed together with a value with a possibly scaled unit.

To have a look at the plots we can use different back-ends. pyqtgraph is the fastest:

plt_ic.plot_pyqtgraph(show=False)
plt_y21.plot_pyqtgraph(show=False)
plt_ft.plot_pyqtgraph(show=True)

Alternatively, matplotlib is implemented:

plt_ic.plot_py(show=False, use_tex=True)
plt_y21.plot_py(show=False, use_tex=True)
plt_ft.plot_py(show=True, use_tex=True)

matplotlib is generally slower but more powerful and more widely used. To make the plots prettier, DMT uses LaTeX for the labels and legends. This can be turned off by

Additionally, it is quite easy to export the plots ready for documentations or scientific publications:

plt_ic.save_tikz(path_data, standalone=True, build=True, clean=True, width="3in")
plt_y21.save_tikz(path_data, standalone=True, build=True, clean=True, width="3in")
plt_ft.save_tikz(path_data, standalone=True, build=True, clean=True, width="3in")

The plots look like this:

Collector current versus base-emitter voltage for measurement and simulation. Y_21 versus collector current for measurement and simulation. Transfer frequency versus collector current for measurement and simulation.

Note that the Y-Parameters are converted back to the traditional way of expressing Y-parameters using the contact configuration stored in the DUT instances.

Here, we have used simulated data in place of measurement data. Therefore, no difference is visible between the two lines in the graphs. In the device modeling community data sharing is, unfortunately, difficult.

Do not hesitate to reach out if you have questions or issues with DMT. Also if you are missing a feature you would like to see in future releases of DMT, you are welcome to create a feature request in the Gitlab repository or implement it yourself and create a merge request!