vplanet
Contents
vplanet.c
The main entry point for the code. All the magic starts here.
- Author
Rory Barnes (RoryBarnes)
- Date
May 7 2014
vplanet.h
The main entry point for the code. All the magic starts here.
- Author
Rory Barnes (RoryBarnes)
- Date
May 7 2014
Defines
-
M_PI
-
EQTIDE
Top-level declarations
-
RADHEAT
-
ATMESC
-
DISTORB
-
DISTROT
-
STELLAR
-
THERMINT
-
POISE
-
FLARE
-
BINARY
-
GALHABIT
-
SPINBODY
-
DISTRES
-
MAGMOC
-
BIGG
-
PI
-
KGAUSS
-
EPS
-
AUM
-
AUPC
-
LIGHTSPEED
-
MEARTH
-
MSUN
-
RSUN
-
YEARSEC
-
DAYSEC
-
REARTH
-
RJUP
-
RNEP
-
MNEP
-
RHOEARTH
-
eEARTH
-
MJUP
-
YEARDAY
-
MSAT
-
DEGRAD
-
TOMASS
-
ATOMMASS
-
OXYMASS
-
PROTONMASS
-
SIGMA
-
RGAS
-
KBOLTZ
-
ALPHA_STRUCT
-
U_RADIANS
-
U_DEGREES
-
U_METER
-
U_CENTIMETER
-
U_KILOMETER
-
U_SOLARRADIUS
-
U_EARTHRADIUS
-
U_JUPRADIUS
-
U_AU
-
U_GRAM
-
U_KILOGRAM
-
U_SOLARMASS
-
U_EARTHMASS
-
U_JUPITERMASS
-
U_NEPTUNEMASS
-
U_KELVIN
-
U_CELSIUS
-
U_FARENHEIT
-
U_SECOND
-
U_DAY
-
U_YEAR
-
U_MYR
-
U_GYR
-
OPTLEN
-
OPTDESCR
-
OPTLONDESCR
-
LINE
-
NAMELEN
-
MAXFILES
-
MAXARRAY
-
NUMOPT
-
MAXLINES
-
OUTLEN
-
OUTDESCR
-
OUTLONDESCR
-
MODULEOPTEND
-
MODULEOUTEND
Typedefs
-
typedef double (*fnLaplaceFunction)(double, int)
-
typedef void (*fnForceBehaviorModule)(BODY*, MODULE*, EVOLVE*, IO*, SYSTEM*, UPDATE*, fnUpdateVariable***, int, int)
-
typedef void (*fnWriteOutput)(BODY*, CONTROL*, OUTPUT*, SYSTEM*, UNITS*, UPDATE*, int, double*, char**)
-
typedef void (*fnInitializeOptions)(OPTIONS*, fnReadOption*)
-
typedef void (*fnInitializeOptionsModule)(OPTIONS*, fnReadOption*)
-
typedef void (*fnReadOptionsModule)(BODY*, CONTROL*, FILES*, OPTIONS*, SYSTEM*, fnReadOption*, int)
-
typedef void (*fnVerifyModule)(BODY*, CONTROL*, FILES*, OPTIONS*, OUTPUT*, SYSTEM*, UPDATE*, int, int)
-
typedef void (*fnManageModuleDerivatives)(BODY*, EVOLVE*, UPDATE*, fnUpdateVariable***, int)
-
typedef void (*fnInitializeOutputModule)(OUTPUT*, fnWriteOutput*)
Variables
-
const double dHUGE
-
const double dTINY
-
struct BODY
- #include <vplanet.h>
BODY contains all the physical parameters for every object in the system.
Public Members
-
char *cName
Body’s Name
-
char *sColor
Body color (for plotting)
-
int bMantle
Is there a mantle?
-
int bOcean
Is there an ocean?
-
int bEnv
Is there an envelope?
-
int iBodyType
Type of object: 0=star, 1=rocky planet, 2 = giant
-
double dAge
Body’s Age
-
double dMass
Body’s Mass
-
double dSolidMass
Mass of a body’s solid component
-
double dRadius
Radius of body
-
double dDensity
Bulk density of body
-
double dGravAccel
Body’s gravitational acceleration
-
double dK2
Body’s Total Love number
-
double dImK2
Imaginary part of Love’s k_2 (total)
-
double dObliquity
Body’s Obliquity
-
double dCosObl
Cosine of body’s obliquity
-
double dRotRate
Body’s Rotation Rate
-
double dRotPer
Body’s Rotation Period
-
double dRotVel
Body’s Rotational Velocity
-
double dRadGyra
Body’s Radius of Gyration
-
double dSemi
Body’s Semi-major Axis
-
double dEcc
Body’s Eccentricity
-
double dMeanMotion
Body’s Mean Motion
-
double dOrbPeriod
Body’s Orbital Period
-
double dEccSq
Eccentricity squared
-
int bAtmEsc
Apply Module ATMESC?
-
int bInstantO2Sink
Is oxygen absorbed instantaneously at the surface?
-
int bRunaway
Is the planet experiencing a runaway greenhouse?
-
int bCalcFXUV
Does incidenx XUV flow need to be calculated every time step?
-
int bEnvelopeLostMessage
Has the envelope lost message been printed?
-
int bIgnoreRocheLobe
Ignore Roche lobe overflow?
-
int bUseEnergyLimited
Use energy-limited escape
-
int bUseBondiLimited
Use Bondi-limited H mass loss
-
int bUseRRLimited
Use radiation/recombination-limited H mass loss
-
int bAtmEscAuto
Transition H escape regime depending on physics
-
int bAutoThermTemp
Calculate thermal temperature from environemnt?
-
int bStopWaterLossInHZ
Stop water loss once planet enters habitable zone?
-
int iWaterLossModel
Water Loss and Oxygen Buildup Model
-
int iAtmXAbsEffH2OModel
Water X-ray/XUV absorption efficiency evolution model
-
int iPlanetRadiusModel
Planet Radius model.
-
int iWaterEscapeRegime
Track water escape regime
-
int iHEscapeRegime
Tracks H escape regime
-
double dSurfaceWaterMass
Surface water mass
-
double dMinSurfaceWaterMass
Minimum surface water to avoid a halt
-
double dOxygenMass
Atmospheric oxygen mass
-
double dOxygenMantleMass
Mass of oxygen in the mantle
-
double dEnvelopeMass
Envelope mass
-
double dMinEnvelopeMass
Minimum envelope mass to avoid a halt
-
double dXFrac
XUV radius in units of planet’s radius
-
double dAtmXAbsEffH
Effective XUV absorpation efficiency for hydrogen
-
double dAtmXAbsEffH2O
Effective XUV absorpation efficiency for water
-
double dRGDuration
Duration of runaway greenhouse phase
-
double dKTide
Tidal enhancement factor for mass loss
-
double dMinKTide
Minimum allowed value for KTide
-
double dAtmEscXi
Ratio of Roche radius to XUV radius
-
double dMDotWater
Water mass loss rate
-
double dFHRef
Reference hydrogen escape value
-
double dOxygenEta
Factor for drag of oxygen by hydrogen
-
double dCrossoverMass
Atomic mass at which drag begins
-
double dFHDiffLim
Diffusion-limited H escape rate
-
double dRadXUV
XUV Radius in Lehmer-Catling model
-
double dRadSolid
Solid planet radius in Lehmer-Catling model
-
double dPresSurf
Surface Pressure in Lehmer-Catling model
-
double dPresXUV
Pressure at XUV radius in Lehmer-Catling model
-
double dScaleHeight
Scale Height used in Lehmer-Catling model
-
double dThermTemp
Thermosphere’s temperature in Lehmer-Catling model
-
double dAtmGasConst
Atmosphere’s gas constant in Lehmer-Catling model
-
double dFXUV
XUV Flux at planet’s atmosphere
-
double dFXUVLast
XUV at planet during last time step
-
double dFXUVCumulative
-
double dJeansTime
Jeans timescale for atmospheric escape
-
double dFlowTemp
Temperature of the hydrodynamic flow
-
double dRocheRadius
Radius of the Roche lobe
-
double dBondiRadius
Bondi (Sonic) Radius
-
double dEnvMassDt
Time derivative of H envelope mass
-
int bBinary
Apply BINARY module?
-
double dR0
Guiding Radius,initially equal to dSemi
-
double dCBPR
CBP orbital radius
-
double dCBPZ
CBP height above/below the orbital plane
-
double dCBPPhi
CBP azimuthal angle in orbital plane
-
double dCBPRDot
CBP radial orbital velocity
-
double dCBPZDot
CBP z orbital velocity
-
double dCBPPhiDot
CBP phi angular orbital velocity
-
double dFreeEcc
CBP’s free eccentricity
-
double dFreeInc
CBP’s free inclination, or binary’s inclination
-
double dInc
Orbital inclication
-
double dLL13N0
CBP’s Mean motion defined in LL13 eqn 12
-
double dLL13K0
CBP’s radial epicyclic frequency defined in LL13 eqn 26
-
double dLL13V0
CBP’s vertical epicyclic frequency defined in LL13 eqn 36
-
double dLL13PhiAB
Binary’s initial mean anomaly
-
double dCBPM0
CBP’s initial mean anomaly
-
double dCBPZeta
CBP’s z oscillation angle (see LL13 eqn 35)
-
double dCBPPsi
CBP’s R, phi oscillation phase angle (see LL13 eqn 27)
-
int bSpiNBody
Has module SPINBODY been implemented
-
double dVelX
x Component of the body’s velocity
-
double dVelY
y Component of the body’s velocity
-
double dVelZ
z Component of the body’s velocity
-
double dPositionX
x Component of the body’s position
-
double dPositionY
y Component of the body’s position
-
double dPositionZ
z Component of the body’s position
-
double bUseOrbParams
Boolean flag to use orbital parameters as inputs
-
double *dDistance3
Distance cubed to different perturbers
-
double *dDistanceX
X Distance between two bodies
-
double *dDistanceY
Y Distance between two bodies
-
double *dDistanceZ
Z Distance between two bodies
-
double *dHCartPos
Heliocentric Cartesian Position used for orbital element calculations
-
double *dHCartVel
Heliocentric Cartesian Velocity used for orbital element calculations
-
double *dBCartPos
Barycentric Cartesian Position used for orbital element calculations
-
double *dBCartVel
Barycentric Cartesian Velocity used for orbital element calculations
-
double dGM
GM for the star
-
double dMu
G(M+m)
-
int iGravPertsSpiNBody
Number of bodies that are orbitally relevent (equal to for evolve->iNumBodies)
-
int bDistOrb
Has module DISTORB been implemented
-
double dHecc
Poincare H
-
double dKecc
Poincare K
-
double dPinc
Poincare P
-
double dQinc
Poincare Q
-
double dSinc
sin(0.5*Inclination)
-
double dLongA
Longitude of ascending node
-
double dArgP
Argument of pericenter
-
double dLongP
Longitude of pericenter
-
double dMeanA
Mean anomaly (only used for inv plane calculation)
-
double dTrueL
True longitude (only used for insolation calculation
-
double dEccA
Eccentric anomaly (only used for inv plane calculation)
-
double *daCartPos
Cartesian position of body (only used for inv plane calc)
-
double *daCartVel
Cartesian velocity of body (only used for inv plane calc)
-
int iGravPerts
Number of bodies which perturb the body
-
int *iaGravPerts
Which bodies are perturbers of the body
-
int iEigFreqs
Number of eigenfrequencies that control the body’s motion
-
int *iaEigFreqs
Indices of eigenfrequencies
-
int bGRCorr
Use general relativistic correction in DistOrb+DistRot?
-
int iDistOrbModel
Which orbital model to use (RD4 or LL2)
-
double dSemiPrev
Semi-major axis at which LL2 eigensolution was calc’d
-
double dEigenvalue
User input eigenvalue (diagnostic only)
-
double dEigenvector
User input eigenvector amplitude (diagnostic only)
-
int bEigenSet
Manually set an eigenvalue/frequency
-
double *daLOrb
Orbital angular momentum
-
double *daLOrbTmp
Temp copy of orbital angular momentum
-
double dRPeri
Pericenter distance
-
double dRApo
Apocenter distance
-
int bDistRot
-
double dPrecA
Precession angle
-
double dTrueApA
True anomaly at equinox (used for invariable plane conversion)
-
double dDynEllip
Dynamical ellipticity
-
double dYobl
sin(obliq)*sin(preca)
-
double dXobl
sin(obliq)*cos(preca)
-
double dZobl
cos(obliq)
-
double *daLRot
Spin angular momentum vector
-
double *daLRotTmp
Temp copy of spin angular momentum vector
-
int bForcePrecRate
Set precession rate to a fixed value
-
double dPrecRate
Value to set fixed precession rate to
-
int bCalcDynEllip
Calc dyn ellipticity from spin, radius, mass, inertia?
-
int bRelaxDynEllip
shape of planet relaxes when spun down
-
int bReadOrbitData
Use orbit data from file rather than distorb
-
char *cFileOrbitData
read orbital data from this file (distorb=0)
-
double *daTimeSeries
time series for orbital data
-
double *daSemiSeries
time series for orbital data
-
double *daEccSeries
time series for orbital data
-
double *daIncSeries
time series for orbital data
-
double *daArgPSeries
time series for orbital data
-
double *daLongASeries
time series for orbital data
-
double *daMeanASeries
time series for orbital data
-
int iCurrentStep
index for time series arrays
-
double *daHeccSeries
time series for orbital data
-
double *daKeccSeries
time series for orbital data
-
double *daPincSeries
time series for orbital data
-
double *daQincSeries
time series for orbital data
-
double dPdot
inclination derivative used for obliquity evol
-
double dQdot
inclination derivative used for obliquity evol
-
int iNLines
Number of lines of orbital data file
-
double dSpecMomInertia
C/M/R^2 used for dynamical ellipticity calculation
-
int bEqtide
Apply Module EQTIDE?
-
int bTideLock
Is a body tidally locked?
-
double dLockTime
Time when body tidally-locked
-
int bUseTidalRadius
Set a fixed tidal radius?
-
int bUseOuterTidalQ
Set total Q to outer layer’s value?
-
double dTidalRadius
Radius used by tidal evoltion equations (CPL only currently)
-
int iTidePerts
Number of Tidal Perturbers
-
int *iaTidePerts
Body #’s of Tidal Perturbers
-
char *saTidePerts[MAXARRAY]
Names of Tidal Perturbers
-
double dK2Man
Mantle k2 love number
-
double dK2Ocean
Ocean’s Love Number
-
double dK2Env
Envelope’s Love Number
-
double dTidalQMan
Tidal Q of the Mantle
-
double dTidalQOcean
Body’s Ocean Component to Tidal Q
-
double dTidalQEnv
Body’s Envelope Component to Tidal Q
-
double dImK2Man
Mantle Im(k2) love number
-
double dImK2ManOrbModel
Mantle Im(k2) model for DB15 orbital eqns
-
double dImK2Ocean
Envelope Component to Imaginary part of Love’s K_2
-
double dImK2Env
Envelope Component to Imaginary part of Love’s K_2
-
double dTidalQ
Body’s Tidal Q
-
double dTidalTau
Body’s Tidal Time Lag
-
double *dTidalZ
As Defined in HellerEtal2011
-
double *dTidalChi
As Defined in HellerEtal2011
-
double **dTidalF
As Defined in HellerEtal2011
-
double *dTidalBeta
As Defined in HellerEtal2011
-
int **iTidalEpsilon
Signs of Phase Lags
-
double dDeccDtEqtide
Eccentricity time rate of change
-
double *daDoblDtEqtide
Obliquity time rate of change
-
int bRadheat
Apply Module RADHEAT?
-
double d26AlConstMan
Body’s Mantle 26Al Decay Constant
-
double d26AlMassMan
Body’s Mantle Mass of 26Al
-
double d26AlNumMan
Body’s Mantle Number of 26Al Atoms
-
double d26AlPowerMan
Body’s Mantle Internal Power Due to 26Al Decay
-
double d26AlConstCore
Body’s Core 26Al Decay Constant
-
double d26AlMassCore
Body’s Core Mass in 26Al
-
double d26AlNumCore
Body’s Core Number of 26Al Atoms
-
double d26AlPowerCore
Body’s Core Power from 26Al
-
double d40KConstMan
Body’s Mantle 40K Decay Constant
-
double d40KMassMan
Body’s Mantle Mass of 40K
-
double d40KNumMan
Body’s Mantle Number of 40K Atoms
-
double d40KPowerMan
Body’s Mantle Internal Power Due to 40K Decay
-
double d40KConstCore
Body’s Core 40K Decay Constant
-
double d40KNumCore
Body’s Core Number of 40K Atoms
-
double d40KPowerCore
Body’s Core Power due to 40K
-
double d40KMassCore
Body’s Core Mass of 40K
-
double d40KConstCrust
Body’s Crust 40K Decay Constant
-
double d40KNumCrust
Body’s Crust Number of 40K Atoms
-
double d40KPowerCrust
Body’s Crust Power due to 40K
-
double d40KMassCrust
Body’s Crust Mass of 40K
-
double d232ThConstMan
Body’s Thorium-232 Decay Constant
-
double d232ThNumMan
Body’s Number of Thorium-232 Atoms
-
double d232ThPowerMan
Body’s Internal Power Due to Thorium-232 Decay
-
double d232ThMassMan
Body’s Total Mass of Thorium-232 Atoms
-
double d232ThConstCore
-
double d232ThNumCore
-
double d232ThPowerCore
-
double d232ThMassCore
-
double d232ThConstCrust
-
double d232ThNumCrust
-
double d232ThPowerCrust
-
double d232ThMassCrust
-
double d238UConstMan
Body’s Uranium-238 Decay Constant
-
double d238UNumMan
Body’s Number of Uranium-238 Atoms
-
double d238UPowerMan
Body’s Internal Power Due to Uranium-238 Decay
-
double d238UMassMan
Body’s Total Mass of Uranium-238 Atoms
-
double d238UConstCore
-
double d238UNumCore
-
double d238UPowerCore
-
double d238UMassCore
-
double d238UConstCrust
-
double d238UNumCrust
-
double d238UPowerCrust
-
double d238UMassCrust
-
double d235UConstMan
-
double d235UNumMan
-
double d235UPowerMan
-
double d235UMassMan
-
double d235UConstCore
-
double d235UNumCore
-
double d235UPowerCore
-
double d235UMassCore
-
double d235UConstCrust
-
double d235UNumCrust
-
double d235UPowerCrust
-
double d235UMassCrust
-
double dRadPowerTotal
Total planet Radiogenic Power
-
double dRadPowerMan
Total Mantle Radiogenic Power
-
double dRadPowerCore
Total Core Radiogenic Power
-
double dRadPowerCrust
Total Crust Radiogenic Power
-
int bThermint
Apply Module THERMINT?
-
double dTSurf
Surface Temperature
-
double dTMan
Temperature Mantle AVE
-
double dTCore
Temperature Core AVE
-
double dTUMan
Temperature UMTBL
-
double dTLMan
Temperature LMTBL
-
double dTCMB
Temperature CMB
-
double dTICB
Temperature ICB
-
double dBLUMan
UM TBL thickness
-
double dBLLMan
LM TBL thickness
-
double dTJumpUMan
Abs Temperature Jump across UMTBL
-
double dTJumpLMan
Abs Temperature Jump across LMTBL
-
double dSignTJumpUMan
Sign of Temperature Jump across UMTBL
-
double dSignTJumpLMan
Sign of Temperature Jump across LMTBL
-
double dViscUManArr
Viscosity UMTBL Arrhenius Law
-
double dViscUMan
Viscosity UMTBL
-
double dViscLMan
Viscosity LMTBL
-
double dViscMMan
Viscosity Mid (ave) mantle
-
double dDynamViscos
Dynamic viscosity of the mantle
-
double dViscJumpMan
Viscosity Jump UM to LM
-
double dShmodUMan
Shear modulus UMTBL
-
double dShmodLMan
Shear modulus LMTBL
-
double dTsolUMan
Solidus Temperature UMTBL
-
double dTliqUMan
Liquidus Temperature UMTBL
-
double dTsolLMan
Solidus Temperature LMTBL
-
double dTliqLMan
Liquidus Temperature LMTBL
-
double dFMeltUMan
Melt fraction UMTBL
-
double dFMeltLMan
Melt fraction LMTBL
-
double dMeltfactorUMan
Melt Phase Factor for Rheology
-
double dMeltfactorLMan
Melt Phase Factor for Rheology
-
double dFixMeltfactorUMan
Melt Phase Factor for Rheology
-
double dViscMeltB
Viscosity Melt Factor B
-
double dViscMeltGamma
Viscosity Melt Factor Gamma
-
double dViscMeltDelta
Viscosity Melt Factor Delta
-
double dViscMeltXi
Viscosity Melt Factor Xi
-
double dViscMeltPhis
Viscosity Melt Factor Phis
-
double dDepthMeltMan
Depth to base of UM Melt layer
-
double dTDepthMeltMan
Temp at base of UM Melt layer
-
double dTJumpMeltMan
Temp Jump to base of UM Melt layer
-
double dMeltMassFluxMan
Mantle upwelling melt mass flux
-
double dRayleighMan
Mantle Rayleigh Number
-
double dTDotMan
Time deriv of mean mantle temp
-
double dTDotCore
time deriv of mean core temp
-
double dHfluxUMan
hflux upper mantle thermal boundary layer (UMTBL)
-
double dHflowUMan
hflow UMTBL
-
double dHfluxLMan
hflux lower mantle thermal boundary layer (UMTBL)
-
double dHflowLMan
hflow LMTBL
-
double dHfluxCMB
hflux CMB
-
double dHflowCMB
hflow CMB
-
double dHflowTidalMan
hflow tidal dissipation in mantle
-
double dHflowTidalCore
hflow tidal dissipation in core
-
double dHflowLatentMan
latent hflow from solidification of mantle
-
double dHflowMeltMan
Eruptive Melt Hflow from mantle
-
double dHflowSecMan
Mantle Secular Heat flow
-
double dMassICDot
Mass Growth Rate of IC
-
double dHflowLatentIC
latent hflow from solidification of IC
-
double dPowerGravIC
latent hflow from solidification of IC
-
double dHflowICB
hflow across ICB
-
double dHfluxSurf
hflux surface of mantle
-
double dHflowSurf
hflow surface of mantle
-
double dTidalPowMan
Tidal Dissipation Power in Mantle
-
double dRIC
IC radius
-
double dDRICDTCMB
d(R_ic)/d(T_cmb)
-
double dDOC
OC shell thickness
-
double dThermConductOC
Thermal conductivity OC
-
double dThermConductIC
Thermal conductivity IC
-
double dChiOC
OC light element concentration chi.
-
double dChiIC
IC light element concentration chi.
-
double dMassOC
OC Mass.
-
double dMassIC
IC Mass.
-
double dMassChiOC
OC Chi Mass.
-
double dMassChiIC
IC Chi Mass.
-
double dDTChi
Core Liquidus Depression
-
double dHfluxCMBAd
CMB Adiabatic Heat flux.
-
double dHfluxCMBConv
CMB Convective (super-adiabatic) Heat flux.
-
double dCoreBuoyTherm
Core Thermal buoyancy flux
-
double dCoreBuoyCompo
Core Compositional buoyancy flux
-
double dCoreBuoyTotal
Core total (therm+compo) buoyancy flux
-
double dGravICB
Gravity at ICB
-
double dDensAnomICB
Density anomaly across ICB (Delta rho_chi in DB14).
-
double dRICDot
Inner core growth rate
-
double dMagMom
Core Dynamo Magnetic Moment scaling law.
-
double dMagMomCoef
Dynamo magnetic moment scaling law dipolarity coefficient (gamma_d in DB14)
-
double dPresSWind
Stellar wind pressure at planets orbit.
-
double dMagPauseRad
Magnetopause stand-off radius from center of planet
-
double dViscRatioMan
Viscosity Ratio Man
-
double dEruptEff
Mantle melt eruption efficiency
-
double dViscRef
Mantle Viscosity Reference (coefficient)
-
double dTrefLind
Core Liquidus Lindemann Reference (coefficient)
-
double dDTChiRef
Core Liquidus Depression Reference (E)
-
double dStagLid
Stagnant Lid heat flow switch (0 or 1)
-
double dManHFlowPref
Mantle Hflow Prefix
-
double dActViscMan
Mantle viscosity activation energy
-
double dShModRef
reference kinematic mantle shear modulus
-
double dStiffness
effective stiffness of mantle
-
double dDLind
lindemann’s law length scale for iron liquidus
-
double dDAdCore
liq iron core adiabatic length scale
-
double dAdJumpM2UM
adiabatic temp jump from ave mantle to UM
-
double dAdJumpM2LM
adiabatic temp jump from ave mantle to LM
-
double dAdJumpC2CMB
adiabatic temp jump from ave core to CMB
-
double dElecCondCore
electrical conductivity of core
-
int bStellar
-
double dLuminosity
-
double dTemperature
-
double dSatXUVFrac
-
double dSatXUVTime
-
double dXUVBeta
-
int iStellarModel
-
int iMagBrakingModel
-
int iWindModel
-
int iXUVModel
-
double dLXUV
-
double iHZModel
-
double dLostAngMom
Angular momemntum lost to space via magnetic braking
-
double dLostEng
Energy lost to space, i.e. via stellar contraction
-
int bRossbyCut
Whether or not to shut off magnetic braking for Ro>ROSSBYCRIT
-
int bEvolveRG
Whether or not to evolve radius of gyration? Defaults to 0
-
double dLuminosityInitial
-
double dLuminosityAmplitude
-
double dLuminosityFrequency
-
double dLuminosityPhase
-
int bPoise
Apply POISE module?
-
double dAblateFF
Scaling factor for ice ablation rate
-
int bAccuracyMode
This forces EBM to re-invert matrix every time step
-
double dAlbedoGlobal
Global average albedo (Bond albedo)
-
double dAlbedoGlobalTmp
A copy of global average albedo (sometimes needed)
-
double dAlbedoLand
Sets base albedo of land (sea model)
-
double dAlbedoWater
Sets base albedo of water (sea model)
-
int bAlbedoZA
Use albedo based on zenith angle (ann model)
-
double dAreaIceCov
Tracks area of surface covered in permanent ice
-
double dAstroDist
Distance between primary and planet
-
int bCalcAB
Calc A and B from Williams & Kasting 1997
-
int iClimateModel
Which EBM to be used (ann or sea)
-
int bColdStart
Start from global glaciation (snowball) conditions
-
double dCw_dt
Heat capacity of water / EBM time step
-
double dDiffCoeff
Diffusion coefficient set by user
-
int bDiffRot
Adjust heat diffusion for rotation rate
-
int bElevFB
Apply elevation feedback to ice ablation
-
double dFixIceLat
Fixes ice line latitude to user set value
-
double dFluxInGlobal
Global mean of incoming flux
-
double dFluxInGlobalTmp
Copy of global mean incoming flux
-
double dFluxOutGlobal
Global mean of outgoing flux
-
double dFluxOutGlobalTmp
Copy of global mean outgoing flux
-
int bForceObliq
Force obliquity to evolve sinusoidally
-
int bForceEcc
Force eccentricity to evolve sinusoidally
-
double dFrzTSeaIce
Freezing temperature of sea water
-
int iGeography
Type of geography to use (uni3 or modn)
-
int bHadley
Use Hadley circ in tropics when calc’ing diffusion?
-
double dHeatCapAnn
Surface heat capacity in annual model
-
double dHeatCapLand
Heat capacity of land
-
double dHeatCapWater
Heat capacity of water
-
double dIceAlbedo
Base albedo of ice covered surfaces
-
double dIceBalanceTot
Total gain/loss in ice globally
-
double dIceDepRate
Snow deposition rate when below freezing
-
double dIceFlowTot
Total flow of ice (should be zero)
-
double dIceMassTot
Total ice mass over entire globe
-
int bIceSheets
Use ice sheet model?
-
int iIceTimeStep
Time step of ice sheet model (should be > iNumYears)
-
double dInitIceHeight
Initial height of ice sheet
-
double dInitIceLat
Initial latitude of ice line (ice cap only)
-
double dLapseR
Lapse rate used for elevation feedback of ice sheet
-
double dLatentHeatIce
Latent heat of fusion of ice over mixing depth
-
double dLatFHeatCp
Latent heat of ice/heat capacity
-
int bMEPDiff
Compute diff from maximum entropy prod (D = B/4)
-
double dMixingDepth
Depth of mixing layer of ocean (for thermal inertia)
-
int iNDays
Number of days in planet’s year/orbit
-
int iNStepInYear
Number of time steps in a year/orbit
-
double dNuLandWater
Land-ocean interaction term
-
int iNumLats
Number of latitude cells
-
int iNumYears
Number of orbits!!! to run seasonal model
-
double dObliqAmp
Amplitude of forced obliquity oscillation
-
double dObliqPer
Period of force obliquity oscillation
-
double dObliq0
Start obliquity for forced oscillation
-
double dEccAmp
Amplitude of forced eccentricity oscillation
-
double dEccPer
Period of force eccentricity oscillation
-
double dEcc0
Start eccentricity for forced oscillation
-
int iOLRModel
OLR fit (use with bCalcAB=1) from Kasting or Spiegel
-
double dpCO2
Partial pressure of CO2 (only if bCalcAB = 1)
-
double dPlanckA
Constant term in Blackbody linear approximation
-
double dPlanckB
Linear coeff in Blackbody linear approx (sensitivity)
-
double dPrecA0
Initial pA value used when distrot is not called
-
int bReadOrbitOblData
Use orbit and obliquity data from file rather than distrot
-
char *sFileOrbitOblData
read orbital and obliquity data from this file (distorb=0)
-
double *daOblSeries
time series for obliquity data
-
double *daPrecASeries
time series for obliquity data
-
double dRefHeight
Ref height of “surface” in elevation feedback
-
int iReRunSeas
When to rerun EBM in ice sheet model
-
double dSeaIceConduct
Conductivity of sea ice
-
int bSeaIceModel
Use sea ice model?
-
double dSeasDeltat
Time step of seasonal model
-
double dSeasDeltax
Spacing of grid points in seasonal model
-
double dSeasOutputTime
When to output seasonal data
-
double dSeasNextOutput
Next time step to output seasonal data
-
int bSkipSeas
Ann model will be used if in snowball state
-
int bSkipSeasEnabled
Allow ann model to be used if in snowball state?
-
int bSnowball
Is planet in snowball state (oceans are frozen)?
-
double dSpinUpTol
Tolerance for mean global temp change during spin up
-
double dSurfAlbedo
Base surface albedo used in ann model
-
double dTGlobal
Global mean temperature at surface
-
double dTGlobalInit
Initial estimate of global surface temperature
-
double dTGlobalTmp
Mean global surface temp
-
int iWriteLat
Stores index of latitude to be written in write fxn
-
double dMinIceHeight
Minimum ice thickness to count as icy
-
double *daAnnualInsol
Annually averaged insolation at each latitude
-
double *daDivFlux
Divergence of surface flux
-
double *daDMidPt
Diffusion at edges of grid points
-
double **daInsol
Daily insolation at each latitude
-
double *daFlux
Meridional surface heat flux
-
double *daFluxIn
Incoming surface flux (insolation)
-
double *daFluxOut
Outgoing surface flux (longwave)
-
double *daLats
Latitude of each cell (centered); South Pole is 0
-
double *daPeakInsol
Annually averaged insolation at each latitude
-
double *daTGrad
Gradient of temperature (meridional)
-
double *daAlbedoAnn
Albedo of each cell
-
double *daDiffusionAnn
Diffusion coefficient of each latitude boundary
-
double **daMEulerAnn
Matrix used for Euler step in annual model
-
double **daMEulerCopyAnn
Temp copy of Euler matrix
-
double **daInvMAnn
Inverted matrix for annual model
-
double *daLambdaAnn
Diffusion terms for annual matrix
-
double **daMClim
Raw climate matrix for annual model
-
double **daMDiffAnn
Diffusion matrix for annual model
-
double *daPlanckAAnn
Array of Planck A values for ann model
-
double *daPlanckBAnn
Array of Planck B values for ann model
-
int *iaRowswapAnn
Array of interchanged rows in matrix inversion
-
double *daScaleAnn
Used in matrix inversion routine
-
double *daSourceF
Heating terms in EBM
-
double *daTempAnn
Surface temperature in each cell
-
double *daTempTerms
Temperature dependent terms in matrix
-
double *daTmpTempAnn
Temporary copy of temperature
-
double *daTmpTempTerms
Temporary copy of temp dependent terms
-
double *daUnitVAnn
Unit vector used in matrix inversion
-
double *daAlbedoAvg
Orbit average albedo by latitude
-
double *daAlbedoAvgL
Orbit average albedo by latitude on land
-
double *daAlbedoAvgW
Orbit average albedo by latitude on water
-
double *daAlbedoLand
Albedo of land by latitude
-
double *daAlbedoLW
Land-water averaged albedo
-
double *daAlbedoWater
Albedo of land by latitude
-
double *daBasalFlow
Basal flow of ice = d(u*h)/dy
-
double *daBasalFlowMid
Basal flow of ice d(u*h)/dy (midpoints)
-
double *daBasalVel
Basal velocity of ice
-
double *daBedrockH
Height of bedrock (can be negative)
-
double *daBedrockHEq
Equilibrium height of bedrock
-
double *daDeclination
Daily solar declination
-
double *daDeltaTempL
Keeps track of temp change on land for energy check
-
double *daDeltaTempW
Keeps track of temp change on water for energy check
-
double *daDIceHeightDy
Gradient of ice height
-
double *daDiffusionSea
Diffusion coefficient for seasonal model
-
double *daDivFluxAvg
Divergence of flux averaged over orbit
-
double **daDivFluxDaily
Daily values of divergence of flux
-
double *daEnergyResL
Energy residuals on land
-
double *daEnergyResW
Energy residuals over water
-
double *daEnerResLAnn
Annually averaged energy residuals on land
-
double *daEnerResWAnn
Annually averaged energy residuals over water
-
double *daFluxAvg
Annually averaged meridional flux
-
double *daFluxOutAvg
Annually averaged outgoing flux
-
double **daFluxDaily
Daily meridional flux values
-
double *daFluxInAvg
Annually averaged incoming flux
-
double **daFluxInDaily
Daily incoming flux values
-
double *daFluxInLand
Annually averaged incoming flux on land
-
double *daFluxInWater
Annually averaged incoming flux on water
-
double **daFluxOutDaily
Daily outgoing flux values
-
double *daFluxOutLand
Annually averaged outgoing flux on land
-
double *daFluxOutWater
Annually averaged outgoing flux on water
-
double *daFluxSeaIce
Heat flux through sea ice
-
double **daIceBalance
Gain/loss of ice at each latitude and day
-
double *daIceAblateTot
Total ice loss per orbit
-
double *daIceAccumTot
Total ice gain per orbit
-
double *daIceBalanceAnnual
Net ice gain/loss over orbit
-
double *daIceBalanceAvg
Average ice gain/loss over orbit
-
double *daIceBalanceTmp
Temporary (current) ice gain/loss
-
double *daIceFlow
Flow of ice
-
double *daIceFlowAvg
Average flow of ice over orbit
-
double *daIceFlowMid
Flow of ice at boundaries of grid points
-
double *daIceGamTmp
Temporary variable used in ice sheet matrix
-
double *daIceHeight
Height of ice sheet
-
double *daIceMass
Ice mass per area
-
double *daIceMassTmp
Temporary copy of ice mass per area
-
double *daIcePropsTmp
Temporary array used in ice sheet matrix
-
double *daIceSheetDiff
Diffusion coefficient of ice sheet flow
-
double **daIceSheetMat
Matrix used in ice sheet flow
-
double **daInvMSea
Inverted matrix in seasonal EBM
-
double *daLambdaSea
Diffusion terms in seasonal EBM matrix
-
double dLandFrac
Land fraction input by user
-
double *daLandFrac
Fraction of cell which is land
-
double **daMDiffSea
Diffusion only matrix in seasonal EBM
-
double **daMEulerCopySea
Temporary copy of Euler time step matrix (seasonal)
-
double **daMEulerSea
Euler time step matrix in seasonal EBM
-
double **daMInit
Temporary matrix used in constructing Euler matrix
-
double **daMLand
Land terms in seasonal matrix
-
double **daMWater
Water terms in seasonal matrix
-
double *daPlanckASea
Array of Planck A values in seasonal model
-
double *daPlanckBSea
Array of Planck B values in seasonal model
-
double **daPlanckBDaily
Array of Planck B values over seasonal cycle
-
double *daPlanckBAvg
Orbit averaged Planck B values in seasonal model
-
int *iaRowswapSea
Interchanged rows in seasonal matrix inversion
-
double *daScaleSea
Used in matrix inversion routine
-
double *daSeaIceHeight
Sea ice height by latitude
-
double *daSeaIceK
Heat conductivity of sea ice
-
double *daSedShear
sediment shear stress (for ice sheets)
-
double *daSourceL
Land heating terms: PlanckA - (1-albedo)*Insol
-
double *daSourceLW
Combined heat terms what inverser matrix operates on
-
double *daSourceW
Water heating terms: PlanckA - (1-albedo)*Insol
-
double *daTempAvg
Temperature averaged over orbit and land/water
-
double *daTempAvgL
Land temp averaged over orbit
-
double *daTempAvgW
Water temp averaged over orbit
-
double **daTempDaily
Daily temp over seasonal cycle
-
double *daTempLand
Temperature over land (by latitude)
-
double *daTempLW
Surface temperature (avg over land & water)
-
double *daTempMaxLW
Maximum temperature over year
-
double *daTempMaxLand
Maximum temperature over year over land
-
double *daTempMaxWater
Maximum temperature over year over water
-
double *daTempMinLW
Minimum temperature over year
-
double *daTempWater
Temperature over ocean (by lat)
-
double *daTmpTempSea
Temporary copy of temp dependent terms (sea EBM)
-
double *daUnitVSea
Unit vector used in matrix routines
-
double *daWaterFrac
Fraction of cell which is water
-
double *daXBoundary
Locations of grid boundaries in x = sin(lat)
-
double *daYBoundary
Locations of grid boundaries in y = R*lat
-
int bFlare
-
double dFlareYInt
Flare function Y intercept /FFD linear coefficient
-
double dFlareSlope
Flare function slope /FFD angular coefficient
-
double dFlareMinEnergy
Flare minimum energy value to calculate the FFD
-
double dFlareMaxEnergy
Flare maximum energy value to calculate the FFD
-
double dFlareFreq1
First value of flare frequency range
-
double dFlareFreq2
Second value of flare frequency range
-
double dFlareFreq3
Third value of flare frequency range
-
double dFlareFreq4
Fourth value of flare frequency range
-
double dFlareFreqMin
Flare frequency of the flares with the lowest energy
-
double dFlareFreqMid
Flare frequency of the flares with the central energy value in the energy range
-
double dFlareFreqMax
Flare frequency of the flares with the highest energy
-
double dFlareEnergy1
First value of flare energy range
-
double dFlareEnergy2
Second value of flare energy range
-
double dFlareEnergy3
Third value of flare energy range
-
double dFlareEnergy4
Fourth value of flare energy range
-
double dFlareEnergyMin
Minimum value of flare energy in the energy range
-
double dFlareEnergyMid
Central value of flare energy in the energy range
-
double dFlareEnergyMax
Maximum value of flare energy in the energy range
-
double dLXUVFlare
XUV luminosity by flare
-
double dLXUVTot
XUV luminosity total, flare + stellar
-
double dLXUVFlareConst
XUV luminosity given by the user
-
int iFlareFFD
Flare mode
-
int iFlareBandPass
Option to choose in which band pass the input energy are
-
int iFlareSlopeUnits
Mode to choose in which units the FFD slopes are
-
int iEnergyBin
Number of energies consider between the minimum and maximum energies to calculate the luminosity by flares
-
double *daEnergyERG
-
double *daEnergyJOU
-
double *daLogEner
-
double *daEnerJOU
-
double *daEnergyJOUXUV
-
double *daEnergyERGXUV
-
double *daLogEnerXUV
-
double *daFFD
-
double *daLXUVFlare
-
int bGalHabit
Use galhabit module
-
double dPeriQ
Pericenter distance
-
int iDisrupt
Secondary body has been disrupted
-
int bGalacTides
Enable galactic tides
-
double dHostBinSemi
Semi-major axis of host binary
-
double dHostBinEcc
Eccentricity of host binary
-
double dHostBinInc
Inclination of host binary
-
double dHostBinArgP
Arg pericenter of host binary
-
double dHostBinLongA
Long asc node of host binary
-
double dHostBinMass1
Mass of large host binary star
-
int bHostBinary
Model dynamics of inner host binary
-
double *daRelativeImpact
Impact param of passing star relative to body
-
double *daRelativeVel
Velocity of passing star relative to body
-
double dEccX
X component of eccentricity vector
-
double dEccY
Y component of eccentricity vector
-
double dEccZ
Z component of eccentricity vector
-
double dAngMX
X component of orbital momentum vector
-
double dAngMY
Y component of orbital momentum vector
-
double dAngMZ
Z component of orbital momentum vector
-
double dAngM
Magnitude of orbital momentum vector
-
double dEccXTmp
Ecc X in the host binary reference plane
-
double dEccYTmp
Ecc Y in the host binary reference plane
-
double dEccZTmp
Ecc Z in the host binary reference plane
-
double dAngMXTmp
AngM X in the host binary reference plane
-
double dAngMYTmp
AngM Y in the host binary reference plane
-
double dAngMZTmp
AngM Z in the host binary reference plane
-
double dArgPTmp
Arg pericenter in the host binary reference plane
-
double dLongATmp
Long asc node in the host binary reference plane
-
double dIncTmp
Inclination in the host binary reference plane
-
double dCosArgP
Cosine of arg pericenter
-
double dMinStellarApproach
minimum allowed close approach of body to host
-
double dMassInterior
Total mass of bodies interior to body
-
int iBadImpulse
Was there a bad impulse?
-
double dMeanL
Body’s mean longitude
-
int bMagmOc
Use magmoc model
-
int bManSolid
Mantle solidified
-
int bAllFeOOxid
All FeO in manlte oxidized to Fe2O3
-
int bLowPressSol
Switch to low pressure treatment of solidus
-
int bManStartSol
Mantle starts to solidify
-
int bCalcFugacity
Need to calc oxygen fugacity
-
int bPlanetDesiccated
Atmosphere desiccated
-
int bManQuasiSol
Atmosphere desiccated & T_surf below 1000K
-
int bMagmOcHaltSolid
Mantle solidifed or atm desiccated
-
int bMagmOcHaltDesicc
Atm desiccated or escape stopped
-
int bEscapeStop
Atmospheric escaped stopped
-
int bCO2InAtmosphere
Is CO2 present in the atmopshere?
-
int iRadioHeatModel
Which Radiogenic Heating model to use
-
int iMagmOcAtmModel
Which Atmopsheric Flux model to use
-
int bOptManQuasiSol
Solidify mantle inst. when melt frac = 0.4 at surf
-
double dPotTemp
Potential Temp of the mantle [K]
-
double dSurfTemp
Surface Temp of the planet [K]
-
double dSolidRadius
Solidification radius of the mantle [m]
-
double dWaterMassMOAtm
Water mass in magma ocean and atmosphere [kg]
-
double dWaterMassSol
Water mass in the solidified mantle [kg]
-
double dOxygenMassMOAtm
Water mass in magma ocean and atmosphere [kg]
-
double dOxygenMassSol
Water mass in the solidified mantle [kg]
-
double dHydrogenMassSpace
Mass of hydrogen that is lost to space
-
double dOxygenMassSpace
Mass of oxygen that is lost to space
-
double dCO2MassMOAtm
Mass of CO2 in magma ocean and atmosphere [kg]
-
double dCO2MassSol
Mass of CO2 in solidified mantle [kg]
-
double dCoreRadius
Core radius of the planet [m]
-
double dWaterMassAtm
Water mass in the atmosphere [kg]
-
double dManMeltDensity
Density of the molten mantle [km/m^3]
-
double dMassFracFeOIni
Initial FeO mass fraction in the mantle
-
double dWaterPartCoeff
Water partition coefficient between melt and solid
-
double dDepthMO
Initial depth of Magma Ocean [km]
-
double dGravAccelSurf
Graviational acceleration at the surface [m/s^2]
-
double dSolidRadiusLocal
Local variable for solidification radius of the mantle [m]
-
double dTransDepthSol
Depth of transition from low to high pressure solidus [Pa]
-
double dPrefactorA
Prefactor for linear solidus
-
double dPrefactorB
Prefactor for linear solidus
-
double dMeltFraction
Melt fraction of the mantle
-
double dMeltFracSurf
Melt fraction at the surface
-
double dKinemViscos
Kinematic viscosity of the mantle [m/s^2]
-
double dFactorDerivative
Factor to calculate the derivatives of Tpot and Rsol
-
double dManHeatFlux
Mantle heat flux [W/m^2]
-
double dRadioHeat
Radiogenic heating rate GET FROM RADHEAT [W/kg]
-
double dTidalHeat
Tidal heating rate GET FROM EQTIDE [W/kg]
-
double dNetFluxAtmo
Net atmospheric flux OLR-ASR [W/m^2]
-
double dAlbedo
Albedo of the planet
-
double dEffTempAtm
Effective temperature of the planet’s atmosphere
-
double dPressWaterAtm
Water pressure in atmosphere [Pa]
-
double dPartialPressWaterAtm
Partial Water pressure in atmosphere [Pa]
-
double dPressCO2Atm
CO2 pressure in atmosphere [Pa]
-
double dPartialPressCO2Atm
Partial CO2 pressure in atmosphere [Pa]
-
double dPressOxygenAtm
Oxygen pressure in atmosphere [Pa]
-
double dMassMagmOcLiq
liquid mass of magma ocean [kg]
-
double dMassMagmOcCry
crystal mass of magma ocean [kg]
-
double dWaterFracMelt
Mass fraction of water in the magma ocean
-
double dCO2FracMelt
Mass fraction of CO2 in the magma ocean
-
double dFracFe2O3Man
Mass fraction of Fe2O3 in the mantle
-
double dOxygenMassAtm
Oxygen mass in the atmosphere [kg]
-
double dAveMolarMassMan
Average molar mass of the mantle
-
double dWaterMassEsc
Water mass escaped per time
-
double dOxygenMassEsc
Oxygen mass escaped per time
-
double dHZInnerEdge
Inner edge of habitable zone (runaway)
-
char *cName
-
struct SYSTEM
Public Members
-
char *cName
System’s Name
-
int iNumBodies
-
double dTotAngMomInit
Number of bodies in the system; redundant with Evolve! System’s Initial Angular Momentum
-
double dTotAngMom
System’s Current Angular Momentum
-
fnLaplaceFunction **fnLaplaceF
Pointers to semi-major axis functions
-
fnLaplaceFunction **fnLaplaceDeriv
Pointers to semi-major axis derivatives
-
double ***daLaplaceC
Values of semi-major axis functions
-
double ***daLaplaceD
Values of semi-major axis derivatives
-
double ***daAlpha0
Semi-major axis ratio at the time LaplaceC is determined
-
int **iaLaplaceN
Indices for dmLaplaceC corresponding to iBody, jBody
-
double dDfcrit
Semi-maj functions will be updated based on this value
-
double dThetaInvP
Azimuthal angle of inv plane relative to input plane
-
double dPhiInvP
Altitude angle of inv plane relative to input plane
-
double **daEigenValEcc
Matrix of eccentricity Eigenvalues in Laplace-Lagrange
-
double **daEigenValInc
Matrix of inclination Eigenvalues in Laplace-Lagrange
-
double **daEigenVecEcc
Matrix of eccentricity Eigenvectors in Laplace-Lagrange
-
double **daEigenVecInc
Matrix of inclination Eigenvectors in Laplace-Lagrange
-
double **daEigenPhase
Phase angles used in Laplace-Lagrange solution
-
double **daA
Matrix used for finding eigenvalues for eccentricity
-
double **daB
Matrix used for finding eigenvalues for inclination
-
double *daAsoln
RHS of eigenvalue problem for ecc
-
double *daBsoln
RHS of eigenvalue problem for inc
-
double **daetmp
Temporary matrix used in eigenvalue routine
-
double **daitmp
Temporary matrix used in eigenvalue routine
-
double *dah0
Initial value of Hecc in LL2 solution
-
double *dak0
Initial value of Kecc in LL2 solution
-
double *dap0
Initial value of Pinc in LL2 solution
-
double *daq0
Initial value of Qinc in LL2 solution
-
double *daS
Scaling factor for ecc eigenvectors
-
double *daT
Scaling factor for inc eigenvectors
-
int *iaRowswap
Row interchange array used in eigenvector routine
-
double **daAcopy
Copy of eigenvalue matrix for eccentricity
-
double *daScale
Used in matrix inversion
-
double *daLOrb
Total angular momentum of system
-
double dTotEnInit
System’s Initial Energy
-
double dTotEn
-
double dGalacDensity
< System’s total energy Density of galactic environment (for GalHabit)
-
double *daPassingStarR
Initial location of passing star
-
double *daPassingStarV
Initial velocity of passing star
-
double dPassingStarVRad
Radial velocity of passing star (wrt origin)
-
double dPassingStarRMag
Distance to passing star
-
double *daPassingStarImpact
3D impact parameter for passing star
-
double dPassingStarMass
Mass of passing star
-
double dPassingStarSigma
Velocity dispersion of passing stars
-
double dPassingStarMagV
Magnitude of passing star
-
double dEncounterRad
User-set encounter radius (box size)
-
double dDeltaTEnc
time since last encounter
-
double dEncounterRate
characteristic encounter time
-
double dCloseEncTime
time of new close encounter
-
double dLastEncTime
time of last encounter
-
double dNextEncT
Time of next encounter
-
int iNEncounters
Number of encounters
-
double dRForm
galactocentric formation radius
-
double dTMigration
time of radial migration
-
int bRadialMigr
use radial migration
-
double dScalingFTot
scaling factor for radial migration
-
double dScalingFStars
scaling factor for radial migration
-
double dScalingFVelDisp
scaling factor for radial migration (velocity disp)
-
double dGasDensity
density of local ism
-
double dDMDensity
density of local dark matter
-
double dStarScaleL
scale length of stellar disk
-
double dVelDispSolar
Velocity dispersion in solar neighborhood
-
double dHostApexVelMag
Magnitude of host star apex velocity
-
double *daHostApexVel
Host star apex velocity vector
-
double *daRelativeVel
Relative velocity b/w passing star and orbiter
-
double *daRelativePos
Distance b/w passing star and orbiter
-
double dRelativeVelRad
Radial component of velocity b/w passing star & orbiter
-
double dRelativeVelMag
Magnitude relative velocity b/w passing star & orbiter
-
double *daGSNumberDens
Number density of stars in solar neighborhood
-
double *daGSBinMag
Magnitude bins of stars in solar neighborhood
-
double *daEncounterRateMV
Encounter rate of passing stars
-
int iSeed
RNG seed for stellar encounters
-
double dGalaxyAge
present day age of galaxy
-
int bStellarEnc
model stellar encounters?
-
int bTimeEvolVelDisp
scale velocity dispersion of passing stars w/ sqrt(t)?
-
int bOutputEnc
output stell encounter info (beware large output!)
-
double dEncDT
time b/w stell encounter impulses on primary/2ndary
-
double dTStart
time that encounter begins relative to time step
-
int **iaResIndex
j values for resonance (-1 deactivates the resonance)
-
int *iaResOrder
order of resonance
-
int bResAvg
Average over resonant arguments (suitable for circulation)
-
double **daLibrFreq2
Libration frequency of exact resonance via linear theory
-
double **daCircFreq
Circulation frequency of near resonance
-
double **daDistCos
Cosine prefactors of disturbing fxn resonant terms
-
double **daDistSin
Sine prefactors of disturbing fxn resonant terms
-
double **daDistSec
Pyth sum of prefactors of disturbing fxn resonant terms
-
char *cName
-
struct UPDATE
Public Members
-
double **pdVar
Pointers to Primary Variables
-
int iNumVars
Number of Update-able Variables
-
int **iaType
The “type” refers to how the variable is updated. If 0, then the variable is assumed to be an explicit function of age. The first timestep is then a bit dodgy as the rate is not initially known. The suggested timestep will be dEta*dTimestep, so runs with a Type 0 variable must account for the evolution with dTimeStep. Variable type affecting timestep (0 = explicit function of age, 1 = normal quantity with time derivative, 2 = polar/sinusoidal quantity with time derivative, 3 = sinusoidal quantity with explicit function of age)
-
double *daDeriv
Array of Total Derivative Values for each Primary Variable
-
double **daDerivProc
Array of Derivative Values Due to a Process
-
double *dVar
-
double dZero
Sometimes you need a pointer to zero
-
int ***iaBody
The body numbers to calculate the derivative. First dimension is the Primary variable number, second is the process #, third is the list body numbers.
-
int **iNumBodies
Number of Bodies Affecting a Process
-
int iNumModules
Number of Modules Affecting a Body XXX Obsolete?
-
int *iNumEqns
Number of Equations That Modify a Primary Variable
-
int *iaVar
Primary variable number
-
int **iaModule
The Module number responsible for a given process. The first dimension is the Primary variable number. Second is the Equation.
-
int iNumRot
Number of Equations Affecting Rotation Rate
-
int iNumSemi
Number of Equations Affecting Semi-Major Axis
-
int iNumRadius
-
int iNumRadGyra
-
int iNumMass
-
int iRot
variable number Corresponding to Rotation Rate
-
double dDRotDt
Total Rotation Rate Derivative
-
int iSemi
variable number Corresponding to Semi-major Axis
-
double dDSemiDt
Total Semi-Major Axis Derivative
-
int iRadius
-
int iRadGyra
-
int iMass
, variable number corresponding to radius of gyration
-
int iWaterMassMOAtm
-
int iNumWaterMassMOAtm
-
int iWaterMassSol
-
int iNumWaterMassSol
-
int iSurfTemp
-
int iNumSurfTemp
-
int iPotTemp
-
int iNumPotTemp
-
int iSolidRadius
-
int iNumSolidRadius
-
int iOxygenMassMOAtm
-
int iNumOxygenMassMOAtm
-
int iOxygenMassSol
-
int iNumOxygenMassSol
-
int iOxygenMassSpace
-
int iNumOxygenMassSpace
-
int iHydrogenMassSpace
-
int iNumHydrogenMassSpace
-
int iCO2MassMOAtm
-
int iNumCO2MassMOAtm
-
int iCO2MassSol
-
int iNumCO2MassSol
-
int iWaterMassMOAtmMagmOc
-
int iWaterMassSolMagmOc
-
int iSurfTempMagmOc
-
int iPotTempMagmOc
-
int iSolidRadiusMagmOc
-
int iOxygenMassMOAtmMagmOc
-
int iOxygenMassSolMagmOc
-
int iOxygenMassSpaceMagmOc
-
int iHydrogenMassSpaceMagmOc
-
int iCO2MassMOAtmMagmOc
-
int iCO2MassSolMagmOc
-
double dWaterMassMOAtm
-
double dWaterMassSol
-
double dSurfTemp
-
double dPotTemp
-
double dSolidRadius
-
double dOxygenMassMOAtm
-
double dOxygenMassSol
-
double dHyrdogenMassSpace
-
double dOxygenMassSpace
-
double dCO2MassMOAtm
-
double dCO2MassSol
-
double *pdDWaterMassMOAtm
-
double *pdDWaterMassSol
-
double *pdDSurfTemp
-
double *pdDPotTemp
-
double *pdDSolidRadius
-
double *pdDOxygenMassMOAtm
-
double *pdDOxygenMassSol
-
double *pdDHydrogenMassSpace
-
double *pdDOxygenMassSpace
-
double *pdDCO2MassMOAtm
-
double *pdDCO2MassSol
-
int iVelX
-
int iNumVelX
-
int iVelY
-
int iNumVelY
-
int iVelZ
-
int iNumVelZ
-
int iPositionX
-
int iNumPositionX
-
int iPositionY
-
int iNumPositionY
-
int iPositionZ
-
int iNumPositionZ
-
double dVelX
x Component of the body’s velocity
-
double dVelY
y Component of the body’s velocity
-
double dVelZ
z Component of the body’s velocity
-
double dPositionX
x Component of the body’s position
-
double dPositionY
y Component of the body’s position
-
double dPositionZ
z Component of the body’s position
-
double *pdDVelX
-
double *pdDVelY
-
double *pdDVelZ
-
double *pdDPositionX
-
double *pdDPositionY
-
double *pdDPositionZ
-
int iHeccEqtide
equation number Corresponding to EQTIDE’s Change to Poincare’s h
-
int iKeccEqtide
equation number Corresponding to EQTIDE’s Change to Poincare’s k
-
int *iaXoblEqtide
Equation numbers Corresponding to EQTIDE’s Change to Laskar’s X
-
int *iaYoblEqtide
Equation numbers Corresponding to EQTIDE’s Change to Laskar’s Y
-
int *iaZoblEqtide
Equation numbers Corresponding to EQTIDE’s Change to Laskar’s Z
-
int *iaRotEqtide
Equation numbers Corresponding to EQTIDE’s Change to Rotation Rate
-
int iSemiEqtide
equation number Corresponding to EQTIDE’s Change to Semi-major Axis
-
int iLostEngEqtide
equation number Corresponding to EQTIDE’s lost energy [tidal heating]
-
double *pdDsemiDtEqtide
Points to the element in UPDATE’s daDerivProc matrix that contains the semi-major axis’ derivative due to EQTIDE.
-
double *pdDHeccDtEqtide
Points to the element in UPDATE’s daDerivProc matrix that contains Poincare’s h derivative due to EQTIDE.
-
double *pdDKeccDtEqtide
Points to the element in UPDATE’s daDerivProc matrix that contains Poincare’s k derivative due to EQTIDE.
-
double **padDXoblDtEqtide
Points to the elements in UPDATE’s daDerivProc matrix that contains Laskar’s X derivatives due to EQTIDE.
-
double **padDYoblDtEqtide
Points to the elements in UPDATE’s daDerivProc matrix that contains Laskar’s Y derivatives due to EQTIDE.
-
double **padDZoblDtEqtide
Points to the elements in UPDATE’s daDerivProc matrix that contains Laskar’s Z derivatives due to EQTIDE.
-
double **padDrotDtEqtide
Points to the elements in UPDATE’s daDerivProc matrix that contains the rotation rates’ derivatives due to EQTIDE.
-
double *pdLostEngEqtide
Points to the elements in UPDATE’s daDerivProc matrix that contains the lost energy via tidal heating’s derivatives due to EQTIDE.
-
int i26AlMan
variable number Corresponding to Aluminum-26
-
int i40KMan
variable number Corresponding to Potassium-40
-
int i232ThMan
variable number Corresponding to Thorium-232
-
int i238UMan
variable number Corresponding to Uranium-238
-
int i235UMan
-
int iNum26AlMan
Number of Equations Affecting Aluminum-26 [1]
-
int iNum40KMan
Number of Equations Affecting Potassium-40 [1]
-
int iNum232ThMan
Number of Equations Affecting Thorium-232 [1]
-
int iNum238UMan
Number of Equations Affecting Uranium-238 [1]
-
int iNum235UMan
-
double dD26AlNumManDt
Total Aluminum-26 Derivative
-
double dD40KNumManDt
Total Potassium-40 Derivative
-
double dD232ThNumManDt
Total Thorium-232 Derivative
-
double dD238UNumManDt
Total Uranium-238 Derivative
-
double dD235UNumManDt
-
double *pdD26AlNumManDt
-
double *pdD40KNumManDt
-
double *pdD232ThNumManDt
-
double *pdD238UNumManDt
-
double *pdD235UNumManDt
-
int i26AlCore
-
int i40KCore
-
int i232ThCore
-
int i238UCore
-
int i235UCore
-
int iNum26AlCore
-
int iNum40KCore
-
int iNum232ThCore
-
int iNum238UCore
-
int iNum235UCore
-
double dD26AlNumCoreDt
-
double dD40KNumCoreDt
-
double dD232ThNumCoreDt
-
double dD238UNumCoreDt
-
double dD235UNumCoreDt
-
double *pdD26AlNumCoreDt
-
double *pdD40KNumCoreDt
-
double *pdD232ThNumCoreDt
-
double *pdD238UNumCoreDt
-
double *pdD235UNumCoreDt
-
int i40KCrust
-
int i232ThCrust
-
int i238UCrust
-
int i235UCrust
-
int iNum40KCrust
-
int iNum232ThCrust
-
int iNum238UCrust
-
int iNum235UCrust
-
double dD40KNumCrustDt
-
double dD232ThNumCrustDt
-
double dD238UNumCrustDt
-
double dD235UNumCrustDt
-
double *pdD40KNumCrustDt
-
double *pdD232ThNumCrustDt
-
double *pdD238UNumCrustDt
-
double *pdD235UNumCrustDt
-
int iTMan
variable number Corresponding to Tman
-
int iNumTMan
Number of Equations Affecting TMan
-
double dTDotMan
TMan time Derivative
-
double *pdTDotMan
-
int iTCore
variable number Corresponding to Tman
-
int iNumTCore
Number of Equations Affecting TCore
-
double dTDotCore
TCore time Derivative
-
double *pdTDotCore
-
int iNumHecc
Number of Equations Affecting h = e*sin(longp)
-
int iNumKecc
Number of Equations Affecting k = e*cos(longp)
-
int iNumPinc
Number of Equations Affecting p = s*sin(longa)
-
int iNumQinc
Number of Equations Affecting q = s*cos(longa)
-
int iHecc
Variable number Corresponding to h = e*sin(longp)
-
double dDHeccDt
Total h Derivative
-
int iKecc
Variable number Corresponding to k = e*cos(longp)
-
double dDKeccDt
Total k Derivative
-
int iPinc
Variable number Corresponding to p = s*sin(longa)
-
double dDPincDt
Total p Derivative
-
int iQinc
Variable number Corresponding to q = s*cos(longa)
-
double dDQincDt
Total q Derivative
-
int *iaHeccDistOrb
equation number Corresponding to DistOrb’s change to h = e*sin(longp)
-
int *iaKeccDistOrb
Equation numbers Corresponding to DistOrb’s change to k = e*cos(longp)
-
int *iaPincDistOrb
Equation numbers Corresponding to DistOrb’s change to p = s*sin(longa)
-
int *iaQincDistOrb
Equation numbers Corresponding to DistOrb’s change to q = s*cos(longa)
-
double **padDHeccDtDistOrb
Points to the element in UPDATE’s daDerivProc matrix that contains the h = e*sin(varpi) derivative due to DistOrb.
-
double **padDKeccDtDistOrb
Points to the element in UPDATE’s daDerivProc matrix that contains the k = e*cos(varpi) derivative due to DistOrb.
-
double **padDPincDtDistOrb
Points to the element in UPDATE’s daDerivProc matrix that contains the p = s*sin(Omega) derivative due to DistOrb.
-
double **padDQincDtDistOrb
Points to the element in UPDATE’s daDerivProc matrix that contains the q = s*cos(Omega) derivative due to DistOrb.
-
int iNumXobl
Number of Equations Affecting x = sin(obl)*cos(pA)
-
int iNumYobl
Number of Equations Affecting y = sin(obl)*sin(pA)
-
int iNumZobl
Number of Equations Affecting z = cos(obl)
-
int iNumDynEllip
Number of Equations Affecting Dynamical Ellipticity
-
int iXobl
variable number Corresponding to x = sin(obl)*cos(pA)
-
double dDXoblDt
Total x Derivative
-
int iYobl
variable number Corresponding to y = sin(obl)*sin(pA)
-
double dDYoblDt
Total y Derivative
-
int iZobl
variable number Corresponding to z = cos(obl)
-
double dDZoblDt
Total z Derivative
-
int iDynEllip
variable number Corresponding to dynamical ellipticity
-
double dDDynEllipDt
Dynamical Ellipticity Derivative
-
int *iaXoblDistRot
equation number Corresponding to DistRot’s change to x = sin(obl)*cos(pA)
-
int *iaYoblDistRot
Equation numbers Corresponding to DistRot’s change to y = sin(obl)*sin(pA)
-
int *iaZoblDistRot
Equation numbers Corresponding to DistRot’s change to z = cos(obl)
-
double **padDXoblDtDistRot
Points to the element in UPDATE’s daDerivProc matrix that contains the xi = sin(obliq)*sin(pA) derivative due to DISTROT.
-
double **padDYoblDtDistRot
Points to the element in UPDATE’s daDerivProc matrix that contains the zeta = sin(obliq)*cos(pA) derivative due to DISTROT.
-
double **padDZoblDtDistRot
Points to the element in UPDATE’s daDerivProc matrix that contains the chi = cos(obliq) derivative due to DISTROT.
-
int iNumEccX
Number of equations for x eccentricity
-
int iNumEccY
Number of equations for y eccentricity
-
int iNumEccZ
Number of equations for z eccentricity
-
int iEccX
Variable # for x eccentricity
-
int iEccY
Variable # for y eccentricity
-
int iEccZ
Variable # for z eccentricity
-
double dDEccXDt
Derivative for ecc x
-
double dDEccYDt
Derivative for ecc y
-
double dDEccZDt
Derivative for ecc z
-
int *iaEccXGalHabit
Equation # for GalHabit’s change in x ecc
-
int *iaEccYGalHabit
Equation # for GalHabit’s change in y ecc
-
int *iaEccZGalHabit
Equation # for GalHabit’s change in z ecc
-
double **padDEccXDtGalHabit
Points to the element in UPDATE’s daDerivProc matrix that contains the x component of ecc derivative due to GALHABIT
-
double **padDEccYDtGalHabit
Points to the element in UPDATE’s daDerivProc matrix that contains the y component of ecc derivative due to GALHABIT
-
double **padDEccZDtGalHabit
Points to the element in UPDATE’s daDerivProc matrix that contains the z component of ecc derivative due to GALHABIT
-
int iNumAngMX
Number of equations for x angular momentum
-
int iNumAngMY
Number of equations for y angular momentum
-
int iNumAngMZ
Number of equations for z angular momentum
-
int iAngMX
Variable # for x angular momentum
-
int iAngMY
Variable # for y angular momentum
-
int iAngMZ
Variable # for z angular momentum
-
double dDAngMXDt
Derivative for angular mom x
-
double dDAngMYDt
Derivative for angular mom y
-
double dDAngMZDt
Derivative for angular mom z
-
int *iaAngMXGalHabit
Equation # for GalHabit’s change in x ang mom
-
int *iaAngMYGalHabit
Equation # for GalHabit’s change in y ang mom
-
int *iaAngMZGalHabit
Equation # for GalHabit’s change in z ang mom
-
double **padDAngMXDtGalHabit
Points to the element in UPDATE’s daDerivProc matrix that contains the x component of angular mom derivative due to GALHABIT
-
double **padDAngMYDtGalHabit
Points to the element in UPDATE’s daDerivProc matrix that contains the y component of angular mom derivative due to GALHABIT
-
double **padDAngMZDtGalHabit
Points to the element in UPDATE’s daDerivProc matrix that contains the z component of angular mom derivative due to GALHABIT
-
int iSurfaceWaterMass
variable number Corresponding to the surface water mass
-
int iNumSurfaceWaterMass
Number of Equations Affecting surface water [1]
-
int iEnvelopeMass
variable number Corresponding to the envelope mass
-
int iNumEnvelopeMass
Number of Equations Affecting envelope mass [1]
-
int iOxygenMass
variable number Corresponding to the oxygen mass
-
int iNumOxygenMass
Number of Equations Affecting oxygen [1]
-
int iOxygenMantleMass
variable number Corresponding to the oxygen mass in the mantle
-
int iNumOxygenMantleMass
Number of Equations Affecting oxygen mantle mass [1]
-
double *pdDSurfaceWaterMassDtAtmesc
Points to the element in UPDATE’s daDerivProc matrix that contains the derivative of these variables due to ATMESC.
-
double *pdDEnvelopeMassDtAtmesc
-
double *pdDMassDtAtmesc
-
double *pdDOxygenMassDtAtmesc
-
double *pdDOxygenMantleMassDtAtmesc
-
double *pdRadiusAtmesc
-
int iCBPR
variable number Corresponding to the CBP’s orbital radius
-
int iNumCBPR
Number of Equations Affecting CBP orbital radius [1]
-
int iCBPZ
variable number corresponding to the CBP’s cylindrical Z positions
-
int iNumCBPZ
Number of Equations Affecting CBP cylindrical Z position [1]
-
int iCBPPhi
variable number Corresponding to the CBP’s orbital azimuthal angle
-
int iNumCBPPhi
NUmber of equations Affecting CBP orbital azimuthal angle [1]
-
int iCBPRDot
variable number Corresponding to the CBP’s radial velocity
-
int iNumCBPRDot
Number of equations affecting CBP radial velocity [1]
-
int iCBPZDot
-
int iNumCBPZDot
< variable number Corresponding to the CBP’s Z orbital velocity Number of equations affecting CBP z orbital velocity [1]
-
int iCBPPhiDot
-
int iNumCBPPhiDot
< variable number Corresponding to the CBP’s Phi orbital angular velocity Number of equations affecting CBP phi orbital velocity [1]
-
double *pdCBPRBinary
-
double *pdCBPZBinary
-
double *pdCBPPhiBinary
-
double *pdCBPRDotBinary
-
double *pdCBPZDotBinary
-
double *pdCBPPhiDotBinary
-
int iLuminosity
variable number Corresponding to the luminosity
-
int iNumLuminosity
Number of Equations Affecting luminosity [1]
-
int iTemperature
-
int iNumTemperature
-
int iRotStellar
iEqn number for the evolution of rotation in STELLAR
-
int iLostAngMom
iEqn number for the evolution of lost angular momentum
-
int iLostAngMomStellar
iEqn number for the evolution of lost angular momentum in STELLAR
-
int iNumLostAngMom
Number of Equations Affecting lost angular momentum [1]
-
int iLostEng
iEqn number for the evolution of lost energy
-
int iLostEngStellar
iEqn number for the evolution of lost energy in STELLAR
-
int iNumLostEng
Number of Equations Affecting lost angular momentum [1]
-
double *pdLuminosityStellar
Points to the element in UPDATE’s daDerivProc matrix that contains the function that returns these variables due to STELLAR evolution.
-
double *pdTemperatureStellar
-
double *pdRadiusStellar
-
double *pdRadGyraStellar
-
double *pdRotRateStellar
-
double *pdLostAngMomStellar
-
double *pdLostEngStellar
-
int iLXUV
-
int iLXUVFlare
-
int iEnergyBin
-
double *pdDEnergyBinDt
-
int iNumLXUV
-
double *pdDLXUVFlareDt
-
int iSemiEqSt
equation number Corresponding to EQ+ST’s Change to Semi-major Axis
-
double **pdVar
-
struct HALT
Public Members
-
int iNumHalts
Total Number of Halts
-
int bMerge
Halt for Merge?
-
double dMinSemi
Halt at this Semi-major Axis
-
double dMinObl
Halt at this Obliquity
-
double dMaxEcc
Halt at this Eccentricity
-
double dMaxMutualInc
Halt at this mutual incliantion
-
double dMinEcc
Halt at this Eccentricity
-
int bPosDeDt
Halt if Eccentricity Derivative is Positive
-
int dMinIntEn
Halt at this Internal Power
-
int bDblSync
Halt if Double Synchronous?
-
int bTideLock
Halt if Tide-locked?
-
int bSync
Halt if Rotation Becomes Synchronous?
-
double dMin40KPower
Halt at this Potassium-40 Power
-
double dMin232ThPower
Halt at this Thorium-232 Power
-
double dMin238UPower
Halt at this Uranium-238 Power
-
double dMin235UPower
-
double dMinRadPower
-
int bSurfaceDesiccated
Halt if dry?
-
int bEnvelopeGone
Halt if evaporated?
-
int bEndBaraffeGrid
-
double dMinTMan
Halt at this TMan
-
double dMinTCore
Halt at this TCore
-
int bOverrideMaxEcc
1 = tells DistOrb not to halt at maximum eccentricity = 0.6627434
-
int bHillStab
halt if 2 planets fail Hill stability crit (technically valid for only 2 planets)
-
int bCloseEnc
halt if any planet pair has orbits too close (crudely comparing inner’s apocenter and outer’s pericenter)
-
int bHaltMinIceDt
Halt if ice flow time-step falls below a minimum value
-
int iMinIceDt
Halt if ice flow time-step falls below this value (number of orbital periods)
-
int bHaltHolmanUnstable
-
int bHaltRocheLobe
if CBP.dSemi < holman_crit_a, CBP dynamically unstable -> halt
-
int bHaltMantleSolidified
if secondary enters the Roche lobe of the primary, HALT! Halt if mantle completely solidified
-
int bHaltMantleMeltFracLow
Halt if melt fraction drops below 0.4 at surface
-
int bHaltAtmDesiSurfCool
Halt if atmosphere desiccated & T_surf below 1000K
-
int bHaltEnterHabZone
Halt if palenet enters Habitable Zone
-
int bHaltAllPlanetsSolid
Halt if all planets solidified (for multiplanet system)
-
int bHaltAllPlanetsDesicc
Halt if all planets desiccated (for multiplanet system)
-
int iNumHalts
-
struct UNITS
-
struct EVOLVE
Public Members
-
int bDoForward
Perform Forward Integration?
-
int bDoBackward
Perform Backward Integration?
-
int iDir
1=forward, -1=backward
-
double dTime
Integration Time
-
double dEta
Variable Timestep Coefficient
-
double dStopTime
Integration Stop Time
-
double dTimeStep
Integration Time step
-
int bVarDt
Use Variable Timestep?
-
int iTotalSteps
Total Number of Steps
-
int iStepsSinceLastOutput
-
double dMinValue
Minimum Value for Eccentricity and Obliquity to be Integrated
-
int bFirstStep
Has the First Dtep Been Taken?
-
int iNumBodies
Number of Bodies to be Integrated
-
int iOneStep
Integration Method number
-
double dCurrentDt
Current timestep
-
double ***daDeriv
The Matrix of Time Derivatives. First dimension is Body #, second is the Primary variable number, third is the equation number.
-
double ****daDerivProc
Derivatives over a timestep
-
int *iNumModules
Number of Modules per Primary Variable
-
int iEqtideModel
EQTIDE Model number
-
int bDiscreteRot
Use Discrete Rotation Model (CPL)?
-
int *bForceEqSpin
Force Rotation Rate to be Equilibrium?
-
int *bFixOrbit
Fix Orbit?
-
double *dMaxLockDiff
Fractional Difference from Tidal Equilibrium Rate to Force Equilibrium.
-
double *dSyncEcc
-
int iDistOrbModel
-
int bSpiNBodyDistOrb
-
int bUsingDistOrb
-
int bUsingSpiNBody
-
fnBodyCopyModule **fnBodyCopy
Function Pointers to Body Copy
-
int bDoForward
-
struct IO
Public Members
-
int iVerbose
Verbosity Level. 0=none; 1=error; 2=progress; 3=input; 4=units; 5=all
-
double dOutputTime
Integration Output Interval
-
double dNextOutput
Time of next output
-
int bLog
Write Log File?
-
int iDigits
Number of Digits After Decimal
-
int iSciNot
Crossover Decade to Switch between Standard and Scientific Notation
-
int bOverwrite
Allow files to be overwritten?
-
int bDeltaTimeMessage
Has the message for DeltaTime on the first timestep been printed?
-
int bMutualIncMessage
Has the large mutual inclination message been printed?
-
double dMaxMutualInc
Print warning message if mutual inc exceeds this value
-
int *baRocheMessage
Has the Roche lobe message been printed?
-
int *baCassiniOneMessage
Has the CassiniOne message been printed?
-
int *baCassiniTwoMessage
Has the CassiniTwo message been printed?
-
int *baEnterHZMessage
Has the Entering the HZ message been printed?
-
int iVerbose
-
struct CONTROL
Public Members
-
char *sGitVersion
-
int *iMassRad
Mass-Radius Relationship
-
fnHaltModule **fnHalt
Function Pointers to Halt Checks
-
fnForceBehaviorModule **fnForceBehavior
Function Pointers to Force Behaviors
-
fnForceBehaviorModule **fnForceBehaviorMulti
Function Pointers to Force Behaviors
-
int *iNumMultiForce
Number of multi-module ForceBahevior functions
-
fnPropsAuxModule **fnPropsAux
Function Pointers to Auxiliary Properties
-
fnPropsAuxModule **fnPropsAuxMulti
Function pointers to Auxiliary Properties for multi-module interdependancies.
-
int *iNumMultiProps
Number of Multi-module PropsAux functions
-
double dAngNum
Value used in calculating timestep from angle variable
-
int bSemiMajChange
1 if semi-major axis can change (DistOrb will recalc Laplace coeff functions)
-
int bInvPlane
1 = change input coordinates to invariable plane coordinate
-
int bOutputLapl
1 = output laplace functions and related data
-
int bOutputEigen
Output eigen values?
-
int bOrbiters
Does this simulation have orbiting bodies?
-
char *sGitVersion
-
struct INFILE
-
struct OUTFILE
-
struct FILES
-
struct OPTIONS
Public Members
-
char *cName
Option Name
-
char *cDescr
Brief Description of Option
-
char *cLongDescr
Long Description of Option
-
char *cValues
Description of permitted values / ranges
-
int iType
Cast of input. 0=bool; 1=int; 2=double; 3=string; +10 for array.
-
char *cDefault
Description of Default Value
-
char *cDimension
Qualitative description of the option, included for connection wtih bigplanet. Options are: time, length, mass, angle, energy, pressure, amperes. Units may be combined with standard mathematical operations, e.g. energy/time, or mass*length/time^2.
-
double dDefault
Default Value
-
int iModuleBit
Bitwise sum of modules permitted to read option
-
int bMultiFile
Option Permitted in Multiple Input Files?
-
int iMultiIn
-
int *iLine
Option’s Line number in Input File
-
char *iFile
-
char **cFile
File Name Where Set
-
int bNeg
Is There a Negative Option?
-
char *cNeg
Description of Negative Unit Conversion
-
int iFileType
What type of file can option be in? 0 = primary only, 1 = body file only, 2 = any file
-
double dNeg
Conversion Factor to System Units
-
char *cName
-
struct OUTPUT
Public Members
-
char *cName
Output Name
-
char *cDescr
Output Description
-
char *cLongDescr
Output Long Description
-
int bNeg
Is There a Negative Option?
-
int iModuleBit
Bit flag for module to check output parameters
-
int *bDoNeg
Should the Output use “Negative” Units?
-
char *cNeg
Units of Negative Option
-
double dNeg
Conversion Factor for Negative Option
-
int iNum
Number of Columns for Output
-
int bGrid
Is output quantity gridded (e.g. a function of latitude)?
-
char *cName
-
struct MODULE
Public Members
-
int *iNumModules
Number of Modules per Body
-
int *iNumManageDerivs
-
int **iaModule
Module numbers that Apply to the Body
-
int *iBitSum
-
int *iaEqtide
-
int *iaDistOrb
-
int *iaDistRot
-
int *iaRadheat
-
int *iaThermint
-
int *iaAtmEsc
-
int *iaStellar
-
int *iaPoise
-
int *iaBinary
-
int *iaFlare
-
int *iaGalHabit
-
int *iaSpiNBody
-
int *iaMagmOc
-
int *iaEqtideStellar
-
fnCountHaltsModule **fnCountHalts
These functions count the number of applicable halts for each body.
-
fnInitializeControlModule **fnInitializeControl
These functions allocate memory to module-specific arrays inside the CONTROL struct
-
fnInitializeUpdateModule **fnInitializeUpdate
These functions allocate memory to module-specific arrays inside the UPDATE struct
-
fnInitializeBodyModule **fnInitializeBody
These functions allocate memory to module-specific arrays inside the BODY struct
-
fnInitializeOutputModule **fnInitializeOutput
These functions allocate memory to module-specific arrays inside the OUTPUT struct
-
fnInitializeUpdateTmpBodyModule **fnInitializeUpdateTmpBody
These functions allocate memory to module-specific arrays inside the BODY struct
-
fnFinalizeUpdateVelXModule **fnFinalizeUpdateVelX
SpiNBody variable finalize functions
-
fnFinalizeUpdateVelYModule **fnFinalizeUpdateVelY
-
fnFinalizeUpdateVelZModule **fnFinalizeUpdateVelZ
-
fnFinalizeUpdatePositionXModule **fnFinalizeUpdatePositionX
-
fnFinalizeUpdatePositionYModule **fnFinalizeUpdatePositionY
-
fnFinalizeUpdatePositionZModule **fnFinalizeUpdatePositionZ
-
fnFinalizeUpdate26AlNumCoreModule **fnFinalizeUpdate26AlNumCore
Function pointers to finalize Core’s potassium-40
-
fnFinalizeUpdate26AlNumManModule **fnFinalizeUpdate26AlNumMan
Function pointers to finalize Mantle’s potassium-40
-
fnFinalizeUpdate40KNumCoreModule **fnFinalizeUpdate40KNumCore
Function pointers to finalize Core’s potassium-40
-
fnFinalizeUpdate40KNumCrustModule **fnFinalizeUpdate40KNumCrust
Function pointers to finalize Crust’s potassium-40
-
fnFinalizeUpdate40KNumManModule **fnFinalizeUpdate40KNumMan
Function pointers to finalize Mantle’s potassium-40
-
fnFinalizeUpdate232ThNumCoreModule **fnFinalizeUpdate232ThNumCore
Function pointers to finalize Core’s thorium-232
-
fnFinalizeUpdate232ThNumCrustModule **fnFinalizeUpdate232ThNumCrust
Function pointers to finalize Crust’s thorium-232
-
fnFinalizeUpdate232ThNumManModule **fnFinalizeUpdate232ThNumMan
Function pointers to finalize Mantle’s thorium-232
-
fnFinalizeUpdate235UNumCoreModule **fnFinalizeUpdate235UNumCore
Function pointers to finalize Core’s uranium-235
-
fnFinalizeUpdate235UNumCrustModule **fnFinalizeUpdate235UNumCrust
Function pointers to finalize Crust’s uranium-235
-
fnFinalizeUpdate235UNumManModule **fnFinalizeUpdate235UNumMan
Function pointers to finalize Mantle’s uranium-235
-
fnFinalizeUpdate238UNumCoreModule **fnFinalizeUpdate238UNumCore
Function pointers to finalize Core’s uranium-238
-
fnFinalizeUpdate238UNumCrustModule **fnFinalizeUpdate238UNumCrust
Function pointers to finalize Crust’s uranium-238
-
fnFinalizeUpdate238UNumManModule **fnFinalizeUpdate238UNumMan
Function pointers to finalize Mantle’s uranium-238
-
fnFinalizeUpdateLostAngMomModule **fnFinalizeUpdateLostAngMom
Function pointers to finalize lost angular momentum
-
fnFinalizeUpdateLostEngModule **fnFinalizeUpdateLostEng
Function pointers to finalize lost energy
-
fnFinalizeUpdateHeccModule **fnFinalizeUpdateHecc
These functions assign Equation and Module information regarding DistOrb h,k,p,q variables in the UPDATE struct.
Function pointers to finalize Poincare’s h
-
fnFinalizeUpdateKeccModule **fnFinalizeUpdateKecc
Function pointers to finalize Poincare’s k
-
fnFinalizeUpdateLuminosityModule **fnFinalizeUpdateLuminosity
Function pointers to finalize Luminosity
-
fnFinalizeUpdatePincModule **fnFinalizeUpdatePinc
Function pointers to finalize Poincare’s p
-
fnFinalizeUpdateQincModule **fnFinalizeUpdateQinc
Function pointers to finalize Poincare’s q
-
fnFinalizeUpdateRadiusModule **fnFinalizeUpdateRadius
Function pointers to finalize Radius
-
fnFinalizeUpdateRadGyraModule **fnFinalizeUpdateRadGyra
Function pointers to finalize Radius of gyration
-
fnFinalizeUpdateMassModule **fnFinalizeUpdateMass
Function pointers to finalize Mass
-
fnFinalizeUpdateRotModule **fnFinalizeUpdateRot
Function pointers to finalize Rotation Rate
-
fnFinalizeUpdateSemiModule **fnFinalizeUpdateSemi
Function pointers to finalize Semi-major Axis
-
fnFinalizeUpdateSurfaceWaterMassModule **fnFinalizeUpdateSurfaceWaterMass
Function pointers to finalize Surface Water
-
fnFinalizeUpdateOxygenMassModule **fnFinalizeUpdateOxygenMass
Function pointers to finalize oxygen
-
fnFinalizeUpdateOxygenMantleMassModule **fnFinalizeUpdateOxygenMantleMass
Function pointers to finalize mantle oxygen
-
fnFinalizeUpdateEnvelopeMassModule **fnFinalizeUpdateEnvelopeMass
Function pointers to finalize Envelope Mass
-
fnFinalizeUpdateTCoreModule **fnFinalizeUpdateTCore
Function pointers to finalize Core Temperature
-
fnFinalizeUpdateTemperatureModule **fnFinalizeUpdateTemperature
Function pointers to finalize Temperature
-
fnFinalizeUpdateTManModule **fnFinalizeUpdateTMan
Function pointers to finalize Mantle Temperature
-
fnFinalizeUpdateCBPRModule **fnFinalizeUpdateCBPR
-
fnFinalizeUpdateCBPZModule **fnFinalizeUpdateCBPZ
-
fnFinalizeUpdateCBPPhiModule **fnFinalizeUpdateCBPPhi
-
fnFinalizeUpdateCBPRDotModule **fnFinalizeUpdateCBPRDot
-
fnFinalizeUpdateCBPZDotModule **fnFinalizeUpdateCBPZDot
-
fnFinalizeUpdateCBPPhiDotModule **fnFinalizeUpdateCBPPhiDot
-
fnFinalizeUpdateXoblModule **fnFinalizeUpdateXobl
These functions assign Equation and Module information regarding DistRot x,y,z variables in the UPDATE struct.
Function pointers to finalize distrot’s X
-
fnFinalizeUpdateYoblModule **fnFinalizeUpdateYobl
Function pointers to finalize distrot’s Y
-
fnFinalizeUpdateZoblModule **fnFinalizeUpdateZobl
Function pointers to finalize distrot’s Z
-
fnFinalizeUpdateDynEllipModule **fnFinalizeUpdateDynEllip
Function pointers to finalize dynamical ellipticity
-
fnFinalizeUpdateEccXModule **fnFinalizeUpdateEccX
These functions assign Equation and Module information regarding GalHabit’s ecc and angm variables in the UPDATE struct.
Function pointers to finalize galhabit’s eccx
-
fnFinalizeUpdateEccYModule **fnFinalizeUpdateEccY
Function pointers to finalize galhabit’s eccy
-
fnFinalizeUpdateEccZModule **fnFinalizeUpdateEccZ
Function pointers to finalize galhabit’s eccz
-
fnFinalizeUpdateAngMXModule **fnFinalizeUpdateAngMX
Function pointers to finalize galhabit’s angmx
-
fnFinalizeUpdateAngMYModule **fnFinalizeUpdateAngMY
Function pointers to finalize galhabit’s angmy
-
fnFinalizeUpdateAngMZModule **fnFinalizeUpdateAngMZ
Function pointers to finalize galhabit’s angmz
-
fnFinalizeUpdateLXUVModule **fnFinalizeUpdateLXUV
-
fnFinalizeUpdateWaterMassMOAtmModule **fnFinalizeUpdateWaterMassMOAtm
Function pointers to finalize magmoc functions
-
fnFinalizeUpdateWaterMassSolModule **fnFinalizeUpdateWaterMassSol
-
fnFinalizeUpdateSurfTempModule **fnFinalizeUpdateSurfTemp
-
fnFinalizeUpdatePotTempModule **fnFinalizeUpdatePotTemp
-
fnFinalizeUpdateSolidRadiusModule **fnFinalizeUpdateSolidRadius
-
fnFinalizeUpdateOxygenMassMOAtmModule **fnFinalizeUpdateOxygenMassMOAtm
-
fnFinalizeUpdateOxygenMassSolModule **fnFinalizeUpdateOxygenMassSol
-
fnFinalizeUpdateHydrogenMassSpaceModule **fnFinalizeUpdateHydrogenMassSpace
-
fnFinalizeUpdateOxygenMassSpaceModule **fnFinalizeUpdateOxygenMassSpace
-
fnFinalizeUpdateCO2MassMOAtmModule **fnFinalizeUpdateCO2MassMOAtm
-
fnFinalizeUpdateCO2MassSolModule **fnFinalizeUpdateCO2MassSol
-
fnLogBodyModule **fnLogBody
These functions log module-specific data.
-
fnReadOptionsModule **fnReadOptions
These functions read module-specific option.
-
fnVerifyModule **fnVerify
These functions verify module-specific options.
-
fnManageModuleDerivatives **fnAssignDerivatives
These functions add derivatives to the fnUpdate matrix
-
fnManageModuleDerivatives **fnNullDerivatives
-
fnVerifyHaltModule **fnVerifyHalt
These functions verify module-specific halts.
-
int *iNumModules