radiation_pressure#

This module contains a set of factory functions for setting up the radiation pressure models of celestial bodies in an environment, including relevant models solar luminosity, solar system body albedo and emissivity, spacecraft surface reaction to radiation pressure.

Functions#

constant_luminosity(luminosity)

Factory function for creating constant radiation source luminosity settings.

cannonball_radiation_target(reference_area, ...)

Factory function for cannonball radtiation target

irradiance_based_constant_luminosity(...)

Factory function for creating source luminosity settings based on the irradiance at a reference distance.

time_variable_luminosity(luminosity_function)

Factory function for creating time-variable radiation source luminosity settings.

irradiance_based_time_variable_luminosity(...)

Factory function for creating time-variable source luminosity settings based on the irradiance at a reference distance.

constant_surface_property_distribution(...)

Factory function for creating constant radiative surface property distribution settings.

spherical_harmonic_surface_property_distribution(...)

Factory function for creating radiative surface property distribution settings according to a spherical harmonic model.

predefined_spherical_harmonic_surface_property_distribution(...)

Factory function for creating radiative surface property distribution settings according to a predefined spherical harmonic model.

knocke_type_surface_property_distribution(...)

Factory function for creating radiative surface property distribution settings according to 'Knocke-type' model

predefined_knocke_type_surface_property_distribution(...)

Factory function for creating radiative surface property distribution settings according to a predefined 'Knocke-type` model.

custom_surface_property_distribution(...)

Factory function for creating radiative surface property distribution settings according to a custom user-defined model.

constant_radiosity(radiosity)

Factory function for creating settings for surface constant surface radiosity of an extended source

constant_albedo_surface_radiosity(...)

Factory function for creating settings for surface constant albedo surface radiosity of an extended source

variable_albedo_surface_radiosity(...)

Factory function for creating settings for surface variable albedo surface radiosity of an extended source

thermal_emission_blackbody_constant_emissivity(...)

Factory function for creating settings for surface radiosity of an extended source from an isotropically heated body with constant emmisivity

thermal_emission_blackbody_variable_emissivity(...)

Factory function for creating settings for surface radiosity of an extended source from an isotropically heated body with variable emmisivity

thermal_emission_angle_based_radiosity(...)

Factory function for creating settings for surface radiosity of an extended source with surface temperature from Lemoine (2013)

specular_diffuse_body_panel_reflection(...)

Factory function for creating settings for target panel reflection law using a specular-diffuse model

lambertian_body_panel_reflection(reflectivity)

Factory function for creating settings for target panel reflection law using a Lambertian model

isotropic_radiation_source(luminosity_model)

Factory function for creating settings for an isotropic radiation source

panelled_radiation_target([...])

Factory function for creating settings for a paneled radiation pressure target model

panelled_extended_radiation_source(...[, ...])

Factory function for creating settings for a dynamically panelled extended radiation source

constant_luminosity(luminosity: float) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.LuminosityModelSettings#

Factory function for creating constant radiation source luminosity settings.

Factory function for creating constant radiation source luminosity settings, defining the total radiated power (in Watts) of a given source. With this function, the source luminosity is constant, and is assumed to emit radiation isotropically.

Parameters:

luminosity (float) – Constant source luminosity (in Watt)

Returns:

Object defining settings for source luminosity

Return type:

LuminosityModelSettings

cannonball_radiation_target(reference_area: float, radiation_pressure_coefficient: float, per_source_occulting_bodies: dict[str, list[str]] = {}) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.RadiationPressureTargetModelSettings#

Factory function for cannonball radtiation target

Parameters:
  • reference_area (float) – Cross-sectional area of cannonball [\(m^{2}\)]

  • radiation_pressure_coefficient (float) – Radiation pressure coefficient [-]

  • per_source_occulting_bodies (Dict[str, List[str]]) – Names of bodies to occult the source as seen from this target

Returns:

Object defining settings for a cannonball radiation pressure target model

Return type:

CannonballRadiationPressureTargetModelSettings

irradiance_based_constant_luminosity(constant_irradiance: float, reference_distance: float) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.LuminosityModelSettings#

Factory function for creating source luminosity settings based on the irradiance at a reference distance.

Factory function for creating source luminosity based on the irradiance at a reference distance. For instance, one can provide the solar irradiance at 1 AU, and this will be translated to the Sun’s luminosity. With this function, the source luminosity is constant, and is assumed to emit radiation isotropically.

Parameters:
  • constant_irradiance (float) – Irradiance at reference distance from center of source (in \(W/m^{2}\))

  • reference_distance (float) – Distance from center of source at which the irradiance is defined

Returns:

Object defining settings for source luminosity

Return type:

LuminosityModelSettings

time_variable_luminosity(luminosity_function: Callable[[float], float]) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.LuminosityModelSettings#

Factory function for creating time-variable radiation source luminosity settings.

Factory function for creating time-variable radiation source luminosity settings, defining the total radiated power (in Watts) of a given source as a function of time. With this function, the source is assumed to emit radiation isotropically.

Parameters:

luminosity_function (Callable[[float], float]) – Function returning source luminosity (in Watt) as a function of time

Returns:

Object defining settings for source luminosity

Return type:

LuminosityModelSettings

irradiance_based_time_variable_luminosity(irradiance_function: Callable[[float], float], reference_distance: float) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.LuminosityModelSettings#

Factory function for creating time-variable source luminosity settings based on the irradiance at a reference distance.

Factory function for creating source time-variable luminosity based on the irradiance at a reference distance. For instance, one can provide the solar irradiance at 1 AU as a function of time, and this will be translated to the Sun’s luminosity. With this function, the source is assumed to emit radiation isotropically.

Parameters:
  • irradiance_function (Callable[[float], float]) – Function returning irradiance at reference distance from center of source (in \(W/m^{2}\)) as a function fo time

  • reference_distance (float) – Distance from center of source at which the irradiance is defined

Returns:

Object defining settings for source luminosity

Return type:

LuminosityModelSettings

constant_surface_property_distribution(constant_value: float) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.SurfacePropertyDistributionSettings#

Factory function for creating constant radiative surface property distribution settings.

Factory function for creating constant radiative surface property (e.g. albedo, emmisivitiy, etc.) distribution settings.

Parameters:

constant_value (float) – Constant surface property value

Returns:

Object defining settings for surface property distribution

Return type:

SurfacePropertyDistributionSettings

spherical_harmonic_surface_property_distribution(cosine_coefficients: numpy.ndarray[numpy.float64[m, n]], sine_coefficients: numpy.ndarray[numpy.float64[m, n]]) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.SurfacePropertyDistributionSettings#

Factory function for creating radiative surface property distribution settings according to a spherical harmonic model.

Factory function for creating radiative surface property (e.g. albedo, emmisivitiy, etc.) distribution settings according to a spherical harmonic model. The user provides unnormalized cosine and sine coefficients \(C_{lm}\) and \(S_{lm}\), from which the surface property \(k\) is computed from:

\[k(\phi,\theta)=\sum_{l=0}^{l_{max}}\sum_{m=0}^{l}{P}_{lm}(\sin\phi)\left({C}_{lm}\cos m\theta+{S}_{lm}\sin m\theta\right)\]

with the angles \(\phi\) and \(\theta\) the body-fixed latitude and longitude of the evaluation point.

Parameters:
  • cosine_coefficients (numpy.ndarray) – Cosine coefficients of surface distribution. Entry (i,j) denotes coefficient \({C}_{ij}\) at degree i and order j.

  • sine_coefficients (numpy.ndarray) – Sine coefficients of surface distribution. Entry (i,j) denotes coefficient \({C}_{ij}\) at degree i and order j.

Returns:

Object defining settings for surface property distribution

Return type:

SurfacePropertyDistributionSettings

predefined_spherical_harmonic_surface_property_distribution(predefined_model: tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.SphericalHarmonicsSurfacePropertyDistributionModel) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.SurfacePropertyDistributionSettings#

Factory function for creating radiative surface property distribution settings according to a predefined spherical harmonic model.

As spherical_harmonic_surface_property_distribution(), but with a predefined spherical harmonic distribution.

Parameters:

predefined_model (SphericalHarmonicsSurfacePropertyDistributionModel) – Identifier for predefined spherical harmonic surface property model.

Returns:

Object defining settings for surface property distribution

Return type:

SurfacePropertyDistributionSettings

knocke_type_surface_property_distribution(constant_contribution: float, constant_degree_one_contribution: float, cosine_periodic_degree_one_contribution: float, sine_periodic_degree_one_contribution: float, constant_degree_two_contribution: float, reference_epoch: float, period: float) tudat::simulation_setup::SecondDegreeZonalPeriodicSurfacePropertyDistributionSettings#

Factory function for creating radiative surface property distribution settings according to ‘Knocke-type’ model

Factory function for creating radiative surface property (e.g. albedo, emmisivitiy, etc.) distribution settings according to a model such as the one used by Knocke (1988). This model uses a degree two zonal spherical harmonic model, with a sinusoidal variation in the degree one coefficient. The surface property \(k\) is computed from:

\[k(\phi,t)=a_{0}+a_{1}P_{1}(\sin\phi)+a_{2}P_{2}(\sin\phi)\]
\[a_{1}=c_{0}+c_{1}\cos\left(\frac{2\pi(t-t_{0})}{T}\right)+c_{2}\sin\left(\frac{2\pi(t-t_{0})}{T}\right)\]

with the angle \(\phi\) denotes the body-fixed latitude of the evaluation point, and \(t\), \(t_{0}\) and \(T\) define the current time, reference time and period of the variation, respectively. The coefficients \(a_{0}, a_{2}, c_{0}, c_{1}, c_{2}\) are provided by the user.

Parameters:
  • constant_contribution (float) – Value of \(a_{0}\) in above formulation.

  • constant_degree_one_contribution (float) – Value of \(c_{0}\) in above formulation.

  • cosine_periodic_degree_one_contribution (float) – Value of \(c_{1}\) in above formulation.

  • sine_periodic_degree_one_contribution (float) – Value of \(c_{2}\) in above formulation.

  • constant_degree_two_contribution (float) – Value of \(a_{2}\) in above formulation.

  • reference_epoch (float) – Reference epoch \(t_{0}\) of the periodic variation.

  • period (float) – Period \(T\) of the periodic variation.

Returns:

Object defining settings for surface property distribution

Return type:

SurfacePropertyDistributionSettings

predefined_knocke_type_surface_property_distribution(predefined_model: tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.KnockeTypeSurfacePropertyDistributionModel) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.SurfacePropertyDistributionSettings#

Factory function for creating radiative surface property distribution settings according to a predefined ‘Knocke-type` model.

As spherical_harmonic_surface_property_distribution(), but with a predefined spherical harmonic distribution.

Parameters:

predefined_model (KnockeTypeSurfacePropertyDistributionModel) – Identifier for predefined Knocke-type surface property model.

Returns:

Object defining settings for surface property distribution

Return type:

SurfacePropertyDistributionSettings

custom_surface_property_distribution(custom_function: Callable[[float, float, float], float]) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.SurfacePropertyDistributionSettings#

Factory function for creating radiative surface property distribution settings according to a custom user-defined model.

Factory function for creating radiative surface property (e.g. albedo, emmisivitiy, etc.) distribution settings according to a custom user-defined model, as a function of latitude, longitude and time.

Parameters:

custom_function (Callable[[float, float, float], float]) – Function providing surface property as a function of latitude, longitude and time (in that order).

Returns:

Object defining settings for surface property distribution

Return type:

SurfacePropertyDistributionSettings

constant_radiosity(radiosity: float) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.PanelRadiosityModelSettings#

Factory function for creating settings for surface constant surface radiosity of an extended source

Factory function for creating settings for surface radiosity of an extended source, using constant Lambertian radiosity \(J\) (in \(W/m^{2}\)). For a surface panel normal of \(\hat{\mathbf{n}}\) and a vector \(\mathbf{r}\) from the surface element to the target, the resulting irradiance \(\Phi\) (in \(W/m^{2}\)) at the target is (if \(\theta>0\), or in other words if the panel is visible from the target):

\[\Phi=J\frac{A\cos\theta}{\pi ||\mathbf{r}||^{2}}\]

with \(A\) the panel area, \(\theta\) is the angle between \(\hat{\mathbf{n}}\) and \(\mathbf{r}\).

Parameters:

radiosity (float) – Constant Lambertian radiosity from surface in \(W/m^{2}\).

Returns:

Object defining settings for source panel radiosity

Return type:

PanelRadiosityModelSettings

constant_albedo_surface_radiosity(constant_albedo: float, original_source_name: str) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.PanelRadiosityModelSettings#

Factory function for creating settings for surface constant albedo surface radiosity of an extended source

Factory function for creating settings for surface radiosity of an extended source, with surface radiation the result of albedo using a Lambertian scattering law, and a constant albedo value over the surface. For a surface panel normal of \(\hat{\mathbf{n}}\), a vector \(\mathbf{r}\) from the surface element to the target, and a vector \(\mathbf{r}_{s}\) from the surface element to the original source (typically the Sun), the resulting irradiance \(\Phi\) (in \(W/m^{2}\)) at the target is (if the panel is visible from the target and the original source):

\[\Phi=\cos\theta_{s}\Phi_{s}\frac{a}{\pi}\frac{A\cos\theta}{\pi ||\mathbf{r}||^{2}}\]

with \(\theta_{s}\) the angle between \(\hat{\mathbf{n}}\) and \(\mathbf{r_{s}}\), \(\Phi_{s}\) the irradiance from the original source at the panel of the reflecting body, \(a\) is the albedo coefficient, \(A\) the panel area, \(\theta\) is the angle between \(\hat{\mathbf{n}}\) and \(\mathbf{r}\).

Parameters:
  • constant_albedo (float) – Constant value of the albedo coefficient \(a\).

  • original_source_name (str) – Name of the original source from which the radiation is reflection to the target.

Returns:

Object defining settings for source panel radiosity

Return type:

PanelRadiosityModelSettings

variable_albedo_surface_radiosity(albedo_distribution_settings: tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.SurfacePropertyDistributionSettings, original_source_name: str) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.PanelRadiosityModelSettings#

Factory function for creating settings for surface variable albedo surface radiosity of an extended source

As constant_albedo_surface_radiosity(), but with the surface albedo \(a\) defined by a surface distribution model.

Parameters:
  • albedo_distribution_settings (SurfacePropertyDistributionSettings) – Model for the surface distribution of the albedo \(a\).

  • original_source_name (str) – Name of the original source from which the radiation is reflection to the target.

Returns:

Object defining settings for source panel radiosity

Return type:

PanelRadiosityModelSettings

thermal_emission_blackbody_constant_emissivity(constant_emissivity: float, original_source_name: str) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.PanelRadiosityModelSettings#

Factory function for creating settings for surface radiosity of an extended source from an isotropically heated body with constant emmisivity

Factory function for creating settings for surface radiosity of an extended source from an isotropically heated body (e.g. IR radiation) with constant surface emissivity, where the emitted power of the body is computed from the assumption that all heat absorbed from an original source is emitted isotropically by the body. For instance, for Earth with Sun as original source, this model is equivalent to assuming that a given fraction of all heat incident of the Sun on the Earth is absorbed and causes the full Earth surface to heat to a constant temperature, which then results in the body emitting infrared radiation from its surface.

For a surface panel normal of \(\hat{\mathbf{n}}\), a vector \(\mathbf{r}\) from the surface element to the target, the resulting irradiance \(\Phi\) (in \(W/m^{2}\)) at the target is (if the panel is visible from the target and the original source):

\[\Phi=\frac{\epsilon\Phi_{s}}{4}\frac{A\cos\theta}{\pi ||\mathbf{r}||^{2}}\]

with \(\epsilon\) the emissivity, \(\Phi_{s}\) the irradiance from the original source, \(A\) the panel area, \(\theta\) is the angle between \(\hat{\mathbf{n}}\) and \(\mathbf{r}\).

Parameters:
  • constant_emissivity (float) – Constant emissivity of the surface \(\epsilon\).

  • original_source_name (str) – Name of the original source from which the radiation is reflection to the target.

Returns:

Object defining settings for source panel radiosity

Return type:

PanelRadiosityModelSettings

thermal_emission_blackbody_variable_emissivity(emissivity_distribution_model: tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.SurfacePropertyDistributionSettings, original_source_name: str) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.PanelRadiosityModelSettings#

Factory function for creating settings for surface radiosity of an extended source from an isotropically heated body with variable emmisivity

As thermal_emission_blackbody_constant_emissivity(), but with the surface emmisivity \(\epsilon\) defined by a surface distribution model.

Parameters:
  • emissivity_distribution_model (SurfacePropertyDistributionSettings) – Model for the surface distribution of the emissivity \(\epsilon\).

  • original_source_name (str) – Name of the original source from which the radiation is reflection to the target.

Returns:

Object defining settings for source panel radiosity

Return type:

PanelRadiosityModelSettings

thermal_emission_angle_based_radiosity(minimum_temperature: float, maximum_temperature: float, constant_emissivity: float, original_source_name: str) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.PanelRadiosityModelSettings#

Factory function for creating settings for surface radiosity of an extended source with surface temperature from Lemoine (2013)

Factory function for creating settings for surface radiosity of an extended source from an isotropically heated body (e.g. IR radiation) with surface temperature \(T\) computed from the angle of the surface normal and the original source as follows:

\[T=\max\left(T_{max}(\cos\phi_{s})^{1/4},T_{min} \right)\]

with \(phi_{s}\) the angle along a great cirlce arc from the panel to the subsolar (for the Sun as original source) point; for a circular body equivalent to the angle of the vector to the original source and the surface normal. The minimum and maximum temperatures are user parameters.

For a surface panel normal of \(\hat{\mathbf{n}}\), a vector \(\mathbf{r}\) from the surface element to the target, the resulting irradiance \(\Phi\) (in \(W/m^{2}\)) at the target is (if the panel is visible from the target and the original source):

\[\Phi=\epsilon kT^{4}\frac{A\cos\theta}{\pi ||\mathbf{r}||^{2}}\]

with \(\epsilon\) the emissivity, \(k\) the Stefan-Boltzmann constant, \(A\) the panel area, \(\theta\) is the angle between \(\hat{\mathbf{n}}\) and \(\mathbf{r}\).

Parameters:
  • minimum_temperature (float) – Minimum surface temperature \(T_{min}\).

  • maximum_temperature (float) – Maximum surface temperature \(T_{min}\).

  • constant_emissivity (float) – Constant emissivity of the surface \(\epsilon\).

  • original_source_name (str) – Name of the original source from which the radiation is reflection to the target.

Returns:

Object defining settings for source panel radiosity

Return type:

PanelRadiosityModelSettings

specular_diffuse_body_panel_reflection(specular_reflectivity: float, diffuse_reflectivity: float, with_instantaneous_reradiation: bool) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.BodyPanelReflectionLawSettings#

Factory function for creating settings for target panel reflection law using a specular-diffuse model

Factory function for creating settings for target panel reflection law used for a radiation pressure target, with a specular diffuse model. The details of the implementation are given by Montenbruck et al. (2015). The reflection law is defined by the absorption coefficient \(\alpha\), diffuse reflectivity \(\delta\) and specular reflectivity \(\rho\), which must meet the condition \(\alpha+\delta+\rho=1\). For the model definition, the user provides \(\alpha\) and \(\delta\) (and \(\rho\) is calculated). The reaction vector \(\hat{\mathbf{f}}\) for a panel with surface normal \(\hat{\mathbf{n}}\), and unit vector from panel surface to source \(\hat{\mathbf{r}}\) then becomes:

\[\hat{\mathbf{f}}=\cos\theta\left((\alpha+\delta)\hat{\mathbf{r}}+(\frac{2}{3}\delta+2\rho\cos\theta)\hat{\mathbf{n}} \right)\]

In addition, it can be specified whether the absorbed radiation is also instantaneously retransmitted (according to Lambert’s law), in which case the above is modified to become:

\[\hat{\mathbf{f}}=\cos\theta\left((\alpha+\delta)\left(\hat{\mathbf{r}}+\frac{2}{3}\hat{\mathbf{n}}\right)+2\rho\cos\theta\hat{\mathbf{n}} \right)\]
Parameters:
  • specular_reflectivity (float) – Specular reflectivity \(\rho\).

  • diffuse_reflectivity (float) – Diffuse reflectivity \(\delta\).

  • with_instantaneous_reradiation (bool) – Boolean denoting whether absorbed radiation is instantaneously retransmitted (yes, if true).

Returns:

Object defining settings for target panel reflection law

Return type:

BodyPanelReflectionLawSettings

lambertian_body_panel_reflection(reflectivity: float) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.BodyPanelReflectionLawSettings#

Factory function for creating settings for target panel reflection law using a Lambertian model

Factory function for creating settings for target panel reflection law used for a radiation pressure target, with a purely Lambertian model. The implementation is as specular_diffuse_body_panel_reflection(), with \(\rho=0\) and no instantaneous reradiation. The only free parameter is the reflectivity \(\delta\), such that \(\alpha=1-\delta\).

Parameters:

reflectivity (float) – Reflectivity \(\delta\)

Returns:

Object defining settings for target panel reflection law

Return type:

BodyPanelReflectionLawSettings

isotropic_radiation_source(luminosity_model: tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.LuminosityModelSettings) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.RadiationSourceModelSettings#

Factory function for creating settings for an isotropic radiation source

Factory function for creating settings for a radiation source that emits isotropically. The source is provided with a luminosity model \(L(t)\) as a (possible) function of time \(t\). The irradiance \(\Phi\) at a relative position \(\mathbf{r}\) from the source’s center is then computed from:

\[\Phi=\frac{L}{4\pi||\mathbf{r}||^{2}}\]
Parameters:

luminosity_model (LuminosityModelSettings) – Settings for the luminosity model.

Returns:

Object defining settings for source model irradiance

Return type:

RadiationSourceModelSettings

panelled_radiation_target(source_to_target_occulting_bodies: dict[str, list[str]] = {}) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.RadiationPressureTargetModelSettings#

Factory function for creating settings for a paneled radiation pressure target model

Factory function for creating settings for a paneled radiation pressure target model. Each source can have its own set of occulting bodies.

Parameters:

source_to_target_occulting_bodies (Dict[str, List[str]]) – Map (source name -> list of occulting body names) of bodies to occult sources as seen from this target.

Returns:

Object defining settings for a radiation pressure target model

Return type:

RadiationPressureTargetModelSettings

panelled_extended_radiation_source(panel_radiosity_settings: list[tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.PanelRadiosityModelSettings], number_of_panels_per_ring: list[int], original_source_occulting_bodies: dict[str, list[str]] = {}) tudatpy.kernel.numerical_simulation.environment_setup.radiation_pressure.RadiationSourceModelSettings#

Factory function for creating settings for a dynamically panelled extended radiation source

Factory function for creating settings for a radiation source that is modelled as an anisotropic extended source, such as a source due to albedo or planetary IR. The model can combined any number of superimposed surface panel radiosity models (e.g. albedo, direct radiation), each of which may or may not involve an ‘original source’ (e.g. the Sun for albedo). Each time the radiation at a given target is computed, the surface of the body is re-panelled, using the algorithm described by Knocke (1989). In short, a single panel is placed at the zenith of the evaluation point, with any number of rings around it, each of which has any number of (equispaced) panels on it. The width of each ring is such that all panels have the same projected, attenuated area. The panelling settings are defined by the user to this function. The The irradiance \(\Phi\) at a relative position \(\mathbf{r}\) from the source’s center is then computed from all \(N\) panels, each of which evaluated \(M\) panel radiosity models

\[\Phi=\sum_{i=1}^{N}\sum_{j=1}\Phi_{i,j}\]

where \(\Phi_{i,j}\) denotes the contribution to the total irradiance of panel radiosity model \(j\) on panel \(i\).

Parameters:

luminosity_model (LuminosityModelSettings) – Settings for the luminosity model.

Returns:

Object defining settings for source model irradiance

Return type:

RadiationSourceModelSettings

Enumerations#

class KnockeTypeSurfacePropertyDistributionModel#

Members:

custom

albedo_knocke

emissivity_knocke

property name#

Classes#

LuminosityModelSettings

Base class for providing settings for body source luminosity settings, to be used (typically but not necesarilly) for defining the Sun's luminosity.

SurfacePropertyDistributionSettings

Base class for providing settings for body surface property distribution settings, to be used (typically but not necesarilly) for defining surface distribution of albedo and emissivity of solar system bodies for calculations of albedo and planetary radiation pressure.Note that not all albedo/emissivity models require this type of distribution model

PanelRadiosityModelSettings

Base class for providing settings for body panel radiosity models, to be used (typically but not necesarilly) for defining surface radiosoty of a panelled solar system body as a result of albedo and/or planetary radiation pressure

BodyPanelReflectionLawSettings

Base class for providing settings for body panel relfection law models, to be used for defining spacecraft surface properties relevant for the compuation of radiation pressure acting on a macromodel.

RadiationSourceModelSettings

Base class for providing settings for properties of a radiation source (e.g.

RadiationPressureTargetModelSettings

Base class for providing settings for properties of a radiation target (e.g.

class LuminosityModelSettings#

Base class for providing settings for body source luminosity settings, to be used (typically but not necesarilly) for defining the Sun’s luminosity.

class SurfacePropertyDistributionSettings#

Base class for providing settings for body surface property distribution settings, to be used (typically but not necesarilly) for defining surface distribution of albedo and emissivity of solar system bodies for calculations of albedo and planetary radiation pressure.Note that not all albedo/emissivity models require this type of distribution model

class PanelRadiosityModelSettings#

Base class for providing settings for body panel radiosity models, to be used (typically but not necesarilly) for defining surface radiosoty of a panelled solar system body as a result of albedo and/or planetary radiation pressure

class BodyPanelReflectionLawSettings#

Base class for providing settings for body panel relfection law models, to be used for defining spacecraft surface properties relevant for the compuation of radiation pressure acting on a macromodel.

class RadiationSourceModelSettings#

Base class for providing settings for properties of a radiation source (e.g. Sun), to be used in the context of (for instance) calculation of radiation pressure on spacecraft

class RadiationPressureTargetModelSettings#

Base class for providing settings for properties of a radiation target (e.g. spacecraft), to be used in the context of (for instance) calculation of radiation pressure on spacecraft