extern_corotate
Module
Description
- Implementation of external forces needed to perform
simulations in a corotating frame (i.e. coriolis & centrifugal forces)
- Kinetic energy is 0.5*(v + Omega x r)^2
= 0.5*v^2 + v.(Omega x r) + 0.5*(Omega x r)^2
- References:
e.g. Tong (2015) classical dynamics lecture notes
- Owner:
Daniel Price
- Runtime parameters:
companion_mass : mass of companion
companion_xpos : x-position of companion
hsoft : softening radius of companion gravity
icompanion_grav : 1=add companion potential, 2=add companion and primary core potential
omega_corotate : angular speed of corotating frame
primarycore_hsoft : softening radius of primary core
primarycore_mass : mass of primary
primarycore_xpos : x-position of primary
- Dependencies:
infile_utils, io, kernel, vectorutils
Quick access
- Variables:
companion_mass,companion_xpos,get_omega,hsoft,icompanion_grav,omega_corotate,primarycore_hsoft,primarycore_mass,primarycore_xpos- Routines:
get_centrifugal_force(),get_companion_force(),get_coriolis_force(),read_options_corotate(),update_coriolis(),write_options_corotate()
Variables
- extern_corotate/companion_mass [real,public/optional/default=1.0]
- extern_corotate/companion_xpos [real,public/optional/default=1.0]
- extern_corotate/get_omega [private]
- extern_corotate/hsoft [real,public/optional/default=1.0]
- extern_corotate/icompanion_grav [integer,public/optional/default=0]
- extern_corotate/omega_corotate [real,public/optional/default=1.0]
- extern_corotate/primarycore_hsoft [real,public/optional/default=1.0]
- extern_corotate/primarycore_mass [real,public/optional/default=1.0]
- extern_corotate/primarycore_xpos [real,public/optional/default=1.0]
Subroutines and functions
- subroutine extern_corotate/get_centrifugal_force(r, fextxi, fextyi, fextzi, phi)
- Parameters:
r (3) [real,in]
fextxi [real,inout]
fextyi [real,inout]
fextzi [real,inout]
phi [real,inout]
- Use :
- Called from:
- Call to:
- subroutine extern_corotate/get_coriolis_force(r, vel, f_cor, poti)
- Parameters:
r (3) [real,in]
vel (3) [real,in]
f_cor (3) [real,out]
poti [real,inout]
- Use :
- Called from:
- Call to:
- subroutine extern_corotate/update_coriolis(vhalfx, vhalfy, vhalfz, fxi, fyi, fzi, vcrossomega, dkdt)
- Parameters:
vhalfx [real,in]
vhalfy [real,in]
vhalfz [real,in]
fxi [real,inout]
fyi [real,inout]
fzi [real,inout]
vcrossomega (3) [real,out]
dkdt [real,in]
- Use :
vectorutils(cross_product3d(),matrixinvert3d()),io(fatal())- Call to:
- subroutine extern_corotate/get_companion_force(r, fextxi, fextyi, fextzi, phi)
- Parameters:
r (3) [real,in]
fextxi [real,inout]
fextyi [real,inout]
fextzi [real,inout]
phi [real,inout]
- Use :
kernel(kernel_softening())
- subroutine extern_corotate/write_options_corotate(iunit)
- Parameters:
iunit [integer,in]
- Use :