gravity_field_variation#

This module contains a set of factory functions for setting up the gravity field variations of a (spherical harmonic) gravity field.

Functions#

solid_body_tide(tide_raising_body, ...)

Factory function for creating solid body tides.

solid_body_tide_complex_k(tide_raising_body, ...)

Factory function for creating solid body tides.

solid_body_tide_degree_variable_k(...)

Factory function for creating solid body tides.

solid_body_tide_degree_variable_complex_k(...)

Factory function for creating solid body tides.

solid_body_tide_degree_order_variable_k(...)

Factory function for creating solid body tides.

solid_body_tide_degree_order_variable_complex_k(...)

Factory function for creating solid body tides.

solid_body_tide(tide_raising_body: str, love_number: float, degree: int) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings#

Factory function for creating solid body tides.

Factory function for creating solid body tides, using a single real Love number at a single degree (e.g. \(k_{2}\), \(k_{3}\), etc.). This function evaluates Eq. (6.6) from the IERS Conventions 2010, with real \(k_{l}=k_{lm}\), a single value of \(l\) and a single tide-raising body \(j\).

Parameters:
  • tide_raising_body (str) – Name of body raising the tide.

  • love_number (float) – Constant real Love number to use for body undergoing deformation, at the spherical harmonic degree defined by ‘degree’ input.

  • degree (int) – Degree of the spherical harmonic gravity field, and associated Love number, that is to be considered.

Returns:

Instance of the BasicSolidBodyGravityFieldVariationSettings derived GravityFieldVariationSettings class

Return type:

BasicSolidBodyGravityFieldVariationSettings

Examples

In this example, we create gravity field variations of Earth for a tide raised by the Moon, with a single Love number \(k_{2}\) of 0.301, and add it to the list of gravity field variations

tide_raising_body = "Moon"
degree = 2
gravity_field_variation_list = list()
gravity_field_variation_list.append( environment_setup.gravity_field_variation.solid_body_tide(
     tide_raising_body, love_number, degree )
body_settings.get( "Earth" ).gravity_field_variation_settings = gravity_field_variation_list
solid_body_tide_complex_k(tide_raising_body: str, love_number: complex, degree: int) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings#

Factory function for creating solid body tides.

As solid_body_tide(), but with complex value for the Love number.

Parameters:
  • tide_raising_body (str) – Name of body raising the tide.

  • love_number (complex) – Constant real Love number to use for body undergoing deformation, at the spherical harmonic degree defined by ‘degree’ input.

  • degree (int) – Degree of the spherical harmonic gravity field, and associated Love number, that is to be considered.

Returns:

Instance of the BasicSolidBodyGravityFieldVariationSettings derived GravityFieldVariationSettings class

Return type:

BasicSolidBodyGravityFieldVariationSettings

solid_body_tide_degree_variable_k(tide_raising_body: str, love_number_per_degree: Dict[int, float]) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings#

Factory function for creating solid body tides.

Factory function for creating solid body tides, using a set of real, separate, Love numbers at any number of degrees (e.g. \(k_{2}\), \(k_{3}\), etc.). This output of this function is effectively identical to a list of outputs to solid_body_tide(), with differing degrees and associated Love numbers. This function evaluates Eq. (6.6) from the IERS Conventions 2010, with a set of real values \(k_{l}=k_{lm}\), at a set of values of \(l\) and a single tide-raising body \(j\).

Parameters:
  • tide_raising_body (str) – Name of body raising the tide.

  • love_number_per_degree (dict( int, float )) – Dictionary of Love numbers for each degree that is to be taken into account, with the key representing the degree \(l\) of the Love number, and value containing the Love number \(k_{l}\) itself

Returns:

Instance of the BasicSolidBodyGravityFieldVariationSettings derived GravityFieldVariationSettings class

Return type:

BasicSolidBodyGravityFieldVariationSettings

Examples

In this example, we create gravity field variations of Earth for a tide raised by the Moon, with a Love numbers \(k_{2}=0.301\), and \(k_{3}=0.09\), and add it to the list of gravity field variations

tide_raising_body = "Moon"
love_numbers = dict( )
love_numbers[ 2 ] = 0.301
love_numbers[ 3 ] = 0.09
gravity_field_variation_list = list()
gravity_field_variation_list.append( environment_setup.gravity_field_variation.solid_body_tide(
     tide_raising_body, love_numbers )
body_settings.get( "Earth" ).gravity_field_variation_settings = gravity_field_variation_list
solid_body_tide_degree_variable_complex_k(tide_raising_body: str, love_number_per_degree: Dict[int, complex]) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings#

Factory function for creating solid body tides.

As solid_body_tide_degree_variable_k(), but with complex values for the Love numbers.

Parameters:
  • tide_raising_body (str) – Name of body raising the tide.

  • love_number_per_degree (dict( int, complex )) – Dictionary of Love numbers for each degree that is to be taken into account, with the key representing the degree \(l\) of the Love number, and value containing the Love number \(k_{l}\) itself.

Returns:

Instance of the BasicSolidBodyGravityFieldVariationSettings derived GravityFieldVariationSettings class

Return type:

BasicSolidBodyGravityFieldVariationSettings

solid_body_tide_degree_order_variable_k(tide_raising_body: str, love_number_per_degree_and_order: Dict[int, List[float]]) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings#

Factory function for creating solid body tides.

Factory function for creating solid body tides, using a set of real, separate, Love numbers at any number of degrees and orders (e.g. \(k_{20}\), \(k_{21}\), \(k_{22}\), \(k_{30}\), etc.). This function evaluates Eq. (6.6) from the IERS Conventions 2010, with a set of real values \(k_{lm}\), at a set of values of \(l\) and a single tide-raising body \(j\).

Parameters:
  • tide_raising_body (str) – Name of body raising the tide.

  • love_number_per_degree_and_order (dict( int, list( float ) )) – Dictionary of Love numbers for each degree that is to be taken into account, with the key representing the degree \(l\) of the Love number, and value containing the list of Love numbers \(k_{lm}\) at this degree. Note that, for Love numbers at degree \(l\), the associated list should contain \(l+1\) entries, representing the Love numbers (in order) \(k_{l0}\), \(k_{l1}\)…:math:k_{ll}.

Returns:

Instance of the BasicSolidBodyGravityFieldVariationSettings derived GravityFieldVariationSettings class

Return type:

BasicSolidBodyGravityFieldVariationSettings

Examples

In this example, we create gravity field variations of the Moon, for a tide raised by Earth, with a Love numbers \(k_{20}=0.024615\), \(k_{21}=0.023915\) and \(k_{21}=0.024852\), and add it to the list of gravity field variations

tide_raising_body = "Earth"
love_numbers = dict( )
love_numbers[ 2 ] = list( )
love_numbers[ 2 ].append( 0.024615 )
love_numbers[ 2 ].append( 0  .023915 )
love_numbers[ 2 ].append( 0.024852 )
gravity_field_variation_list = list()
gravity_field_variation_list.append( environment_setup.gravity_field_variation.solid_body_tide(
     tide_raising_body, love_numbers )
body_settings.get( "Earth" ).gravity_field_variation_settings = gravity_field_variation_list
solid_body_tide_degree_order_variable_complex_k(tide_raising_body: str, love_number_per_degree_and_order: Dict[int, List[complex]]) tudatpy.kernel.numerical_simulation.environment_setup.gravity_field_variation.GravityFieldVariationSettings#

Factory function for creating solid body tides.

As solid_body_tide_degree_order_variable_k(), but with complex values for the Love number.

Parameters:
  • tide_raising_body (str) – Name of body raising the tide.

  • love_number_per_degree (dict( int, list( complex ) )) – Dictionary of Love numbers for each degree that is to be taken into account, with the key representing the degree \(l\) of the Love number, and value containing the list of Love numbers \(k_{lm}\) at this degree. Note that, for Love numbers at degree \(l\), the associated list should contain \(l+1\) entries, representing the Love numbers (in order) \(k_{l0}\), \(k_{l1}\)…:math:k_{ll}.

Returns:

Instance of the BasicSolidBodyGravityFieldVariationSettings derived GravityFieldVariationSettings class

Return type:

BasicSolidBodyGravityFieldVariationSettings

Classes#

GravityFieldVariationSettings

Base class for providing settings for gravity field variations.

BasicSolidBodyGravityFieldVariationSettings

Class for providing settings for solid body tidal gravity field variations, derived from GravityFieldVariationSettings.

class GravityFieldVariationSettings#

Base class for providing settings for gravity field variations.

class BasicSolidBodyGravityFieldVariationSettings#

Class for providing settings for solid body tidal gravity field variations, derived from GravityFieldVariationSettings.