distrot¶
Contents
distrot.c¶
Subroutines that control the integration of the obliquity model.
- Author
Russell Deitrick (deitrr)
- Date
July 7 2015
Functions
-
void ReadForcePrecRate(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
-
void ReadPrecRate(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
-
void ReadSpecMomInertia(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
-
void ReadOrbitData(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
-
void ReadFileOrbitData(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, int iFile)¶
-
void InitializeOptionsDistRot(OPTIONS *options, fnReadOption fnRead[])¶
-
void ReadOptionsDistRot(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, SYSTEM *system, fnReadOption fnRead[], int iBody)¶
-
void AssignDistRotDerivatives(BODY *body, EVOLVE *evolve, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)¶
-
void NullDistRotDerivatives(BODY *body, EVOLVE *evolve, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody)¶
-
void VerifyDistRot(BODY *body, CONTROL *control, FILES *files, OPTIONS *options, OUTPUT *output, SYSTEM *system, UPDATE *update, int iBody, int iModule)¶
-
void FinalizeUpdateXoblDistRot(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)¶
-
void FinalizeUpdateYoblDistRot(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)¶
-
void FinalizeUpdateZoblDistRot(BODY *body, UPDATE *update, int *iEqn, int iVar, int iBody, int iFoo)¶
-
void WriteBodyDOblDtDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WriteOblTimeDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WritePrecATimeDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WriteBodyDPrecADtDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WriteBodyDXoblDtDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WriteBodyDYoblDtDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WriteBodyDZoblDtDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WriteXoblTimeDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WriteYoblTimeDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WriteZoblTimeDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WriteBodyCassOne(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WriteBodyCassTwo(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WriteDynEllip(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void WritePrecFNat(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UNITS *units, UPDATE *update, int iBody, double *dTmp, char cUnit[])¶
-
void InitializeOutputDistRot(OUTPUT *output, fnWriteOutput fnWrite[])¶
-
void LogDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UPDATE *update, fnWriteOutput fnWrite[], FILE *fp)¶
-
void LogBodyDistRot(BODY *body, CONTROL *control, OUTPUT *output, SYSTEM *system, UPDATE *update, fnWriteOutput fnWrite[], FILE *fp, int iBody)¶
-
void ForceBehaviorDistRot(BODY *body, MODULE *module, EVOLVE *evolve, IO *io, SYSTEM *system, UPDATE *update, fnUpdateVariable ***fnUpdate, int iBody, int iModule)¶
-
void RotateVector(double *v1, double *v2, double theta, int axis)¶
-
double fndCentralTorqueSfac(BODY *body, int iBody)¶
Correction to axial precession rate for eccentricity (and possible additional effects)
- Parameters
body – Struct containing all body information and variables
iBody – Body in question
- Returns
Correction to precession rate
-
double fndCentralTorqueR(BODY *body, int iBody)¶
Natural axial precession rate due to host star (alpha*cos(obliquity))
- Parameters
body – Struct containing all body information and variables
iBody – Body in question
- Returns
Axial precession rate (rad/sec)
-
double fndObliquityCRD4(BODY *body, SYSTEM *system, int *iaBody)¶
C(p,q) function in obliquity evol equations if RD4 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
C(p,q) function
-
double fndObliquityARD4(BODY *body, SYSTEM *system, int *iaBody)¶
A(p,q) function in obliquity evol equations if RD4 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
A(p,q) function
-
double fndObliquityBRD4(BODY *body, SYSTEM *system, int *iaBody)¶
B(p,q) function in obliquity evol equations if RD4 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
B(p,q) function
-
double fndObliquityCLL2(BODY *body, SYSTEM *system, int *iaBody)¶
C(p,q) function in obliquity evol equations if LL2 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
C(p,q) function
-
double fndObliquityALL2(BODY *body, SYSTEM *system, int *iaBody)¶
A(p,q) function in obliquity evol equations if LL2 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
A(p,q) function
-
double fndObliquityBLL2(BODY *body, SYSTEM *system, int *iaBody)¶
B(p,q) function in obliquity evol equations if LL2 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
B(p,q) function
-
double fndObliquityCExt(BODY *body, SYSTEM *system, int *iaBody)¶
C(p,q) function in obliquity evol equations if external orbital data is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
C(p,q) function
-
double fndObliquityAExt(BODY *body, SYSTEM *system, int *iaBody)¶
A(p,q) function in obliquity evol equations if external orbital data is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
A(p,q) function
-
double fndObliquityBExt(BODY *body, SYSTEM *system, int *iaBody)¶
B(p,q) function in obliquity evol equations if external orbital data is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
B(p,q) function
-
double fndAxialGRCorrection(BODY *body, int *iaBody)¶
GR correction to axial precession rate
- Parameters
body – Struct containing all body information and variables
iaBody – Array containing indices of bodies associated with interaction
- Returns
Correction to axial precession rate d(PrecA)/dt
-
double fndAxialGRDxDt(BODY *body, SYSTEM *system, int *iaBody)¶
GR correction to derivative of x = sin(obliquity)*cos(preca)
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Correction to derivative dx/dt
-
double fndAxialGRDyDt(BODY *body, SYSTEM *system, int *iaBody)¶
GR correction to derivative of y = sin(obliquity)*sin(preca)
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Correction to derivative dy/dt
-
double fndDistRotRD4DyDt(BODY *body, SYSTEM *system, int *iaBody)¶
Derivative of y = sin(obliquity)*sin(preca) when RD4 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Derivative dy/dt
-
double fndDistRotRD4DxDt(BODY *body, SYSTEM *system, int *iaBody)¶
Derivative of x = sin(obliquity)*cos(preca) when RD4 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Derivative dx/dt
-
double fndDistRotRD4DzDt(BODY *body, SYSTEM *system, int *iaBody)¶
Derivative of z = cos(obliquity) when RD4 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Derivative dz/dt
-
double fndDistRotLL2DyDt(BODY *body, SYSTEM *system, int *iaBody)¶
Derivative of y = sin(obliquity)*sin(preca) when LL2 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Derivative dy/dt
-
double fndDistRotLL2DxDt(BODY *body, SYSTEM *system, int *iaBody)¶
Derivative of x = sin(obliquity)*cos(preca) when LL2 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Derivative dx/dt
-
double fndDistRotLL2DzDt(BODY *body, SYSTEM *system, int *iaBody)¶
Derivative of z = cos(obliquity) when LL2 orbital model is used
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Derivative dz/dt
-
double fndDistRotDDynEllipDt(BODY *body, SYSTEM *system, int *iaBody)¶
Derivative of dynamical ellipticity when coupled to eqtide and thermint
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Derivative d(dynellip)/dt
-
double fndDistRotExtDxDt(BODY *body, SYSTEM *system, int *iaBody)¶
Derivative of x = sin(obliquity)*cos(preca) when orbital data is input from external model
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Derivative dx/dt
-
double fndDistRotExtDyDt(BODY *body, SYSTEM *system, int *iaBody)¶
Derivative of y = sin(obliquity)*sin(preca) when orbital data is input from external model
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Derivative dy/dt
-
double fndDistRotExtDzDt(BODY *body, SYSTEM *system, int *iaBody)¶
Derivative of z = cos(obliquity) when orbital data is input from external model
- Parameters
body – Struct containing all body information and variables
system – Struct containing system information
iaBody – Array containing indices of bodies associated with interaction
- Returns
Derivative dz/dt
distrot.h¶
Subroutines that control the integration of the obliquity model.
- Author
Russell Deitrick (deitrr)
- Date
July 7 2015
Defines
-
OPTSTARTDISTROT¶
-
OPTENDDISTROT¶
-
OPT_FORCEPRECRATE¶
-
OPT_PRECRATE¶
-
OPT_READORBITDATA¶
-
OPT_FILEORBITDATA¶
-
OPT_SPECMOMINERTIA¶
-
OUTSTARTDISTROT¶
-
OUTENDDISTROT¶
-
OUTBODYSTARTDISTROT¶
-
OUT_CASS1¶
-
OUT_CASS2¶
-
OUT_DOBLDTDISTROT¶
-
OUT_DPRECADTDISTROT¶
-
OUT_DXOBLDTDISTROT¶
-
OUT_DYOBLDTDISTROT¶
-
OUT_DZOBLDTDISTROT¶
-
OUT_OBLTIMEDISTROT¶
-
OUT_PRECATIMEDISTROT¶
-
OUT_XOBLTIMEDISTROT¶
-
OUT_YOBLTIMEDISTROT¶
-
OUT_ZOBLTIMEDISTROT¶
-
OUT_DYNELLIP¶
-
OUT_PRECFNAT¶