plask.flow

Data flow classes for standard properties.

This module contains providers, receivers, and filters for standard properties. These classes are present in binary solvers, but you may also use them in your custom Python solvers.

Providers and Receivers

Existing providers can be connected to receivers by using a simple assignment operator:

>>> first_solver.inTemperature = second_solver.outTemperature

You can manually retrieve data from any provider or a connected receiver by calling it like a function:

>>> second_solver.outTemperature(mymesh)
<plask.Data at 0x584c140>
>>> first_solver.inTemperature(mymesh, 'spline')
<plask.Data at 0x584c140>

Providers and receivers of most quantities give spatial distributions of the corresponding fields and, thus, require the target mesh as its argument. In addition you may specify the interpolation method as in the example above. If the interpolation method is omitted, its default value, depending is assumed by the solver automatically.

Some properties (e.g. the light intensity) require the result number given as the first argument (this is e.g. the consecutive mode number). Others take some optional arguments that are specified at the end (e.g. the gain requires to be given the wavelength at which the gain is computed.

In PLaSK you can create your custom Python solvers. They may contain the default providers and receivers defined here. Receivers are simple objects that can be attached to providers later and read as shown above. On the contrary, providers require you to create a callable that returns the data to be provided when requested.

Example

To create the solver that gets temperature from another source and increases it by 60 K, use the following class:

>>> class Hotter:
...     def __init__(self):
...         self.inTemperature = flow.TemperatureReceiver2D()
...         self.outTemperature = flow.TemperatureProvider2D(
...             lambda mesh, meth: self.get_data(mesh, meth))
...     def get_data(self, mesh, method):
...         temp = self.inTemperature(mesh, method)
...         return temp.array + 60.

Filters

Filters are solver-like classes that translate the fields computed in one geometry to another one. This geometry can have either the same or different dimension.

All filter classes are used the same way. They are constructed with a single argument, which is a target geometry. The type of this geometry must match the suffix of the filter (2D for two-dimensional Cartesian geometry, Cyl for axi-symmetric cylindrical geometry, and 3D for three-dimensional one. An example temperature filter for target 2D geometry can be constructed as follows:

>>> temp_filter = flow.TemperatureFilter2D(mygeometry2d)

Having an existing filter, you may attach a source provider to it, using bracket indexing. The index is a geometry object either existing in the target geometry or containing it (e.g. a geometry.Extrusion object that is the root of the my_geometry_2d geometry). The indexed element is a proper data receiver that can be used for connecting the source data.

>>> temp_filter[some_object_in_mygeometry2d]
<plask.ReceiverForTemperature2D at 0x43a5210>
>>> temp_filter[mygeometry2d.extrusion]
<plask.ReceiverForTemperature3D at 0x44751a0>
>>> temp_filter[mygeometry2d.extrusion] = thermal_solver_3d.outTemperature

After connecting the source, the translated data can be obtained using the filter member out, which is a provider that can be connected to other solvers.

>>> temp_filter.out
<plask.ProviderForTemperature2D at 0x43a5fa0>
>>> other_solver_in_2d.inTemperature = temp_filter.out

After the connection the filter does its job automatically.

See also

Data Filters.

Definition of filters in the XPL file: filter tag.

Example using filters: sec-tutorial-threshold-of-array.

Classes

BandEdgesFilter2D

BandEdgesFilter2D(geometry)

BandEdgesFilter3D

BandEdgesFilter3D(geometry)

BandEdgesFilterCyl

BandEdgesFilterCyl(geometry)

BandEdgesProvider2D

BandEdgesProvider2D(data)

BandEdgesProvider3D

BandEdgesProvider3D(data)

BandEdgesProviderCyl

BandEdgesProviderCyl(data)

BandEdgesReceiver2D

BandEdgesReceiver2D()

BandEdgesReceiver3D

BandEdgesReceiver3D()

BandEdgesReceiverCyl

BandEdgesReceiverCyl()

CarriersConcentrationFilter2D

CarriersConcentrationFilter2D(geometry)

CarriersConcentrationFilter3D

CarriersConcentrationFilter3D(geometry)

CarriersConcentrationFilterCyl

CarriersConcentrationFilterCyl(geometry)

CarriersConcentrationProvider2D

CarriersConcentrationProvider2D(data)

CarriersConcentrationProvider3D

CarriersConcentrationProvider3D(data)

CarriersConcentrationProviderCyl

CarriersConcentrationProviderCyl(data)

CarriersConcentrationReceiver2D

CarriersConcentrationReceiver2D()

CarriersConcentrationReceiver3D

CarriersConcentrationReceiver3D()

CarriersConcentrationReceiverCyl

CarriersConcentrationReceiverCyl()

ConductivityFilter2D

ConductivityFilter2D(geometry)

ConductivityFilter3D

ConductivityFilter3D(geometry)

ConductivityFilterCyl

ConductivityFilterCyl(geometry)

ConductivityProvider2D

ConductivityProvider2D(data)

ConductivityProvider3D

ConductivityProvider3D(data)

ConductivityProviderCyl

ConductivityProviderCyl(data)

ConductivityReceiver2D

ConductivityReceiver2D()

ConductivityReceiver3D

ConductivityReceiver3D()

ConductivityReceiverCyl

ConductivityReceiverCyl()

CurrentDensityFilter2D

CurrentDensityFilter2D(geometry)

CurrentDensityFilter3D

CurrentDensityFilter3D(geometry)

CurrentDensityFilterCyl

CurrentDensityFilterCyl(geometry)

CurrentDensityProvider2D

CurrentDensityProvider2D(data)

CurrentDensityProvider3D

CurrentDensityProvider3D(data)

CurrentDensityProviderCyl

CurrentDensityProviderCyl(data)

CurrentDensityReceiver2D

CurrentDensityReceiver2D()

CurrentDensityReceiver3D

CurrentDensityReceiver3D()

CurrentDensityReceiverCyl

CurrentDensityReceiverCyl()

EnergyLevelsProvider2D

EnergyLevelsProvider2D(data)

EnergyLevelsProvider3D

EnergyLevelsProvider3D(data)

EnergyLevelsProviderCyl

EnergyLevelsProviderCyl(data)

EnergyLevelsReceiver2D

EnergyLevelsReceiver2D()

EnergyLevelsReceiver3D

EnergyLevelsReceiver3D()

EnergyLevelsReceiverCyl

EnergyLevelsReceiverCyl()

EpsilonFilter2D

EpsilonFilter2D(geometry)

EpsilonFilter3D

EpsilonFilter3D(geometry)

EpsilonFilterCyl

EpsilonFilterCyl(geometry)

EpsilonProvider2D

EpsilonProvider2D(data)

EpsilonProvider3D

EpsilonProvider3D(data)

EpsilonProviderCyl

EpsilonProviderCyl(data)

EpsilonReceiver2D

EpsilonReceiver2D()

EpsilonReceiver3D

EpsilonReceiver3D()

EpsilonReceiverCyl

EpsilonReceiverCyl()

FermiLevelsFilter2D

FermiLevelsFilter2D(geometry)

FermiLevelsFilter3D

FermiLevelsFilter3D(geometry)

FermiLevelsFilterCyl

FermiLevelsFilterCyl(geometry)

FermiLevelsProvider2D

FermiLevelsProvider2D(data)

FermiLevelsProvider3D

FermiLevelsProvider3D(data)

FermiLevelsProviderCyl

FermiLevelsProviderCyl(data)

FermiLevelsReceiver2D

FermiLevelsReceiver2D()

FermiLevelsReceiver3D

FermiLevelsReceiver3D()

FermiLevelsReceiverCyl

FermiLevelsReceiverCyl()

GainFilter2D

GainFilter2D(geometry)

GainFilter3D

GainFilter3D(geometry)

GainFilterCyl

GainFilterCyl(geometry)

GainProvider2D

GainProvider2D(data)

GainProvider3D

GainProvider3D(data)

GainProviderCyl

GainProviderCyl(data)

GainReceiver2D

GainReceiver2D()

GainReceiver3D

GainReceiver3D()

GainReceiverCyl

GainReceiverCyl()

HeatFilter2D

HeatFilter2D(geometry)

HeatFilter3D

HeatFilter3D(geometry)

HeatFilterCyl

HeatFilterCyl(geometry)

HeatFluxFilter2D

HeatFluxFilter2D(geometry)

HeatFluxFilter3D

HeatFluxFilter3D(geometry)

HeatFluxFilterCyl

HeatFluxFilterCyl(geometry)

HeatFluxProvider2D

HeatFluxProvider2D(data)

HeatFluxProvider3D

HeatFluxProvider3D(data)

HeatFluxProviderCyl

HeatFluxProviderCyl(data)

HeatFluxReceiver2D

HeatFluxReceiver2D()

HeatFluxReceiver3D

HeatFluxReceiver3D()

HeatFluxReceiverCyl

HeatFluxReceiverCyl()

HeatProvider2D

HeatProvider2D(data)

HeatProvider3D

HeatProvider3D(data)

HeatProviderCyl

HeatProviderCyl(data)

HeatReceiver2D

HeatReceiver2D()

HeatReceiver3D

HeatReceiver3D()

HeatReceiverCyl

HeatReceiverCyl()

HeatSumProvider2D

Combined provider for heat sources density.

HeatSumProviderCyl

Combined provider for heat sources density.

LightEFilter2D

LightEFilter2D(geometry)

LightEFilter3D

LightEFilter3D(geometry)

LightEFilterCyl

LightEFilterCyl(geometry)

LightEProvider2D

LightEProvider2D(data)

LightEProvider3D

LightEProvider3D(data)

LightEProviderCyl

LightEProviderCyl(data)

LightEReceiver2D

LightEReceiver2D()

LightEReceiver3D

LightEReceiver3D()

LightEReceiverCyl

LightEReceiverCyl()

LightHFilter2D

LightHFilter2D(geometry)

LightHFilter3D

LightHFilter3D(geometry)

LightHFilterCyl

LightHFilterCyl(geometry)

LightHProvider2D

LightHProvider2D(data)

LightHProvider3D

LightHProvider3D(data)

LightHProviderCyl

LightHProviderCyl(data)

LightHReceiver2D

LightHReceiver2D()

LightHReceiver3D

LightHReceiver3D()

LightHReceiverCyl

LightHReceiverCyl()

LightMagnitudeFilter2D

LightMagnitudeFilter2D(geometry)

LightMagnitudeFilter3D

LightMagnitudeFilter3D(geometry)

LightMagnitudeFilterCyl

LightMagnitudeFilterCyl(geometry)

LightMagnitudeProvider2D

LightMagnitudeProvider2D(data)

LightMagnitudeProvider3D

LightMagnitudeProvider3D(data)

LightMagnitudeProviderCyl

LightMagnitudeProviderCyl(data)

LightMagnitudeReceiver2D

LightMagnitudeReceiver2D()

LightMagnitudeReceiver3D

LightMagnitudeReceiver3D()

LightMagnitudeReceiverCyl

LightMagnitudeReceiverCyl()

LuminescenceFilter2D

LuminescenceFilter2D(geometry)

LuminescenceFilter3D

LuminescenceFilter3D(geometry)

LuminescenceFilterCyl

LuminescenceFilterCyl(geometry)

LuminescenceProvider2D

LuminescenceProvider2D(data)

LuminescenceProvider3D

LuminescenceProvider3D(data)

LuminescenceProviderCyl

LuminescenceProviderCyl(data)

LuminescenceReceiver2D

LuminescenceReceiver2D()

LuminescenceReceiver3D

LuminescenceReceiver3D()

LuminescenceReceiverCyl

LuminescenceReceiverCyl()

ModeEffectiveIndexProvider

ModeEffectiveIndexProvider(data)

ModeEffectiveIndexReceiver

ModeEffectiveIndexReceiver()

ModeLightEFilter2D

ModeLightEFilter2D(geometry)

ModeLightEFilter3D

ModeLightEFilter3D(geometry)

ModeLightEFilterCyl

ModeLightEFilterCyl(geometry)

ModeLightEProvider2D

ModeLightEProvider2D(data)

ModeLightEProvider3D

ModeLightEProvider3D(data)

ModeLightEProviderCyl

ModeLightEProviderCyl(data)

ModeLightEReceiver2D

ModeLightEReceiver2D()

ModeLightEReceiver3D

ModeLightEReceiver3D()

ModeLightEReceiverCyl

ModeLightEReceiverCyl()

ModeLightHFilter2D

ModeLightHFilter2D(geometry)

ModeLightHFilter3D

ModeLightHFilter3D(geometry)

ModeLightHFilterCyl

ModeLightHFilterCyl(geometry)

ModeLightHProvider2D

ModeLightHProvider2D(data)

ModeLightHProvider3D

ModeLightHProvider3D(data)

ModeLightHProviderCyl

ModeLightHProviderCyl(data)

ModeLightHReceiver2D

ModeLightHReceiver2D()

ModeLightHReceiver3D

ModeLightHReceiver3D()

ModeLightHReceiverCyl

ModeLightHReceiverCyl()

ModeLightMagnitudeFilter2D

ModeLightMagnitudeFilter2D(geometry)

ModeLightMagnitudeFilter3D

ModeLightMagnitudeFilter3D(geometry)

ModeLightMagnitudeFilterCyl

ModeLightMagnitudeFilterCyl(geometry)

ModeLightMagnitudeProvider2D

ModeLightMagnitudeProvider2D(data)

ModeLightMagnitudeProvider3D

ModeLightMagnitudeProvider3D(data)

ModeLightMagnitudeProviderCyl

ModeLightMagnitudeProviderCyl(data)

ModeLightMagnitudeReceiver2D

ModeLightMagnitudeReceiver2D()

ModeLightMagnitudeReceiver3D

ModeLightMagnitudeReceiver3D()

ModeLightMagnitudeReceiverCyl

ModeLightMagnitudeReceiverCyl()

ModeLossProvider

ModeLossProvider(data)

ModeLossReceiver

ModeLossReceiver()

ModePropagationConstantProvider

ModePropagationConstantProvider(data)

ModePropagationConstantReceiver

ModePropagationConstantReceiver()

ModeWavelengthProvider

ModeWavelengthProvider(data)

ModeWavelengthReceiver

ModeWavelengthReceiver()

PotentialFilter2D

PotentialFilter2D(geometry)

PotentialFilter3D

PotentialFilter3D(geometry)

PotentialFilterCyl

PotentialFilterCyl(geometry)

PotentialProvider2D

PotentialProvider2D(data)

PotentialProvider3D

PotentialProvider3D(data)

PotentialProviderCyl

PotentialProviderCyl(data)

PotentialReceiver2D

PotentialReceiver2D()

PotentialReceiver3D

PotentialReceiver3D()

PotentialReceiverCyl

PotentialReceiverCyl()

RefractiveIndexFilter2D

RefractiveIndexFilter2D(geometry)

RefractiveIndexFilter3D

RefractiveIndexFilter3D(geometry)

RefractiveIndexFilterCyl

RefractiveIndexFilterCyl(geometry)

RefractiveIndexProvider2D

RefractiveIndexProvider2D(data)

RefractiveIndexProvider3D

RefractiveIndexProvider3D(data)

RefractiveIndexProviderCyl

RefractiveIndexProviderCyl(data)

RefractiveIndexReceiver2D

RefractiveIndexReceiver2D()

RefractiveIndexReceiver3D

RefractiveIndexReceiver3D()

RefractiveIndexReceiverCyl

RefractiveIndexReceiverCyl()

TemperatureFilter2D

TemperatureFilter2D(geometry)

TemperatureFilter3D

TemperatureFilter3D(geometry)

TemperatureFilterCyl

TemperatureFilterCyl(geometry)

TemperatureProvider2D

TemperatureProvider2D(data)

TemperatureProvider3D

TemperatureProvider3D(data)

TemperatureProviderCyl

TemperatureProviderCyl(data)

TemperatureReceiver2D

TemperatureReceiver2D()

TemperatureReceiver3D

TemperatureReceiver3D()

TemperatureReceiverCyl

TemperatureReceiverCyl()

ThermalConductivityFilter2D

ThermalConductivityFilter2D(geometry)

ThermalConductivityFilter3D

ThermalConductivityFilter3D(geometry)

ThermalConductivityFilterCyl

ThermalConductivityFilterCyl(geometry)

ThermalConductivityProvider2D

ThermalConductivityProvider2D(data)

ThermalConductivityProvider3D

ThermalConductivityProvider3D(data)

ThermalConductivityProviderCyl

ThermalConductivityProviderCyl(data)

ThermalConductivityReceiver2D

ThermalConductivityReceiver2D()

ThermalConductivityReceiver3D

ThermalConductivityReceiver3D()

ThermalConductivityReceiverCyl

ThermalConductivityReceiverCyl()

VoltageFilter2D

VoltageFilter2D(geometry)

VoltageFilter3D

VoltageFilter3D(geometry)

VoltageFilterCyl

VoltageFilterCyl(geometry)

VoltageProvider2D

VoltageProvider2D(data)

VoltageProvider3D

VoltageProvider3D(data)

VoltageProviderCyl

VoltageProviderCyl(data)

VoltageReceiver2D

VoltageReceiver2D()

VoltageReceiver3D

VoltageReceiver3D()

VoltageReceiverCyl

VoltageReceiverCyl()