Thermionic electrode.
An Electrode object is instantiated by a dict with the keys, constraints, and units listed below. Additional keys will be ignored, and there are no default values for instantiation. Note that despite the units listed below, the Electrode stores and returns its quantities in SI units.
Parameters: |
|
---|
referred to as work function. The barrier is the difference between the lowest energy for which an electron inside a material can escape and the Fermi energy. :param float input_params[“voltage”]: Voltage [V] Measured with respect to ground. :param float input_params[“position”]: Position [um] Position of the electrode with respect to the origin. :param float input_params[“richardson”]: Richardson Constant >=0 [A cm^{-2} K^{-2}] :param float input_params[“emissivity”]: Stefan-Boltzmann emissivity < 1 & > 0 :param float input_params[“nea”]: Negative electron affinity >=0 [eV] (Optional) Increases as the difference between the vacuum energy and conduction band minimum increases.
The user can set either temp or richardson equal to zero to “switch off” the electrode – the calc_saturation_current_density() method will return a value of zero in either case.
Example:
>>> input_params = {"temp":1000,
... "barrier":1,
... "voltage":0,
... "position":0,
... "richardson":10,
... "emissivity":0.5}
>>> El = Electrode(input_params)
>>> El
{'barrier': 1.6021764600000001e-19,
'emissivity': 0.5,
'position': 0.0,
'richardson': 100000.0,
'temp': 1000.0,
'voltage': 0.0}
Value of barrier height in J relative to ground.
Motive boundary condition in J relative to ground.
Saturation current in A m^{-2} calculated according to Richardson-Dushman.
If either temp or richardson are equal to 0, this method returns a value of 0.
Position of the vacuum energy relative to Fermi energy in J.
If the Electrode does not have NEA, the vacuum energy occurs at the top of the barrier and is therefore equal to the barrier. If the Electrode does have NEA, the vacuum level is the barrier reduced by the value of the NEA.
Return True, reset to False if a parameter affecting motive has just been changed.
Parameters which affect motive are temp, barrier, voltage, position, richardson, and nea.
Base thermionic engine class.
This class provides the base API for subclasses which implement particular models of TEC electron transport. Even though it isn’t intended to be a model, this class implements a model of electron transport which completely ignores the negative space charge effect, similar to the model described on p. 51 of [HG73].
The TECBase class is instantiated by a dict with two keys, “Emitter” and “Collector”. Both keys have data that is also of type dict which are configured to instantiate an Electrode object. Additional keys will be ignored and there are no default values for instantiation.
Parameters: |
|
---|
The attributes of the object are accessed like a dictionary. The object has three attributes, “Emitter” and “Collector” are both Electrode objects. “motive_data” is a dictionary containing (meta)data calculated during the motive calculation. There is no requirement on the structure or contents of the “motive_data” attribute because each particular implementation of a model may have its own specific requirements. Such requirements will be documented in teh subclass’s docstring. In the case of TECBase, “motive_data” contains the following data:
>>> em_dict = {"temp":1000,
... "barrier":1,
... "voltage":0,
... "position":0,
... "richardson":10,
... "emissivity":0.5}
>>> co_dict = {"temp":300,
... "barrier":0.8,
... "voltage":0,
... "position":10,
... "richardson":10,
... "emissivity":0.5}
>>> input_dict = {"Emitter":em_dict, "Collector":co_dict}
>>> example_tec = TECBase(input_dict)
[1] “Thermionic Energy Conversion, Vol. I.” Hatsopoulous and Gyftopoulous. p. 48.
Helper method to properly draw barrier on the motive diagram using spines.
Back current density in A m^{-2}.
Carnot efficiency in the range 0 to 1.
This method will return a negative value if the emitter temperature is less than the collector temperature.
Contact potential in V.
The contact potential is defined as the difference in barrier height between the emitter and collector. This value should not be confused with the quantity returned by calc_output_voltage() which is the voltage difference between the collector and emitter.
Efficiency considering only electronic heat transport in range 0 to 1.
This method will return nan if the output power is less than zero. See [HG73] p. 73 for a description of how the electronic efficiency is calculated.
Forward current density in A m^{-2}.
Distance between collector and emitter in m.
Load resistance in ohms.
Calculates the motive (meta)data and populates the ‘motive_data’ attribute.
Net current density flowing across device in A m^{-2}.
Parameters: |
|
---|
Voltage difference between emitter and collector in V.
Efficiency considering only blackbody heat transport in range 0 to 1.
This method will return nan if the output power is less than zero. See [HG73] p. 73 for a description of how the radiation efficiency is calculated.
Parameters: |
|
---|
Helper method to plot vertical dimension line on the motive diagram.
Parameters: |
|
---|
Value of the maximum motive relative to ground in J.
Parameters: | with_position (bool) – True returns the position at max motive instead. |
---|
Value of motive relative to ground for given value(s) of position in J.
Parameters: | position – float or numpy array at which motive is to be evaluated. Returns NaN if position falls outside of the interelectrode space. |
---|
Plot an annotated motive diagram relative to ground.
Parameters: |
|
---|