Skip to content

Commit

Permalink
Changed output DeltaTime to be average timestep over previous output.
Browse files Browse the repository at this point in the history
Updated all tests, some are breaking.
  • Loading branch information
Rory Barnes committed Feb 5, 2024
1 parent a0b4594 commit ae3a1e1
Show file tree
Hide file tree
Showing 52 changed files with 15,007 additions and 28,842 deletions.
13 changes: 6 additions & 7 deletions src/evolve.c
Original file line number Diff line number Diff line change
Expand Up @@ -603,12 +603,10 @@ void Evolve(BODY *body, CONTROL *control, FILES *files, MODULE *module,
fnUpdateVariable ***fnUpdate, fnWriteOutput *fnWrite,
fnIntegrate fnOneStep) {
/* Master evolution routine that controls the simulation integration. */
int iDir, iBody, iModule, nSteps; // Dummy counting variables
int iDir, iBody, iModule; // Dummy counting variables
double dDt, dFoo; // Next timestep, dummy variable
double dEqSpinRate; // Store the equilibrium spin rate

nSteps = 0;

if (control->Evolve.bDoForward) {
iDir = 1;
} else {
Expand Down Expand Up @@ -645,6 +643,8 @@ void Evolve(BODY *body, CONTROL *control, FILES *files, MODULE *module,
*
*/

control->Evolve.iStepsSinceLastOutput = 0;
control->Evolve.iTotalSteps = 0;
while (control->Evolve.dTime < control->Evolve.dStopTime) {
/* Take one step */
fnOneStep(body, control, system, update, fnUpdate, &dDt, iDir);
Expand Down Expand Up @@ -678,17 +678,16 @@ void Evolve(BODY *body, CONTROL *control, FILES *files, MODULE *module,
}

control->Evolve.dTime += dDt;
nSteps++;
control->Evolve.iStepsSinceLastOutput++;

/* Time for Output? */
if (control->Evolve.dTime >= control->Io.dNextOutput) {
control->Evolve.nSteps += nSteps;
control->Evolve.iTotalSteps += control->Evolve.iStepsSinceLastOutput;
WriteOutput(body, control, files, output, system, update, fnWrite);
// Timesteps are synchronized with the output time, so this statement is
// sufficient
control->Io.dNextOutput += control->Io.dOutputTime;
//printf("%d\n",nSteps);
nSteps = 0;
control->Evolve.iStepsSinceLastOutput = 0;
}

/* Get auxiliary properties for next step -- first call
Expand Down
1 change: 0 additions & 1 deletion src/magmoc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1432,7 +1432,6 @@ void PropsAuxMagmOc(BODY *body, EVOLVE *evolve, IO *io, UPDATE *update,
int iBody) {
double dCurrentTime = evolve->dTime;
double dCurrentTimeStep = evolve->dTimeStep;
double dCurrentStepNum = evolve->nSteps;
double dAveMolarMassAtm;

// body[iBody].dSurfTemp = body[iBody].dPotTemp;
Expand Down
12 changes: 1 addition & 11 deletions src/output.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ void WriteDeltaTime(BODY *body, CONTROL *control, OUTPUT *output,

if (control->Evolve.bVarDt) {
if (control->Evolve.dTime > 0) {
*dTmp = control->Io.dOutputTime / control->Evolve.nSteps;
*dTmp = control->Io.dOutputTime / control->Evolve.iStepsSinceLastOutput;
} else {
if (control->Io.iVerbose >= VERBINPUT && !control->Io.bDeltaTimeMessage) {
fprintf(stderr, "INFO: DeltaTime output for first step is defined to "
Expand Down Expand Up @@ -2199,16 +2199,6 @@ void WriteLog(BODY *body, CONTROL *control, FILES *files, MODULE *module,

/* Bodies' Properties */
LogBody(body, control, files, module, output, system, fnWrite, fp, update);

/* Deprecated
if (iEnd) {
dTotTime = difftime(time(NULL),dStartTime);
fprintf(fp,"\nRuntime = %d s\n", (int)dTotTime);
fprintf(fp,"Total Number of Steps = %d\n",control->Evolve.nSteps);
if (control->Io.iVerbose >= VERBPROG)
printf("Runtime = %d s\n", (int)dTotTime);
}
*/
fclose(fp);
}

Expand Down
1 change: 0 additions & 1 deletion src/verify.c
Original file line number Diff line number Diff line change
Expand Up @@ -1109,7 +1109,6 @@ void VerifyOptions(BODY *body, CONTROL *control, FILES *files, MODULE *module,
int iBody, iModule;

control->Evolve.dTime = 0;
control->Evolve.nSteps = 0;

VerifyAge(body, control, options);
VerifyNames(body, control, options);
Expand Down
3 changes: 2 additions & 1 deletion src/vplanet.h
Original file line number Diff line number Diff line change
Expand Up @@ -1734,7 +1734,8 @@ struct EVOLVE {
double dStopTime; /**< Integration Stop Time */
double dTimeStep; /**< Integration Time step */
int bVarDt; /**< Use Variable Timestep? */
int nSteps; /**< Total Number of Steps */
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? */
Expand Down

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

3,052 changes: 1,058 additions & 1,994 deletions tests/AtmescEqtideStellar/Lopez12CPL/test_Lopez12CPL.py

Large diffs are not rendered by default.

1,083 changes: 392 additions & 691 deletions tests/AtmescEqtideStellar/WaterLossCPL/test_WaterLossCPL.py

Large diffs are not rendered by default.

1,008 changes: 368 additions & 640 deletions tests/AtmescEqtideStellar/WaterLossCTL/test_WaterLossCTL.py

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -102,36 +102,36 @@
"log.initial.b.RGDuration": {"value": 0.00000e+00, "unit": u.yr},
"log.final.system.Age": {"value": 3.4713360000e+15, "unit": u.sec, "rtol": 1e-4},
"log.final.system.Time": {"value": 3.1557600000e+15, "unit": u.sec, "rtol": 1e-4},
"log.final.system.TotAngMom": {"value": 3.7341579011e+41, "unit": (u.kg * u.m ** 2) / u.sec, "rtol": 1e-4},
"log.final.system.TotEnergy": {"value": -7.1773447078e+39, "unit": u.Joule, "rtol": 1e-4},
"log.final.system.PotEnergy": {"value": -1.6690355074e+40, "unit": u.Joule, "rtol": 1e-4},
"log.final.system.KinEnergy": {"value": 1.4205267538e+37, "unit": u.Joule, "rtol": 1e-4},
"log.final.system.TotAngMom": {"value": 3.7341533560e+41, "unit": (u.kg * u.m ** 2) / u.sec, "rtol": 1e-4},
"log.final.system.TotEnergy": {"value": -7.1773609675e+39, "unit": u.Joule, "rtol": 1e-4},
"log.final.system.PotEnergy": {"value": -1.6690353117e+40, "unit": u.Joule, "rtol": 1e-4},
"log.final.system.KinEnergy": {"value": 1.4205186517e+37, "unit": u.Joule, "rtol": 1e-4},
"log.final.star.Mass": {"value": 2.3860992000e+29, "unit": u.kg, "rtol": 1e-4},
"log.final.star.Radius": {"value": 1.3660515451e+08, "unit": u.m, "rtol": 1e-4},
"log.final.star.RadGyra": {"value": 0.4634687441, "rtol": 1e-4},
"log.final.star.RotAngMom": {"value": 1.6484337287e+41, "unit": (u.kg * u.m ** 2) / u.sec, "rtol": 1e-4},
"log.final.star.RotVel": {"value": 2.3543715870e+04, "unit": u.m / u.sec, "rtol": 1e-4},
"log.final.star.Radius": {"value": 1.3660517053e+08, "unit": u.m, "rtol": 1e-4},
"log.final.star.RadGyra": {"value": 0.4634687438, "rtol": 1e-4},
"log.final.star.RotAngMom": {"value": 1.6484292198e+41, "unit": (u.kg * u.m ** 2) / u.sec, "rtol": 1e-4},
"log.final.star.RotVel": {"value": 2.3543648743e+04, "unit": u.m / u.sec, "rtol": 1e-4},
"log.final.star.BodyType": {"value": 0.0000000000, "rtol": 1e-4},
"log.final.star.RotRate": {"value": 0.0001723487, "unit": 1 / u.sec, "rtol": 1e-4},
"log.final.star.RotPer": {"value": 3.6456246094e+04, "unit": u.sec, "rtol": 1e-4},
"log.final.star.Density": {"value": 2.2345939842e+04, "unit": u.kg / u.m ** 3, "rtol": 1e-4},
"log.final.star.HZLimitDryRunaway": {"value": 7.5299891659e+09, "unit": u.m, "rtol": 1e-4},
"log.final.star.HZLimRecVenus": {"value": 6.7635458270e+09, "unit": u.m, "rtol": 1e-4},
"log.final.star.HZLimRunaway": {"value": 8.9093065315e+09, "unit": u.m, "rtol": 1e-4},
"log.final.star.HZLimMoistGreenhouse": {"value": 8.9492880013e+09, "unit": u.m, "rtol": 1e-4},
"log.final.star.HZLimMaxGreenhouse": {"value": 1.7098800924e+10, "unit": u.m, "rtol": 1e-4},
"log.final.star.HZLimEarlyMars": {"value": 1.8647990862e+10, "unit": u.m, "rtol": 1e-4},
"log.final.star.RotRate": {"value": 0.0001723482, "unit": 1 / u.sec, "rtol": 1e-4},
"log.final.star.RotPer": {"value": 3.6456354310e+04, "unit": u.sec, "rtol": 1e-4},
"log.final.star.Density": {"value": 2.2345931983e+04, "unit": u.kg / u.m ** 3, "rtol": 1e-4},
"log.final.star.HZLimitDryRunaway": {"value": 7.5299902322e+09, "unit": u.m, "rtol": 1e-4},
"log.final.star.HZLimRecVenus": {"value": 6.7635467826e+09, "unit": u.m, "rtol": 1e-4},
"log.final.star.HZLimRunaway": {"value": 8.9093077916e+09, "unit": u.m, "rtol": 1e-4},
"log.final.star.HZLimMoistGreenhouse": {"value": 8.9492892657e+09, "unit": u.m, "rtol": 1e-4},
"log.final.star.HZLimMaxGreenhouse": {"value": 1.7098803327e+10, "unit": u.m, "rtol": 1e-4},
"log.final.star.HZLimEarlyMars": {"value": 1.8647993484e+10, "unit": u.m, "rtol": 1e-4},
"log.final.star.Instellation": {"value": -1.0000000000, "unit": u.kg / u.sec ** 3, "rtol": 1e-4},
"log.final.star.CriticalSemiMajorAxis": {"value": -1.0000000000, "unit": u.m, "rtol": 1e-4},
"log.final.star.LXUVTot": {"value": 1.3924392185e+21, "unit": u.kg / u.sec ** 3, "rtol": 1e-4},
"log.final.star.LostEnergy": {"value": 9.4988137536e+39, "unit": u.Joule, "rtol": 1e-4},
"log.final.star.LostAngMom": {"value": 2.0600453589e+41, "unit": (u.kg * u.m ** 2) / u.sec, "rtol": 1e-4},
"log.final.star.Luminosity": {"value": 1.1827873055e+24, "unit": u.W, "rtol": 1e-4},
"log.final.star.LXUVStellar": {"value": 2.7351703006e-06, "unit": u.LSUN, "rtol": 1e-4},
"log.final.star.Temperature": {"value": 3070.0998661274, "unit": u.K, "rtol": 1e-4},
"log.final.star.LXUVTot": {"value": 1.3924395712e+21, "unit": u.kg / u.sec ** 3, "rtol": 1e-4},
"log.final.star.LostEnergy": {"value": 9.4987956185e+39, "unit": u.Joule, "rtol": 1e-4},
"log.final.star.LostAngMom": {"value": 2.0600453226e+41, "unit": (u.kg * u.m ** 2) / u.sec, "rtol": 1e-4},
"log.final.star.Luminosity": {"value": 1.1827876405e+24, "unit": u.W, "rtol": 1e-4},
"log.final.star.LXUVStellar": {"value": 2.7351710752e-06, "unit": u.LSUN, "rtol": 1e-4},
"log.final.star.Temperature": {"value": 3070.0998845922, "unit": u.K, "rtol": 1e-4},
"log.final.star.LXUVFrac": {"value": 0.0008893793, "rtol": 1e-4},
"log.final.star.RossbyNumber": {"value": 0.0064694415, "rtol": 1e-4},
"log.final.star.DRotPerDtStellar": {"value": -2.9636773892e-12, "rtol": 1e-4},
"log.final.star.RossbyNumber": {"value": 0.0064694608, "rtol": 1e-4},
"log.final.star.DRotPerDtStellar": {"value": -2.9636842834e-12, "rtol": 1e-4},
"log.final.star.LXUVFlare": {"value": 8.8531477149e-07, "unit": u.LSUN, "rtol": 1e-4},
"log.final.star.FlareFreq1": {"value": 3.7279360348e-07, "unit": 1 / u.sec, "rtol": 1e-4},
"log.final.star.FlareFreq2": {"value": 3.4532301760e-07, "unit": 1 / u.sec, "rtol": 1e-4},
Expand All @@ -152,23 +152,23 @@
"log.final.b.RadGyra": {"value": 0.5000000000, "rtol": 1e-4},
"log.final.b.BodyType": {"value": 0.0000000000, "rtol": 1e-4},
"log.final.b.Density": {"value": 5741.2661742908, "unit": u.kg / u.m ** 3, "rtol": 1e-4},
"log.final.b.HZLimitDryRunaway": {"value": 7.5542014122e+09, "unit": u.m, "rtol": 1e-4},
"log.final.b.HZLimRecVenus": {"value": 6.7635458270e+09, "unit": u.m, "rtol": 1e-4},
"log.final.b.HZLimRunaway": {"value": 8.9093065315e+09, "unit": u.m, "rtol": 1e-4},
"log.final.b.HZLimMoistGreenhouse": {"value": 8.9492880013e+09, "unit": u.m, "rtol": 1e-4},
"log.final.b.HZLimMaxGreenhouse": {"value": 1.7098800924e+10, "unit": u.m, "rtol": 1e-4},
"log.final.b.HZLimEarlyMars": {"value": 1.8647990862e+10, "unit": u.m, "rtol": 1e-4},
"log.final.b.Instellation": {"value": 1793.7284563913, "unit": u.kg / u.sec ** 3, "rtol": 1e-4},
"log.final.b.HZLimitDryRunaway": {"value": 7.5542024819e+09, "unit": u.m, "rtol": 1e-4},
"log.final.b.HZLimRecVenus": {"value": 6.7635467826e+09, "unit": u.m, "rtol": 1e-4},
"log.final.b.HZLimRunaway": {"value": 8.9093077916e+09, "unit": u.m, "rtol": 1e-4},
"log.final.b.HZLimMoistGreenhouse": {"value": 8.9492892657e+09, "unit": u.m, "rtol": 1e-4},
"log.final.b.HZLimMaxGreenhouse": {"value": 1.7098803327e+10, "unit": u.m, "rtol": 1e-4},
"log.final.b.HZLimEarlyMars": {"value": 1.8647993484e+10, "unit": u.m, "rtol": 1e-4},
"log.final.b.Instellation": {"value": 1793.7289644179, "unit": u.kg / u.sec ** 3, "rtol": 1e-4},
"log.final.b.MeanMotion": {"value": 6.4573247685e-06, "unit": 1 / u.sec, "rtol": 1e-4},
"log.final.b.OrbPeriod": {"value": 9.7303225908e+05, "unit": u.sec, "rtol": 1e-4},
"log.final.b.SemiMajorAxis": {"value": 7.2554967289e+09, "unit": u.m, "rtol": 1e-4},
"log.final.b.LXUVTot": {"value": -1.0000000000, "unit": u.kg / u.sec ** 3, "rtol": 1e-4},
"log.final.b.SurfWaterMass": {"value": 1.0402108220, "unit": u.TO, "rtol": 1e-4},
"log.final.b.SurfWaterMass": {"value": 1.0402069924, "unit": u.TO, "rtol": 1e-4},
"log.final.b.EnvelopeMass": {"value": 0.0000000000, "unit": u.Mearth, "rtol": 1e-4},
"log.final.b.OxygenMass": {"value": 43.5932915978, "unit": u.bar, "rtol": 1e-4},
"log.final.b.RGLimit": {"value": 8.5788654152e+09, "unit": u.m, "rtol": 1e-4},
"log.final.b.XO": {"value": 0.3712092327, "rtol": 1e-4},
"log.final.b.EtaO": {"value": 0.5563641730, "rtol": 1e-4},
"log.final.b.OxygenMass": {"value": 43.5935748883, "unit": u.bar, "rtol": 1e-4},
"log.final.b.RGLimit": {"value": 8.5788666285e+09, "unit": u.m, "rtol": 1e-4},
"log.final.b.XO": {"value": 0.3712095964, "rtol": 1e-4},
"log.final.b.EtaO": {"value": 0.5563648963, "rtol": 1e-4},
"log.final.b.PlanetRadius": {"value": 1.0669438421, "unit": u.Rearth, "rtol": 1e-4},
"log.final.b.OxygenMantleMass": {"value": 0.0000000000, "unit": u.kg, "rtol": 1e-4},
"log.final.b.RadXUV": {"value": -1.0000000000, "unit": u.m, "rtol": 1e-4},
Expand All @@ -179,20 +179,20 @@
"log.final.b.AtmGasConst": {"value": 4124.0000000000, "rtol": 1e-4},
"log.final.b.PresSurf": {"value": -1.0000000000, "unit": u.Pa, "rtol": 1e-4},
"log.final.b.DEnvMassDt": {"value": 5.5626846463e-309, "unit": u.kg / u.sec, "rtol": 1e-4},
"log.final.b.FXUV": {"value": 2.1116711671, "unit": u.W / u.m ** 2, "rtol": 1e-4},
"log.final.b.FXUV": {"value": 2.1116717021, "unit": u.W / u.m ** 2, "rtol": 1e-4},
"log.final.b.AtmXAbsEffH2O": {"value": 0.3000000000, "rtol": 1e-4},
"log.final.b.RocheRadius": {"value": 1.5931703542e+08, "unit": u.m, "rtol": 1e-4},
"log.final.b.BondiRadius": {"value": 2.9268184331e+08, "unit": u.m, "rtol": 1e-4},
"log.final.b.BondiRadius": {"value": 2.9268182439e+08, "unit": u.m, "rtol": 1e-4},
"log.final.b.HEscapeRegime": {"value": 8.0000000000, "rtol": 1e-4},
"log.final.b.RRCriticalFlux": {"value": 62.3818675680, "unit": u.W / u.m ** 2, "rtol": 1e-4},
"log.final.b.CrossoverMass": {"value": 4.8764660612e-26, "unit": u.kg, "rtol": 1e-4},
"log.final.b.CrossoverMass": {"value": 4.8764649784e-26, "unit": u.kg, "rtol": 1e-4},
"log.final.b.WaterEscapeRegime": {"value": 3.0000000000, "rtol": 1e-4},
"log.final.b.FXUVCRITDRAG": {"value": 0.2220623340, "unit": u.W / u.m ** 2, "rtol": 1e-4},
"log.final.b.HREFFLUX": {"value": 1.3709166600e+18, "unit": 1 / u.m ** 2 / u.sec, "rtol": 1e-4},
"log.final.b.XO2": {"value": 0.0828667832, "rtol": 1e-4},
"log.final.b.XH2O": {"value": 0.9171332168, "rtol": 1e-4},
"log.final.b.HDiffFlux": {"value": 1.3299128469e+17, "unit": 1 / u.m ** 2 / u.sec, "rtol": 1e-4},
"log.final.b.HRefODragMod": {"value": 0.1834554926, "rtol": 1e-4},
"log.final.b.FXUVCRITDRAG": {"value": 0.2220622056, "unit": u.W / u.m ** 2, "rtol": 1e-4},
"log.final.b.HREFFLUX": {"value": 1.3709170073e+18, "unit": 1 / u.m ** 2 / u.sec, "rtol": 1e-4},
"log.final.b.XO2": {"value": 0.0828675569, "rtol": 1e-4},
"log.final.b.XH2O": {"value": 0.9171324431, "rtol": 1e-4},
"log.final.b.HDiffFlux": {"value": 1.3299120777e+17, "unit": 1 / u.m ** 2 / u.sec, "rtol": 1e-4},
"log.final.b.HRefODragMod": {"value": 0.1834552979, "rtol": 1e-4},
"log.final.b.KTide": {"value": 0.9359679029, "rtol": 1e-4},
"log.final.b.RGDuration": {"value": 0.00000e+00, "unit": u.yr, "rtol": 1e-4},
}
Expand Down
Loading

0 comments on commit ae3a1e1

Please sign in to comment.