I am a base class for a self-heating power semiconductor subcircuit. My junction temperature node 'tj' starts at ambient temperature unless steadyState is True.

You can scale down all thermal capacitances in my package and heatsink by setting the pingspice-only simulation option timeWarp > 1 where stuff heats up x times faster. You should keep timeWarp consistent for all thermal subcircuits in a given simulation, and it's preferred to set this option (as with all pingspice-only simulation options) via a Netlist constructor keyword.

The sole subcircuit param is ambient, the ambient temperature of the air surrounding the package. Default: 25 deg C.

You must define my nodes list in your subclass. It must end with the temperature nodes 'tc', 'tj', and 'tca0', representing my die and case temperatures and an input node 'tca0' that specifies an initial case-ambient temperature. The 'tca0' node is a high-impedance input that floats to zero, so if you'll never want the case to start out with a higher temperature than ambient, just leave it disconnected.

The other items must match the nodes expected by the Die subclass you specify.

So, unless you specify an initial case-ambient temperature difference with attribute tca0, your nodes list pattern must match the following:

   [<Die, without 'tj'>] + ['tj', 'tc', 'tca0']

For the semiconductor device models provide by pingspice, the patterns are as follows:

   ['drain', 'gate', 'source', 'pdiss', 'tj', 'tc', 'tca0']
   ['anode', 'cathode', 'pdiss', 'tj', 'tc', 'tca0']
Class Variable Die The subclass of analysis.mosfet.MOSFET that models your device's semiconductor die. (Technically not just a die since it also models lead impedances. But not package thermal behavior.)
Class Variable package The name (not FQN) of the package subcircuit in lib.thermal, a subclass of lib.thermal.Package. (type: str)
Instance Variable heatsink A 2-sequence (or callable that returns a 2-sequence) containing values for rth_ca and cth_c of a heatsink attached to my package.
Instance Variable rth_ca Thermal resistance, case (package) to ambient. Should only be defined if heatsink is not.
Instance Variable cth_c Thermal capacitance of case (package). Should only be defined if heatsink is not.
Instance Variable tca0 Set this to an initial case-ambient temperature difference. I will set up an extra node internally with that "voltage" for its thermal capacitance to be fast-charged to so you don't have to supply the node. (If tca0 is set to something, supplying the 'tca0' node will raise an exception.)
Instance Variable ignoreL Set this True to ignore lead inductance. Inductors cause convergence errors in SPICE because they create ringing that needs to be tracked by the stepwise simulation, often at much higher frequencies than you're really interested in. That's been mitigated by the use of simulation-friendly inductors, though, so you probably won't need to set this.
Method checkNodes Raises an exception if the supplied list of nodes isn't appropriate.
Method setup Subcircuit definition.

Inherited from NodeStuff (via Subcircuit):

Instance Variable shunts A dict of current sensing V elements with the pairs of nodes they connect.
Class Variable debug A Bag that gets set True for all instances to log info about each setup call.
Class Method autoName Undocumented
Method setupResults Undocumented
Method fill Undocumented
Method nodeCheck Call with the circuit building tool f and a sequence of nodes provided to this Include or Subcircuit.
Method rawNetlist Get lines of a raw netlist from a search hierarchy of possible sources.
Method shunt Call to insert a current-measuring shunt and add an entry to my Elements baton's dict of shunts.
Method raw See Elements.raw.
Method iNode See Elements.iNode.
Method ground See Elements.ground.
Method sca See Elements.sca.
Method sca6 See Elements.sca6.
Class Method _libDir Undocumented
Method _strippedLines Undocumented
Method _call_setup Calls my setup method (almost always your override of that method, actually) and processes any return value.

Inherited from NodeStuff (via Subcircuit):

Instance Variable shunts A dict of current sensing V elements with the pairs of nodes they connect.
Class Variable debug A Bag that gets set True for all instances to log info about each setup call.
Class Method autoName Undocumented
Method setupResults Undocumented
Method fill Undocumented
Method nodeCheck Call with the circuit building tool f and a sequence of nodes provided to this Include or Subcircuit.
Method rawNetlist Get lines of a raw netlist from a search hierarchy of possible sources.
Method shunt Call to insert a current-measuring shunt and add an entry to my Elements baton's dict of shunts.
Method raw See Elements.raw.
Method iNode See Elements.iNode.
Method ground See Elements.ground.
Method sca See Elements.sca.
Method sca6 See Elements.sca6.
Class Method _libDir Undocumented
Method _strippedLines Undocumented
Method _call_setup Calls my setup method (almost always your override of that method, actually) and processes any return value.
Die =
The subclass of analysis.mosfet.MOSFET that models your device's semiconductor die. (Technically not just a die since it also models lead impedances. But not package thermal behavior.)
package =
The name (not FQN) of the package subcircuit in lib.thermal, a subclass of lib.thermal.Package. (type: str)
heatsink =
A 2-sequence (or callable that returns a 2-sequence) containing values for rth_ca and cth_c of a heatsink attached to my package.
rth_ca =
Thermal resistance, case (package) to ambient. Should only be defined if heatsink is not.
cth_c =
Thermal capacitance of case (package). Should only be defined if heatsink is not.
tca0 =
Set this to an initial case-ambient temperature difference. I will set up an extra node internally with that "voltage" for its thermal capacitance to be fast-charged to so you don't have to supply the node. (If tca0 is set to something, supplying the 'tca0' node will raise an exception.)
ignoreL =
Set this True to ignore lead inductance. Inductors cause convergence errors in SPICE because they create ringing that needs to be tracked by the stepwise simulation, often at much higher frequencies than you're really interested in. That's been mitigated by the use of simulation-friendly inductors, though, so you probably won't need to set this.
def checkNodes(self, nodes):

Raises an exception if the supplied list of nodes isn't appropriate.

def setup(self, f):

Subcircuit definition.

Why use f? Because it's short and a conveniently typed letter on the keyboard.

Override this if your subclass does not reference a param.ParameterFinder subclass via the Finder class attribute. As with Include.setup, your override method can return a dict of attribute names and values to set in my instance.

API Documentation for pingspice, generated by pydoctor at 2021-09-18 08:41:11.