The Parameters System

solcore.parameter_system.parameter_system.safe_cacher(maxsize)[source]
solcore.parameter_system.parameter_system.grouper(iterable, n, fillvalue=None)[source]
solcore.parameter_system.parameter_system.bow(parent_0_value, parent_1_value, bowing_parameter, x)[source]
class solcore.parameter_system.parameter_system.ParameterSystem(sources=None)[source]

Parameter database/bowing system for compound materials, principally after Vurgaftman et al.

Once instantiated, this plugin loads the materials parameterisations defined with a call to p.add_source(filepath).

Parameters for compound materials can be retrieved with the get_parameter function.

get_parameter(material, parameter, verbose=False, **others)[source]

Calculate/look up parameters for materials, returns in SI units

Usage: .get_parameter(material_name, parameter_name, **kwargs) - material_name is a string of element symbols/fractions, e.g.: In0.2GaAsP0.1 - parameter_name is a string of - **kwargs captures parameters that may be necessary for some calculations, eg. Temperature

material fractions may also be specified here, e.g.: .get_parameter(“InGaAs”, “band_gap”, In=0.2)

If a compound material is bowed between two parent materials, the parent materials’ parameters are calculated recursively with this function. The final parameter is calculated as:

result=parent_0_value * (1-x) + parent_1_value*x - bowing_parameter * (1-x) * x

The function is cached, so that multiple calls with the same parameters do not incur additional overhead.

initialise_cache()[source]