ThickTarget#

class sunkit_spex.models.physical.nonthermal.ThickTarget(
p=None,
break_energy=None,
q=None,
low_e_cutoff=None,
high_e_cutoff=None,
total_eflux=None,
integrator=None,
**kwargs,
)[source]#

Bases: FittableModel

Calculates the thick-target bremsstrahlung radiation of a dual power-law electron distribution.

[1] Brown, Solar Physics 18, 489 (1971) (https://link.springer.com/article/10.1007/BF00149070) [2] https://hesperia.gsfc.nasa.gov/ssw/packages/xray/doc/brm_thick_doc.pdf [3] https://hesperia.gsfc.nasa.gov/ssw/packages/xray/idl/brm2/brm2_thicktarget.pro

Parameters:
  • energy_edges (1d array) – Edges of energy bins in units of keV.

  • total_eflux (int or float) – Total integrated electron flux, in units of 10^35 e^- s^-1. Need to take care here as the model returns units of cm-2 sec-1 as the scaling factor of 1e35 is hidden. So actual units are 1.0d35 e^- s^-1.

  • p (int or float) – Power-law index of the electron distribution below the break.

  • break_energy (int or float) – Break energy of power law.

  • q (int or float) – Power-law index of the electron distribution above the break.

  • low_e_cutoff (int or float) – Low-energy cut-off of the electron distribution in units of keV.

  • high_e_cutoff (int or float) – High-energy cut-off of the electron distribution in units of keV.

Returns:

  • A 1d array of thick-target bremsstrahlung radiation in units

  • of ph s^-1 keV^-1.

Attributes Summary

break_energy

high_e_cutoff

input_units

This property is used to indicate what units or sets of units the evaluate method expects, and returns a dictionary mapping inputs to units (or None if any units are accepted).

low_e_cutoff

n_inputs

n_outputs

p

param_names

Names of the parameters that describe models of this type.

q

return_units

This property is used to indicate what units or sets of units the output of evaluate should be in, and returns a dictionary mapping outputs to units (or None if any units are accepted).

total_eflux

Methods Summary

__call__(*inputs[, model_set_axis, ...])

Evaluate this model using the given input(s) and the parameter values that were specified when the model was instantiated.

evaluate(energy_edges, p, break_energy, q, ...)

Evaluate the model on some input variables.

Attributes Documentation

break_energy = Parameter('break_energy', value=100.0, unit=keV)#
high_e_cutoff = Parameter('high_e_cutoff', value=1500.0, unit=keV, fixed=True)#
input_units#
low_e_cutoff = Parameter('low_e_cutoff', value=7.0, unit=keV)#
n_inputs = 1#
n_outputs = 1#
p = Parameter('p', value=2.0)#
param_names = ('p', 'break_energy', 'q', 'low_e_cutoff', 'high_e_cutoff', 'total_eflux')#

Names of the parameters that describe models of this type.

The parameters in this tuple are in the same order they should be passed in when initializing a model of a specific type. Some types of models, such as polynomial models, have a different number of parameters depending on some other property of the model, such as the degree.

When defining a custom model class the value of this attribute is automatically set by the Parameter attributes defined in the class body.

q = Parameter('q', value=5.0, fixed=True, bounds=(0.01, None))#
return_units#
total_eflux = Parameter('total_eflux', value=1.5, unit=electron / s, fixed=True)#

Methods Documentation

__call__(
*inputs,
model_set_axis=None,
with_bounding_box=False,
fill_value=nan,
equivalencies=None,
inputs_map=None,
**new_inputs,
)#

Evaluate this model using the given input(s) and the parameter values that were specified when the model was instantiated.

evaluate(
energy_edges,
p,
break_energy,
q,
low_e_cutoff,
high_e_cutoff,
total_eflux,
)[source]#

Evaluate the model on some input variables.