Skip to content

Commit 827abd5

Browse files
authored
Merge pull request #6925 from bangerth/restructure
Restructure code and check inputs.
2 parents b7d12ee + 56467ea commit 827abd5

File tree

2 files changed

+175
-93
lines changed

2 files changed

+175
-93
lines changed

include/aspect/boundary_temperature/dynamic_core.h

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,7 @@ namespace aspect
362362
};
363363
std::vector<struct str_data_OES> data_OES;
364364
void read_data_OES();
365-
double get_OES(double t) const;
365+
double compute_OES(double t) const;
366366

367367
/**
368368
* Solve core energy balance for each time step.
@@ -376,7 +376,7 @@ namespace aspect
376376
* Gravitational contribution Qg*dR/dt
377377
* Latent heat Ql*dR/dt
378378
* So that Q+Qs*dT/dt+Qr+Qg*dR/dt*Ql*dR/dt=0
379-
* 3. The light component composition X depends on inner core radius (See function get_X() ),
379+
* 3. The light component composition X depends on inner core radius (See function compute_X() ),
380380
* and core solidus may dependent on X as well.
381381
* This becomes a small nonlinear problem. Directly iterate through the above three equations doesn't
382382
* converge well. Alternatively we solve the inner core radius using the bisection method.
@@ -394,42 +394,42 @@ namespace aspect
394394
* Compute the difference between solidus and adiabatic temperature at inner
395395
* core boundary for a given inner core radius @p r.
396396
*/
397-
double get_dT(const double r) const;
397+
double compute_dT(const double r) const;
398398

399399
/**
400400
* Use energy balance to calculate core mantle boundary temperature
401401
* with a given inner core radius @p r.
402402
*/
403-
double get_Tc(const double r) const;
403+
double compute_Tc(const double r) const;
404404

405405
/**
406406
* Get the solidus temperature at inner core boundary
407407
* with a given inner core radius @p r.
408408
*/
409-
double get_Ts(const double r) const;
409+
double compute_Ts(const double r) const;
410410

411411
/**
412412
* Compute the core solidus at a given light element concentration @p X (in wt.%)
413413
* and pressure @p pressure.
414414
*/
415-
double get_solidus(const double X, const double pressure) const;
415+
double compute_solidus(const double X, const double pressure) const;
416416

417417
/**
418418
* Get initial inner core radius with given initial core mantle temperature
419419
* @p T.
420420
*/
421-
double get_initial_Ri(const double T) const;
421+
double compute_initial_Ri(const double T) const;
422422

423423
/**
424424
* Get the light element concentration (in wt.%) in the outer core from given
425425
* inner core radius @p r.
426426
*/
427-
double get_X(const double r) const;
427+
double compute_X(const double r) const;
428428

429429
/**
430430
* Compute the core mass inside a certain radius @p r.
431431
*/
432-
double get_mass(const double r) const;
432+
double compute_mass(const double r) const;
433433

434434
/**
435435
* Calculate Sn(B,R), referring to \cite NPB+04 .
@@ -439,73 +439,94 @@ namespace aspect
439439
/**
440440
* Calculate density at given radius @p r.
441441
*/
442-
double get_rho(const double r) const;
442+
double compute_rho(const double r) const;
443443

444444
/**
445445
* Calculate gravitational acceleration at given radius @p r.
446446
*/
447-
double get_g(const double r) const;
447+
double compute_g(const double r) const;
448448

449449
/**
450450
* Calculate the core temperature at given radius @p r and
451451
* temperature at CMB @p Tc.
452452
*/
453-
double get_T(const double Tc, const double r) const;
453+
double compute_T(const double Tc, const double r) const;
454454

455455
/**
456456
* Calculate pressure at given radius @p r
457457
*/
458-
double get_pressure(const double r) const;
458+
double compute_pressure(const double r) const;
459459

460460
/**
461461
* Calculate the gravitational potential at given radius @p r
462462
*/
463-
double get_gravity_potential(const double r) const;
463+
double compute_gravity_potential(const double r) const;
464464

465465
/**
466466
* Calculate energy (@p Qs) and entropy (@p Es) change rate factor
467467
* (regarding the core cooling rated Tc/dt) for a given core-mantle boundary (CMB)
468468
* temperature @p Tc
469+
*
470+
* @return A pair of (Qs, Es), i.e., the energy change rate factor first
471+
* and the entropy change rate factor second.
469472
*/
470-
void get_specific_heating(const double Tc, double &Qs, double &Es) const;
473+
std::pair<double,double>
474+
compute_specific_heating(const double Tc) const;
471475

472476
/**
473477
* Calculate energy (@p Qr) and entropy (@p Er) change rate factor (regarding the
474478
* radioactive heating rate H) for a given CMB temperature @p Tc
479+
*
480+
* @return A pair of (Qr, Er), i.e., the energy change rate factor first
481+
* and the entropy change rate factor second.
475482
*/
476-
void get_radio_heating(const double Tc, double &Qr, double &Er) const;
483+
std::pair<double,double>
484+
compute_radio_heating(const double Tc) const;
477485

478486
/**
479487
* Calculate energy (@p Qg) and entropy (@p Eg) change rate factor
480488
* (regarding the inner core growth rate dR/dt) for a given
481489
* @p Tc (CMB temperature), @p r (inner core radius), and @p X
482490
* (light element concentration)
491+
*
492+
* @return A pair of (Qg, Eg), i.e., the energy change rate factor first
493+
* and the entropy change rate factor second.
483494
*/
484-
void get_gravity_heating(const double Tc, const double r, const double X, double &Qg, double &Eg) const;
495+
std::pair<double,double>
496+
compute_gravity_heating(const double Tc, const double r, const double X) const;
485497

486498
/**
487499
* Calculate energy (@p Qk) and entropy (@p Ek) change rate factor
488500
* (regarding the core cooling rate Tc/dt) for a given @p Tc (CMB temperature)
501+
*
502+
* @return A pair of (Qk, Ek), i.e., the energy change rate factor first
503+
* and the entropy change rate factor second.
489504
*/
490-
void get_adiabatic_heating(const double Tc, double &Ek, double &Qk) const;
505+
std::pair<double,double>
506+
compute_adiabatic_heating(const double Tc) const;
491507

492508
/**
493509
* Calculate energy (@p Ql) and entropy (@p El) change rate factor
494510
* (regarding the inner core growth rate dR/dt) for a given @p Tc (CMB temperature)
495511
* and @p r (inner core radius)
512+
*
513+
* @return A pair of (Ql, El), i.e., the energy change rate factor first
514+
* and the entropy change rate factor second.
496515
*/
497-
void get_latent_heating(const double Tc, const double r, double &El, double &Ql) const;
516+
std::pair<double,double>
517+
compute_latent_heating(const double Tc, const double r) const;
498518

499519
/**
500520
* Calculate entropy of heat of solution @p Eh for a given @p Tc (CMB temperature),
501521
* @p r (inner core radius), and @p X (light element concentration)
502522
*/
503-
void get_heat_solution(const double Tc, const double r, const double X, double &Eh) const;
523+
double
524+
compute_heat_solution(const double Tc, const double r, const double X) const;
504525

505526
/**
506527
* return radiogenic heating rate at the current time
507528
*/
508-
double get_radioheating_rate() const;
529+
double compute_radioheating_rate() const;
509530

510531
/**
511532
* Update the data of the core dynamic simulation, the data will be used

0 commit comments

Comments
 (0)