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

Interfaces

public interface lambda_obj

interface

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

    Arguments

    Type IntentOptional Attributes Name
    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 function tides_derivs_init(lambda, dt, rbeg, rend) result(f)

    Arguments

    Type IntentOptional 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

    Return Value type(tides_derivs_func)

interface

  • public module subroutine tides_kick_getacch_pl(self, nbody_system)

    Arguments

    Type IntentOptional Attributes Name
    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 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

    Type IntentOptional 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

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

interface

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

    Arguments

    Type IntentOptional 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


Abstract Interfaces

abstract interface

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

    Arguments

    Type IntentOptional 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

    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

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

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