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, physcon, 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_leapfrog()
,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_leapfrog(vhalfx, vhalfy, vhalfz, fxi, fyi, fzi, vcrossomega, dt)
- Parameters:
vhalfx [real,in]
vhalfy [real,in]
vhalfz [real,in]
fxi [real,inout]
fyi [real,inout]
fzi [real,inout]
vcrossomega (3) [real,out]
dt [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 :