Definition of classes and methods used to determine close encounters
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(tides_derivs_func), | intent(inout) | :: | self | |||
| real(kind=DP), | intent(in), | dimension(:) | :: | x | ||
| real(kind=DP), | intent(in) | :: | t |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| procedure(tidederiv) | :: | lambda | ||||
| real(kind=DP), | intent(in) | :: | dt | |||
| real(kind=DP), | intent(in), | dimension(:,:) | :: | rbeg | ||
| real(kind=DP), | intent(in), | dimension(:,:) | :: | rend |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(base_object), | intent(inout) | :: | self | Swiftest massive body object |
||
| class(base_nbody_system), | intent(inout) | :: | nbody_system | Swiftest nbody system object |
Need to add more arguments so we can pull in mass, radius, Ip, J2, etc…
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=DP), | intent(in), | dimension(:,:) | :: | rot_pl_cb | Array of rotations. The last element is the central body, and all others are massive bodies |
|
| real(kind=DP), | intent(in) | :: | t | Current time, which is used to interpolate the massive body positions |
||
| real(kind=DP), | intent(in) | :: | dt | Total step size |
||
| real(kind=DP), | intent(in), | dimension(:,:) | :: | rbeg | ||
| real(kind=DP), | intent(in), | dimension(:,:) | :: | rend |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(base_nbody_system), | intent(inout) | :: | self | Swiftest nbody system object |
||
| class(base_parameters), | intent(in) | :: | param | Current run configuration parameters |
||
| real(kind=DP), | intent(in) | :: | t | Simulation time |
||
| real(kind=DP), | intent(in) | :: | dt | Current stepsize |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=DP), | intent(in), | dimension(:) | :: | x | ||
| real(kind=DP), | intent(in) | :: | t | |||
| real(kind=DP), | intent(in) | :: | dt | |||
| real(kind=DP), | intent(in), | dimension(:,:) | :: | rbeg | ||
| real(kind=DP), | intent(in), | dimension(:,:) | :: | rend |
Base class for an lambda function object. This object takes no additional arguments other than the dependent variable x, an array of real numbers
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=DP), | public | :: | dt | ||||
| procedure(lambda0), | public, | pointer, nopass | :: | lambdaptr | => | null() | |
| procedure(tidederiv), | public, | pointer, nopass | :: | lambdaptr_tides_deriv | |||
| procedure(lambda0tvar), | public, | pointer, nopass | :: | lambdaptr_tvar | => | null() | |
| real(kind=DP), | public, | dimension(:), allocatable | :: | lastarg | |||
| real(kind=DP), | public | :: | lastval | ||||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rbeg | |||
| real(kind=DP), | public, | dimension(:,:), allocatable | :: | rend | |||
| real(kind=DP), | public | :: | t |
| procedure, public :: eval => lambda_eval_0 | |
| procedure, public :: evalt => tides_derivs_eval | |
| generic, public :: init => lambda_init_0, lambda_init_tvar, tides_derivs_init | |
| procedure, public, nopass :: lambda_init_0 | |
| procedure, public, nopass :: lambda_init_tvar | |
| procedure, public, nopass :: tides_derivs_init |