Skip to content

Commit

Permalink
Merge pull request #253 from VirtualPlanetaryLaboratory/TestsUpdate
Browse files Browse the repository at this point in the history
Reorganized tests by module(s).
  • Loading branch information
RoryBarnes authored Nov 14, 2023
2 parents bbda67d + 495666d commit eb5313f
Show file tree
Hide file tree
Showing 224 changed files with 4,715 additions and 2,673 deletions.
5 changes: 2 additions & 3 deletions src/system.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ double fdSemiToMeanMotion(double dSemi, double dMass) {
}



/*
* Angular Momentum
*/
Expand Down Expand Up @@ -365,8 +364,8 @@ double fdXUVFlux(BODY *body, int iBody) {
pow((1 - body[iBody].dEcc * body[iBody].dEcc), 0.5));
}
// The system has one star, but the body is < 0, so the body has no flux.
else { // Central body can't have XUV flux (for now)
flux = -1;
else {
flux = 0;
}
}

Expand Down
29 changes: 29 additions & 0 deletions tests/Atmesc/NoXUVFlux/earth.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Planet a parameters
sName earth # Body's name
saModules atmesc # Modules to apply, exact spelling required

# Physical Properties
dMass -1 # Mass, negative -> Earth masses
dRadius -1 # Radius, negative -> Earth radii
dRotPeriod -1 # Rotation period, negative -> days
dObliquity 23.5 # Retrograde rotation
dRadGyra 0.5 # Radius of gyration (moment of inertia constant)

# ATMESC Properties
dXFrac 1.0 # X-Ray/XUV absorption radius (fraction of planet radius)
dSurfWaterMass -3.0 # Initial surface water (Earth oceans)
dEnvelopeMass 0 # Initial envelope mass (Earth masses)
bHaltSurfaceDesiccated 0 # Halt when dry?
bHaltEnvelopeGone 0 # Halt when evaporated?
dMinSurfWaterMass -1.e-5 # Planet is desiccated when water content drops below this (Earth oceans)
sWaterLossModel lbexact
sPlanetRadiusModel none
bInstantO2Sink 0
sAtmXAbsEffH2OModel bolmont16

# Orbital Properties
dSemi -1 # Semi-major axis, negative -> AU
dEcc 0.0167 # Eccentricity

# Output
saOutputOrder Time -SurfWaterMass -RGLimit -OxygenMass
117 changes: 117 additions & 0 deletions tests/Atmesc/NoXUVFlux/test_NoXUVFlux.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
import astropy.units as u
import pytest
from benchmark import Benchmark, benchmark


@benchmark(
{
"log.initial.system.Age": {"value": 0.000000, "unit": u.sec},
"log.initial.system.Time": {"value": 0.000000, "unit": u.sec},
"log.initial.system.TotAngMom": {
"value": 4.416946e33,
"unit": (u.kg * u.m**2) / u.sec,
},
"log.initial.system.TotEnergy": {"value": -2.237790e32, "unit": u.Joule},
"log.initial.system.PotEnergy": {"value": -2.239397e32, "unit": u.Joule},
"log.initial.system.KinEnergy": {"value": 1.606047e29, "unit": u.Joule},
"log.initial.system.DeltaTime": {"value": 0.000000, "unit": u.sec},
"log.initial.earth.Mass": {"value": 5.972186e24, "unit": u.kg},
"log.initial.earth.Radius": {"value": 6.378100e06, "unit": u.m},
"log.initial.earth.RadGyra": {"value": 0.500000},
"log.initial.earth.BodyType": {"value": 0.000000},
"log.initial.earth.Density": {"value": 5495.038549, "unit": u.kg / u.m**3},
"log.initial.earth.HZLimitDryRunaway": {"value": -1.000000, "unit": u.m},
"log.initial.earth.HZLimRecVenus": {"value": -1.000000},
"log.initial.earth.HZLimRunaway": {"value": -1.000000},
"log.initial.earth.HZLimMoistGreenhouse": {"value": -1.000000},
"log.initial.earth.HZLimMaxGreenhouse": {"value": -1.000000},
"log.initial.earth.HZLimEarlyMars": {"value": -1.000000},
"log.initial.earth.Instellation": {
"value": -1.000000,
"unit": u.kg / u.sec**3,
},
"log.initial.earth.MeanMotion": {"value": -1.000000, "unit": 1 / u.sec},
"log.initial.earth.OrbPeriod": {"value": -1.000000, "unit": u.sec},
"log.initial.earth.SemiMajorAxis": {"value": -1.000000, "unit": u.m},
"log.initial.earth.LXUVTot": {"value": -1.000000, "unit": u.kg / u.sec**3},
"log.initial.earth.SurfWaterMass": {"value": 3.000000, "unit": u.TO},
"log.initial.earth.EnvelopeMass": {"value": 0.000000, "unit": u.kg},
"log.initial.earth.OxygenMass": {"value": 0.000000, "unit": u.bar},
"log.initial.earth.RGLimit": {"value": 0.000000, "unit": u.au},
"log.initial.earth.XO": {"value": 0.333333},
"log.initial.earth.EtaO": {"value": 0.000000},
"log.initial.earth.PlanetRadius": {"value": 6.378100e06, "unit": u.m},
"log.initial.earth.OxygenMantleMass": {"value": 0.000000, "unit": u.kg},
"log.initial.earth.RadXUV": {"value": -1.000000, "unit": u.m},
"log.initial.earth.RadSolid": {"value": -1.000000, "unit": u.m},
"log.initial.earth.PresXUV": {"value": 5.000000},
"log.initial.earth.ScaleHeight": {"value": -1.000000, "unit": u.m},
"log.initial.earth.ThermTemp": {"value": 400.000000, "unit": u.K},
"log.initial.earth.AtmGasConst": {"value": 4124.000000},
"log.initial.earth.PresSurf": {"value": -1.000000, "unit": u.Pa},
"log.initial.earth.DEnvMassDt": {"value": 0.000000, "unit": u.kg / u.sec},
"log.initial.earth.FXUV": {"value": 0.000000, "unit": u.W / u.m**2},
"log.initial.earth.AtmXAbsEffH2O": {"value": 0.001000},
"log.initial.earth.RocheRadius": {"value": 1.037254e11, "unit": u.m},
"log.initial.earth.BondiRadius": {"value": 1.249016e08, "unit": u.m},
"log.initial.earth.HEscapeRegime": {"value": 8.000000},
"log.initial.earth.RRCriticalFlux": {
"value": 53.697959,
"unit": u.W / u.m**2,
},
"log.initial.earth.KTide": {"value": 0.999908},
"log.initial.earth.RGDuration": {"value": 0.00000e00, "unit": u.yr},
"log.final.system.Age": {"value": 3.155760e15, "unit": u.sec},
"log.final.system.Time": {"value": 3.155760e15, "unit": u.sec},
"log.final.system.TotAngMom": {
"value": 4.416946e33,
"unit": (u.kg * u.m**2) / u.sec,
},
"log.final.system.TotEnergy": {"value": -2.237790e32, "unit": u.Joule},
"log.final.system.PotEnergy": {"value": -2.239397e32, "unit": u.Joule},
"log.final.system.KinEnergy": {"value": 1.606047e29, "unit": u.Joule},
"log.final.system.DeltaTime": {"value": 3.155760e15, "unit": u.sec},
"log.final.earth.Mass": {"value": 5.972186e24, "unit": u.kg},
"log.final.earth.Radius": {"value": 6.378100e06, "unit": u.m},
"log.final.earth.RadGyra": {"value": 0.500000},
"log.final.earth.BodyType": {"value": 0.000000},
"log.final.earth.Density": {"value": 5495.038549, "unit": u.kg / u.m**3},
"log.final.earth.HZLimitDryRunaway": {"value": -1.000000, "unit": u.m},
"log.final.earth.HZLimRecVenus": {"value": -1.000000},
"log.final.earth.HZLimRunaway": {"value": -1.000000},
"log.final.earth.HZLimMoistGreenhouse": {"value": -1.000000},
"log.final.earth.HZLimMaxGreenhouse": {"value": -1.000000},
"log.final.earth.HZLimEarlyMars": {"value": -1.000000},
"log.final.earth.Instellation": {"value": -1.000000, "unit": u.kg / u.sec**3},
"log.final.earth.MeanMotion": {"value": -1.000000, "unit": 1 / u.sec},
"log.final.earth.OrbPeriod": {"value": -1.000000, "unit": u.sec},
"log.final.earth.SemiMajorAxis": {"value": -1.000000, "unit": u.m},
"log.final.earth.LXUVTot": {"value": -1.000000, "unit": u.kg / u.sec**3},
"log.final.earth.SurfWaterMass": {"value": 3.000000, "unit": u.TO},
"log.final.earth.EnvelopeMass": {"value": 0.000000, "unit": u.kg},
"log.final.earth.OxygenMass": {"value": 0.000000, "unit": u.bar},
"log.final.earth.RGLimit": {"value": 0.000000, "unit": u.au},
"log.final.earth.XO": {"value": 0.333333},
"log.final.earth.EtaO": {"value": 0.000000},
"log.final.earth.PlanetRadius": {"value": 6.378100e06, "unit": u.m},
"log.final.earth.OxygenMantleMass": {"value": 0.000000, "unit": u.kg},
"log.final.earth.RadXUV": {"value": -1.000000, "unit": u.m},
"log.final.earth.RadSolid": {"value": -1.000000, "unit": u.m},
"log.final.earth.PresXUV": {"value": 5.000000},
"log.final.earth.ScaleHeight": {"value": -1.000000, "unit": u.m},
"log.final.earth.ThermTemp": {"value": 400.000000, "unit": u.K},
"log.final.earth.AtmGasConst": {"value": 4124.000000},
"log.final.earth.PresSurf": {"value": -1.000000, "unit": u.Pa},
"log.final.earth.DEnvMassDt": {"value": 0.000000, "unit": u.kg / u.sec},
"log.final.earth.FXUV": {"value": 0.000000, "unit": u.W / u.m**2},
"log.final.earth.AtmXAbsEffH2O": {"value": 0.001000},
"log.final.earth.RocheRadius": {"value": 1.037254e11, "unit": u.m},
"log.final.earth.BondiRadius": {"value": 1.249016e08, "unit": u.m},
"log.final.earth.HEscapeRegime": {"value": 8.000000},
"log.final.earth.RRCriticalFlux": {"value": 53.697959, "unit": u.W / u.m**2},
"log.final.earth.KTide": {"value": 0.999908},
"log.final.earth.RGDuration": {"value": 1.00000e08, "unit": u.yr},
}
)
class Test_NoXUVFlux(Benchmark):
pass
24 changes: 24 additions & 0 deletions tests/Atmesc/NoXUVFlux/vpl.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
sSystemName solarsystem # System Name
iVerbose 5 # Verbosity level
bOverwrite 1 # Allow file overwrites?

# List of "body files" that contain body-specific parameters
saBodyFiles earth.in

# Input/Output Units
sUnitMass solar # Options: gram, kg, Earth, Neptune, Jupiter, solar
sUnitLength aU # Options: cm, m, km, Earth, Jupiter, solar, AU
sUnitTime YEARS # Options: sec, day, year, Myr, Gyr
sUnitAngle d # Options: deg, rad

# Input/Output
bDoLog 1 # Write a log file?
iDigits 6 # Maximum number of digits to right of decimal
dMinValue 1e-10 # Minimum value of eccentricity/obliquity

# Evolution Parameters
bDoForward 1 # Perform a forward evolution?
bVarDt 1 # Use variable timestepping?
dEta 0.1 # Coefficient for variable timestepping
dStopTime 1e8 # Stop time for evolution
dOutputTime 1e8 # Output timesteps (assuming in body files)
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit eb5313f

Please sign in to comment.