This module defines functions used for the computation of radiation effects on massive bodies. Equations taken from Burns, Lamy & Soter (1979) Icarus 40, 1-48.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(helio_dust), | intent(inout) | :: | self |
Swiftest body object |
||
| class(helio_nbody_system), | intent(inout) | :: | nbody_system |
Swiftest nbody system object |
||
| class(swiftest_parameters), | intent(in) | :: | param |
Current run configuration parameters |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(symba_dust), | intent(inout) | :: | self |
Swiftest body object |
||
| class(symba_nbody_system), | intent(inout) | :: | nbody_system |
Swiftest nbody system object |
||
| class(swiftest_parameters), | intent(in) | :: | param |
Current run configuration parameters |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(whm_dust), | intent(inout) | :: | self |
Swiftest body object |
||
| class(whm_nbody_system), | intent(inout) | :: | nbody_system |
Swiftest nbody system object |
||
| class(swiftest_parameters), | intent(in) | :: | param |
Current run configuration parameters |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public, | dimension(:), allocatable | :: | Gmass |
Mass gravitational term G * mass (units GU * MU) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | a |
Semimajor axis (pericentric distance for a parabolic orbit) |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | agr |
Acceleration due to post-Newtonian correction |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | ah |
Total heliocentric acceleration |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | aobl |
Barycentric accelerations of bodies due to central body oblatenes |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | atide |
Tanngential component of acceleration of bodies due to tides |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | atp |
semimajor axis following perihelion passage |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | capm |
Mean anomaly |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | capom |
Longitude of ascending node |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | density |
Body mass density - calculated internally (units MU / DU**3) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | e |
Eccentricity |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | id |
Identifier |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | inc |
Inclination |
||
| type(swiftest_particle_info), | public, | dimension(:), allocatable | :: | info |
Particle metadata information |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | ir3h |
Inverse heliocentric radius term (1/rh**3) |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | isperi |
perihelion passage flag |
||
| integer(kind=I4B), | public, | dimension(:,:), allocatable | :: | k_pltp |
Index array used to convert flattened the body-body comparison upper triangular matrix |
||
| logical, | public, | dimension(:), allocatable | :: | lcollision |
flag indicating whether body has merged with another this time step |
||
| logical, | public, | dimension(:), allocatable | :: | ldiscard |
Body should be discarded |
||
| logical, | public, | dimension(:), allocatable | :: | lencounter |
flag indicating whether body is part of an encounter this time step |
||
| logical, | public | :: | lfirst | = | .true. |
Run the current step as a first |
|
| logical, | public, | dimension(:), allocatable | :: | lmask |
Logical mask used to select a subset of bodies when performing certain operations (drift, kick, accel, etc.) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mass |
Body mass (units MU) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mu |
G * (Mcb + [m]) |
||
| integer(kind=I4B), | public | :: | nbody | = | 0 |
Number of bodies |
|
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | nplenc |
number of encounters with planets this time step |
||
| integer(kind=I8B), | public | :: | npltp |
Number of pl-tp comparisons in the flattened upper triangular matrix |
|||
| real(kind=DP), | public, | dimension(:), allocatable | :: | omega |
Argument of pericenter |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | peri |
perihelion distance |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rb |
Barycentric position |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rh |
Heliocentric position |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | status |
An integrator-specific status indicator |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | vb |
Barycentric velocity |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | vh |
Heliocentric velocity |
| procedure, public :: accel => helio_kick_getacch_tp | Compute heliocentric accelerations of massive bodies |
| procedure, public :: accel_gr => helio_gr_kick_getacch_tp | Acceleration term arising from the post-Newtonian correction |
| procedure, public :: accel_int => swiftest_kick_getacch_int_tp | Compute direct cross (third) term heliocentric accelerations of test particles by massive bodies |
| procedure, public :: accel_non_spherical_cb => swiftest_non_spherical_cb_acc_tp | Compute the barycentric accelerations of bodies due to the oblateness of the central body |
| procedure, public :: accel_pr => helio_dust_accel_pr | |
| procedure, public :: accel_user => swiftest_user_kick_getacch_body | Add user-supplied heliocentric accelerations to planets |
| procedure, public :: append => swiftest_util_append_tp | Appends elements from one structure to another |
| procedure, public :: b2h => swiftest_util_coord_b2h_tp | Convert test particles from barycentric to heliocentric coordinates (position and velocity) |
| procedure, public :: dealloc => swiftest_util_dealloc_tp | Deallocates all allocatable arrays |
| procedure, public :: discard => swiftest_discard_tp | Check to see if test particles should be discarded based on their positions relative to the massive bodies |
| procedure, public :: drift => helio_drift_tp | Method for Danby drift in Democratic Heliocentric coordinates |
| procedure, public :: el2xv => swiftest_orbel_el2xv_vec | Convert orbital elements to position and velocity vectors |
| procedure, public :: fill => swiftest_util_fill_tp | “Fills” bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) |
| procedure, public :: get_peri => swiftest_util_peri_body | Determine nbody_system pericenter passages for test particles |
| procedure, public :: gr_pos_kick => helio_gr_p4_tp | Position kick due to p**4 term in the post-Newtonian correction |
| procedure, public :: h2b => swiftest_util_coord_h2b_tp | Convert test particles from heliocentric to barycentric coordinates (position and velocity) |
| procedure, public :: kick => helio_kick_vb_tp | Kicks the barycentric velocities |
| procedure, public :: lindrift => helio_drift_linear_tp | Method for linear drift of massive bodies due to barycentric momentum of Sun |
| procedure, public :: pv2v => swiftest_gr_pv2vh_body | Converts from psudeovelocity to velocity for GR calculations using symplectic integrators |
| generic, public :: read_frame => read_frame_bin | Add the generic read frame for Fortran binary files |
| procedure, public :: read_frame_bin => swiftest_io_read_frame_body | I/O routine for writing out a single frame of time-series data for the central body |
| procedure, public :: read_in => swiftest_io_read_in_body | Read in body initial conditions from an ascii file |
| procedure, public :: rearrange => swiftest_util_sort_rearrange_tp | Rearranges the order of array elements of body based on an input index array. Used in sorting methods |
| procedure, public :: rearray => swiftest_util_rearray_tp | Clean up the test particle structures to remove discarded bodies |
| procedure, public :: resize => swiftest_util_resize_tp | Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. |
| procedure, public :: rh2rb => swiftest_util_coord_rh2rb_tp | Convert test particles from heliocentric to barycentric coordinates (position only) |
| procedure, public :: save_discard => swiftest_util_save_discard_body | Saves a snapshot of the this body to the collision storage object |
| procedure, public :: set_ir3 => swiftest_util_set_ir3h | Sets the inverse heliocentric radius term (1/rh**3) |
| procedure, public :: set_mu => swiftest_util_set_mu_tp | Method used to construct the vectorized form of the central body mass |
| procedure, public :: setup => swiftest_util_setup_tp | A base constructor that sets the number of bodies and |
| procedure, public :: sort => swiftest_util_sort_tp | Sorts body arrays by a sortable component |
| procedure, public :: spill => swiftest_util_spill_tp | “Spills” bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) |
| procedure, public :: step => helio_step_tp | Steps the body forward one stepsize |
| procedure, public :: v2pv => swiftest_gr_vh2pv_body | Converts from velocity to psudeovelocity for GR calculations using symplectic integrators |
| procedure, public :: vb2vh => swiftest_util_coord_vb2vh_tp | Convert test particles from barycentric to heliocentric coordinates (velocity only) |
| procedure, public :: vh2vb => swiftest_util_coord_vh2vb_tp | Convert test particles from heliocentric to barycentric coordinates (velocity only) |
| procedure, public :: write_frame => swiftest_io_netcdf_write_frame_body | I/O routine for writing out a single frame of time-series data for all bodies in the nbody_system in NetCDF format |
| procedure, public :: write_info => swiftest_io_netcdf_write_info_body | Dump contents of particle information metadata to file |
| procedure, public :: xv2el => swiftest_orbel_xv2el_vec | Convert position and velocity vectors to orbital elements |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public, | dimension(:), allocatable | :: | Gmass |
Mass gravitational term G * mass (units GU * MU) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | a |
Semimajor axis (pericentric distance for a parabolic orbit) |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | agr |
Acceleration due to post-Newtonian correction |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | ah |
Total heliocentric acceleration |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | aobl |
Barycentric accelerations of bodies due to central body oblatenes |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | atide |
Tanngential component of acceleration of bodies due to tides |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | atp |
semimajor axis following perihelion passage |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | capm |
Mean anomaly |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | capom |
Longitude of ascending node |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | density |
Body mass density - calculated internally (units MU / DU**3) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | e |
Eccentricity |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | id |
Identifier |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | inc |
Inclination |
||
| type(swiftest_particle_info), | public, | dimension(:), allocatable | :: | info |
Particle metadata information |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | ir3h |
Inverse heliocentric radius term (1/rh**3) |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | isperi |
perihelion passage flag |
||
| integer(kind=I4B), | public, | dimension(:,:), allocatable | :: | k_pltp |
Index array used to convert flattened the body-body comparison upper triangular matrix |
||
| logical, | public, | dimension(:), allocatable | :: | lcollision |
flag indicating whether body has merged with another this time step |
||
| logical, | public, | dimension(:), allocatable | :: | ldiscard |
Body should be discarded |
||
| logical, | public, | dimension(:), allocatable | :: | lencounter |
flag indicating whether body is part of an encounter this time step |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | levelg |
level at which this particle should be moved |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | levelm |
deepest encounter level achieved this time step |
||
| logical, | public | :: | lfirst | = | .true. |
Run the current step as a first |
|
| logical, | public, | dimension(:), allocatable | :: | lmask |
Logical mask used to select a subset of bodies when performing certain operations (drift, kick, accel, etc.) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mass |
Body mass (units MU) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mu |
G * (Mcb + [m]) |
||
| integer(kind=I4B), | public | :: | nbody | = | 0 |
Number of bodies |
|
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | nplenc |
number of encounters with planets this time step |
||
| integer(kind=I8B), | public | :: | npltp |
Number of pl-tp comparisons in the flattened upper triangular matrix |
|||
| real(kind=DP), | public, | dimension(:), allocatable | :: | omega |
Argument of pericenter |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | peri |
perihelion distance |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | radius |
Body radius (units DU) |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rb |
Barycentric position |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rh |
Heliocentric position |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | status |
An integrator-specific status indicator |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | vb |
Barycentric velocity |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | vh |
Heliocentric velocity |
| procedure, public :: accel => symba_kick_getacch_tp | Compute heliocentric accelerations of test particles |
| procedure, public :: accel_gr => helio_gr_kick_getacch_tp | Acceleration term arising from the post-Newtonian correction |
| procedure, public :: accel_int => swiftest_kick_getacch_int_tp | Compute direct cross (third) term heliocentric accelerations of test particles by massive bodies |
| procedure, public :: accel_non_spherical_cb => swiftest_non_spherical_cb_acc_tp | Compute the barycentric accelerations of bodies due to the oblateness of the central body |
| procedure, public :: accel_pr => symba_dust_accel_pr | |
| procedure, public :: accel_user => swiftest_user_kick_getacch_body | Add user-supplied heliocentric accelerations to planets |
| procedure, public :: append => symba_util_append_tp | Appends elements from one structure to another |
| procedure, public :: b2h => swiftest_util_coord_b2h_tp | Convert test particles from barycentric to heliocentric coordinates (position and velocity) |
| procedure, public :: dealloc => symba_util_dealloc_tp | Deallocates all allocatable arrays |
| procedure, public :: discard => swiftest_discard_tp | Check to see if test particles should be discarded based on their positions relative to the massive bodies |
| procedure, public :: drift => symba_drift_tp | Method for Danby drift in Democratic Heliocentric coordinates. Sets the mask to the current recursion level |
| procedure, public :: el2xv => swiftest_orbel_el2xv_vec | Convert orbital elements to position and velocity vectors |
| procedure, public :: encounter_check => symba_encounter_check_tp | Checks if any test particles are undergoing a close encounter with a massive body |
| procedure, public :: fill => symba_util_fill_tp | “Fills” bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) |
| procedure, public :: get_peri => swiftest_util_peri_body | Determine nbody_system pericenter passages for test particles |
| procedure, public :: gr_pos_kick => symba_gr_p4_tp | Position kick due to p**4 term in the post-Newtonian correction |
| procedure, public :: h2b => swiftest_util_coord_h2b_tp | Convert test particles from heliocentric to barycentric coordinates (position and velocity) |
| procedure, public :: kick => helio_kick_vb_tp | Kicks the barycentric velocities |
| procedure, public :: lindrift => helio_drift_linear_tp | Method for linear drift of massive bodies due to barycentric momentum of Sun |
| procedure, public :: pv2v => swiftest_gr_pv2vh_body | Converts from psudeovelocity to velocity for GR calculations using symplectic integrators |
| generic, public :: read_frame => read_frame_bin | Add the generic read frame for Fortran binary files |
| procedure, public :: read_frame_bin => swiftest_io_read_frame_body | I/O routine for writing out a single frame of time-series data for the central body |
| procedure, public :: read_in => swiftest_io_read_in_body | Read in body initial conditions from an ascii file |
| procedure, public :: rearrange => symba_util_sort_rearrange_tp | Rearranges the order of array elements of body based on an input index array. Used in sorting methods |
| procedure, public :: rearray => swiftest_util_rearray_tp | Clean up the test particle structures to remove discarded bodies |
| procedure, public :: resize => symba_util_resize_tp | Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. |
| procedure, public :: rh2rb => swiftest_util_coord_rh2rb_tp | Convert test particles from heliocentric to barycentric coordinates (position only) |
| procedure, public :: save_discard => swiftest_util_save_discard_body | Saves a snapshot of the this body to the collision storage object |
| procedure, public :: set_ir3 => swiftest_util_set_ir3h | Sets the inverse heliocentric radius term (1/rh**3) |
| procedure, public :: set_mu => swiftest_util_set_mu_tp | Method used to construct the vectorized form of the central body mass |
| procedure, public :: setup => symba_util_setup_tp | Constructor method - Allocates space for the input number of bodies |
| procedure, public :: sort => symba_util_sort_tp | Sorts body arrays by a sortable componen |
| procedure, public :: spill => symba_util_spill_tp | “Spills” bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) |
| procedure, public :: step => helio_step_tp | Steps the body forward one stepsize |
| procedure, public :: v2pv => swiftest_gr_vh2pv_body | Converts from velocity to psudeovelocity for GR calculations using symplectic integrators |
| procedure, public :: vb2vh => swiftest_util_coord_vb2vh_tp | Convert test particles from barycentric to heliocentric coordinates (velocity only) |
| procedure, public :: vh2vb => swiftest_util_coord_vh2vb_tp | Convert test particles from heliocentric to barycentric coordinates (velocity only) |
| procedure, public :: write_frame => swiftest_io_netcdf_write_frame_body | I/O routine for writing out a single frame of time-series data for all bodies in the nbody_system in NetCDF format |
| procedure, public :: write_info => swiftest_io_netcdf_write_info_body | Dump contents of particle information metadata to file |
| procedure, public :: xv2el => swiftest_orbel_xv2el_vec | Convert position and velocity vectors to orbital elements |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public, | dimension(:), allocatable | :: | Gmass |
Mass gravitational term G * mass (units GU * MU) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | a |
Semimajor axis (pericentric distance for a parabolic orbit) |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | agr |
Acceleration due to post-Newtonian correction |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | ah |
Total heliocentric acceleration |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | aobl |
Barycentric accelerations of bodies due to central body oblatenes |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | atide |
Tanngential component of acceleration of bodies due to tides |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | atp |
semimajor axis following perihelion passage |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | capm |
Mean anomaly |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | capom |
Longitude of ascending node |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | density |
Body mass density - calculated internally (units MU / DU**3) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | e |
Eccentricity |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | id |
Identifier |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | inc |
Inclination |
||
| type(swiftest_particle_info), | public, | dimension(:), allocatable | :: | info |
Particle metadata information |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | ir3h |
Inverse heliocentric radius term (1/rh**3) |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | isperi |
perihelion passage flag |
||
| integer(kind=I4B), | public, | dimension(:,:), allocatable | :: | k_pltp |
Index array used to convert flattened the body-body comparison upper triangular matrix |
||
| logical, | public, | dimension(:), allocatable | :: | lcollision |
flag indicating whether body has merged with another this time step |
||
| logical, | public, | dimension(:), allocatable | :: | ldiscard |
Body should be discarded |
||
| logical, | public, | dimension(:), allocatable | :: | lencounter |
flag indicating whether body is part of an encounter this time step |
||
| logical, | public | :: | lfirst | = | .true. |
Run the current step as a first |
|
| logical, | public, | dimension(:), allocatable | :: | lmask |
Logical mask used to select a subset of bodies when performing certain operations (drift, kick, accel, etc.) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mass |
Body mass (units MU) |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | mu |
G * (Mcb + [m]) |
||
| integer(kind=I4B), | public | :: | nbody | = | 0 |
Number of bodies |
|
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | nplenc |
number of encounters with planets this time step |
||
| integer(kind=I8B), | public | :: | npltp |
Number of pl-tp comparisons in the flattened upper triangular matrix |
|||
| real(kind=DP), | public, | dimension(:), allocatable | :: | omega |
Argument of pericenter |
||
| real(kind=DP), | public, | dimension(:), allocatable | :: | peri |
perihelion distance |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rb |
Barycentric position |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rh |
Heliocentric position |
||
| integer(kind=I4B), | public, | dimension(:), allocatable | :: | status |
An integrator-specific status indicator |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | vb |
Barycentric velocity |
||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | vh |
Heliocentric velocity |
| procedure, public :: accel => whm_kick_getacch_tp | Compute heliocentric accelerations of test particles |
| procedure, public :: accel_gr => whm_gr_kick_getacch_tp | Acceleration term arising from the post-Newtonian correction |
| procedure, public :: accel_int => swiftest_kick_getacch_int_tp | Compute direct cross (third) term heliocentric accelerations of test particles by massive bodies |
| procedure, public :: accel_non_spherical_cb => swiftest_non_spherical_cb_acc_tp | Compute the barycentric accelerations of bodies due to the oblateness of the central body |
| procedure, public :: accel_pr => whm_dust_accel_pr | |
| procedure, public :: accel_user => swiftest_user_kick_getacch_body | Add user-supplied heliocentric accelerations to planets |
| procedure, public :: append => swiftest_util_append_tp | Appends elements from one structure to another |
| procedure, public :: b2h => swiftest_util_coord_b2h_tp | Convert test particles from barycentric to heliocentric coordinates (position and velocity) |
| procedure, public :: dealloc => swiftest_util_dealloc_tp | Deallocates all allocatable arrays |
| procedure, public :: discard => swiftest_discard_tp | Check to see if test particles should be discarded based on their positions relative to the massive bodies |
| procedure, public :: drift => swiftest_drift_body | Loop through bodies and call Danby drift routine on heliocentric variables |
| procedure, public :: el2xv => swiftest_orbel_el2xv_vec | Convert orbital elements to position and velocity vectors |
| procedure, public :: fill => swiftest_util_fill_tp | “Fills” bodies from one object into another depending on the results of a mask (uses the UNPACK intrinsic) |
| procedure, public :: get_peri => swiftest_util_peri_body | Determine nbody_system pericenter passages for test particles |
| procedure, public :: gr_pos_kick => whm_gr_p4_tp | Position kick due to p**4 term in the post-Newtonian correction |
| procedure, public :: h2b => swiftest_util_coord_h2b_tp | Convert test particles from heliocentric to barycentric coordinates (position and velocity) |
| procedure, public :: kick => whm_kick_vh_tp | Kick heliocentric velocities of test particles |
| procedure, public :: pv2v => swiftest_gr_pv2vh_body | Converts from psudeovelocity to velocity for GR calculations using symplectic integrators |
| generic, public :: read_frame => read_frame_bin | Add the generic read frame for Fortran binary files |
| procedure, public :: read_frame_bin => swiftest_io_read_frame_body | I/O routine for writing out a single frame of time-series data for the central body |
| procedure, public :: read_in => swiftest_io_read_in_body | Read in body initial conditions from an ascii file |
| procedure, public :: rearrange => swiftest_util_sort_rearrange_tp | Rearranges the order of array elements of body based on an input index array. Used in sorting methods |
| procedure, public :: rearray => swiftest_util_rearray_tp | Clean up the test particle structures to remove discarded bodies |
| procedure, public :: resize => swiftest_util_resize_tp | Checks the current size of a Swiftest body against the requested size and resizes it if it is too small. |
| procedure, public :: rh2rb => swiftest_util_coord_rh2rb_tp | Convert test particles from heliocentric to barycentric coordinates (position only) |
| procedure, public :: save_discard => swiftest_util_save_discard_body | Saves a snapshot of the this body to the collision storage object |
| procedure, public :: set_ir3 => swiftest_util_set_ir3h | Sets the inverse heliocentric radius term (1/rh**3) |
| procedure, public :: set_mu => swiftest_util_set_mu_tp | Method used to construct the vectorized form of the central body mass |
| procedure, public :: setup => swiftest_util_setup_tp | A base constructor that sets the number of bodies and |
| procedure, public :: sort => swiftest_util_sort_tp | Sorts body arrays by a sortable component |
| procedure, public :: spill => swiftest_util_spill_tp | “Spills” bodies from one object to another depending on the results of a mask (uses the PACK intrinsic) |
| procedure, public :: step => whm_step_tp | Steps the particle forward one stepsize |
| procedure, public :: v2pv => swiftest_gr_vh2pv_body | Converts from velocity to psudeovelocity for GR calculations using symplectic integrators |
| procedure, public :: vb2vh => swiftest_util_coord_vb2vh_tp | Convert test particles from barycentric to heliocentric coordinates (velocity only) |
| procedure, public :: vh2vb => swiftest_util_coord_vh2vb_tp | Convert test particles from heliocentric to barycentric coordinates (velocity only) |
| procedure, public :: write_frame => swiftest_io_netcdf_write_frame_body | I/O routine for writing out a single frame of time-series data for all bodies in the nbody_system in NetCDF format |
| procedure, public :: write_info => swiftest_io_netcdf_write_info_body | Dump contents of particle information metadata to file |
| procedure, public :: xv2el => swiftest_orbel_xv2el_vec | Convert position and velocity vectors to orbital elements |