tides Module

  • The Purdue Swiftest Team - David A. Minton, Carlisle A. Wishard, Jennifer L.L. Pouplin, and Jacob R. Elliott
  • 66 statements
  • Source File

Definition of classes and methods used to determine close encounters


Uses

  • module~~tides~~UsesGraph module~tides tides module~base base module~tides->module~base module~lambda_function lambda_function module~tides->module~lambda_function globals globals module~base->globals module~coarray coarray module~base->module~coarray module~lambda_function->globals module~coarray->globals

Used by

  • module~~tides~~UsedByGraph module~tides tides module~s_tides_kick_getacch s_tides_kick_getacch module~s_tides_kick_getacch->module~tides module~s_tides_step_rot s_tides_step_rot module~s_tides_step_rot->module~tides

Contents


Interfaces

public interface lambda_obj

interface

  • public module module function tides_derivs_eval(self, x, t) result(y)

    Arguments

    TypeIntentOptionalAttributesName
    class(tides_derivs_func), intent(inout) :: self
    real(kind=DP), intent(in), dimension(:):: x
    real(kind=DP), intent(in) :: t

    Return Value real(kind=DP),dimension(:), allocatable

interface

  • public module module function tides_derivs_init(lambda, dt, rbeg, rend) result(f)

    Arguments

    TypeIntentOptionalAttributesName
    procedure(tidederiv) :: lambda
    real(kind=DP), intent(in) :: dt
    real(kind=DP), intent(in), dimension(:,:):: rbeg
    real(kind=DP), intent(in), dimension(:,:):: rend

    Return Value type(tides_derivs_func)

interface

  • public module module subroutine tides_kick_getacch_pl(self, nbody_system)

    Arguments

    TypeIntentOptionalAttributesName
    class(base_object), intent(inout) :: self

    Swiftest massive body object

    class(base_nbody_system), intent(inout) :: nbody_system

    Swiftest nbody system object

interface

  • public module module function tides_rot_derivs(rot_pl_cb, t, dt, rbeg, rend) result(drot)

    Need to add more arguments so we can pull in mass, radius, Ip, J2, etc…

    Arguments

    TypeIntentOptionalAttributesName
    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

    Return Value real(kind=DP),dimension(:,:), allocatable

interface

  • public module module subroutine tides_step_rot_system(self, param, t, dt)

    Arguments

    TypeIntentOptionalAttributesName
    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


Abstract Interfaces

abstract interface

  • public function tidederiv(x, t, dt, rbeg, rend) result(y)

    Arguments

    TypeIntentOptionalAttributesName
    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

    Return Value real(kind=DP),dimension(:), allocatable


Derived Types

type, public, extends(lambda_obj_tvar) :: tides_derivs_func

Base class for an lambda function object. This object takes no additional arguments other than the dependent variable x, an array of real numbers

Components

TypeVisibilityAttributesNameInitial
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

Type-Bound Procedures

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