ASPECT
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
aspect::BoundaryTemperature::DynamicCore< dim > Class Template Reference
Inheritance diagram for aspect::BoundaryTemperature::DynamicCore< dim >:
Inheritance graph
[legend]

Classes

struct  str_data_OES
 

Public Member Functions

 DynamicCore ()
 
void update () override
 
const internal::CoreDataget_core_data () const
 
bool is_OES_used () const
 
double boundary_temperature (const types::boundary_id boundary_indicator, const Point< dim > &location) const override
 
double minimal_temperature (const std::set< types::boundary_id > &fixed_boundary_ids) const override
 
double maximal_temperature (const std::set< types::boundary_id > &fixed_boundary_ids) const override
 
void parse_parameters (ParameterHandler &prm) override
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 
void save (std::map< std::string, std::string > &status_strings) const override
 
void load (const std::map< std::string, std::string > &status_strings) override
 
- Public Member Functions inherited from aspect::Plugins::InterfaceBase
virtual ~InterfaceBase ()=default
 
virtual void initialize ()
 
- Public Member Functions inherited from aspect::SimulatorAccess< dim >
 SimulatorAccess ()
 
 SimulatorAccess (const Simulator< dim > &simulator_object)
 
virtual ~SimulatorAccess ()
 
virtual void initialize_simulator (const Simulator< dim > &simulator_object)
 
const Introspection< dim > & introspection () const
 
const Simulator< dim > & get_simulator () const
 
const Parameters< dim > & get_parameters () const
 
SimulatorSignals< dim > & get_signals () const
 
MPI_Comm get_mpi_communicator () const
 
TimerOutputget_computing_timer () const
 
const ConditionalOStreamget_pcout () const
 
double get_time () const
 
double get_timestep () const
 
double get_old_timestep () const
 
unsigned int get_timestep_number () const
 
const TimeStepping::Manager< dim > & get_timestepping_manager () const
 
unsigned int get_nonlinear_iteration () const
 
const parallel::distributed::Triangulation< dim > & get_triangulation () const
 
double get_volume () const
 
const Mapping< dim > & get_mapping () const
 
std::string get_output_directory () const
 
unsigned int get_checkpoint_id () const
 
bool include_adiabatic_heating () const
 
bool include_latent_heat () const
 
bool include_melt_transport () const
 
int get_stokes_velocity_degree () const
 
double get_adiabatic_surface_temperature () const
 
double get_surface_pressure () const
 
bool convert_output_to_years () const
 
unsigned int get_pre_refinement_step () const
 
unsigned int n_compositional_fields () const
 
double get_end_time () const
 
void get_refinement_criteria (Vector< float > &estimated_error_per_cell) const
 
void get_artificial_viscosity (Vector< float > &viscosity_per_cell, const bool skip_interior_cells=false) const
 
void get_artificial_viscosity_composition (Vector< float > &viscosity_per_cell, const unsigned int compositional_variable) const
 
const LinearAlgebra::BlockVectorget_current_linearization_point () const
 
const LinearAlgebra::BlockVectorget_solution () const
 
const LinearAlgebra::BlockVectorget_old_solution () const
 
const LinearAlgebra::BlockVectorget_old_old_solution () const
 
const LinearAlgebra::BlockVectorget_reaction_vector () const
 
const LinearAlgebra::BlockVectorget_mesh_velocity () const
 
const DoFHandler< dim > & get_dof_handler () const
 
const FiniteElement< dim > & get_fe () const
 
const LinearAlgebra::BlockSparseMatrixget_system_matrix () const
 
const LinearAlgebra::BlockSparseMatrixget_system_preconditioner_matrix () const
 
const MaterialModel::Interface< dim > & get_material_model () const
 
const GravityModel::Interface< dim > & get_gravity_model () const
 
const InitialTopographyModel::Interface< dim > & get_initial_topography_model () const
 
const std::shared_ptr< const InitialTopographyModel::Interface< dim > > get_initial_topography_model_pointer () const
 
const GeometryModel::Interface< dim > & get_geometry_model () const
 
const AdiabaticConditions::Interface< dim > & get_adiabatic_conditions () const
 
bool has_boundary_temperature () const
 
const BoundaryTemperature::Manager< dim > & get_boundary_temperature_manager () const
 
const BoundaryConvectiveHeating::Manager< dim > & get_boundary_convective_heating_manager () const
 
const BoundaryHeatFlux::Interface< dim > & get_boundary_heat_flux () const
 
bool has_boundary_composition () const
 
const BoundaryComposition::Manager< dim > & get_boundary_composition_manager () const
 
const BoundaryTraction::Manager< dim > & get_boundary_traction_manager () const
 
std::shared_ptr< const InitialTemperature::Manager< dim > > get_initial_temperature_manager_pointer () const
 
const InitialTemperature::Manager< dim > & get_initial_temperature_manager () const
 
std::shared_ptr< const InitialComposition::Manager< dim > > get_initial_composition_manager_pointer () const
 
const InitialComposition::Manager< dim > & get_initial_composition_manager () const
 
const std::set< types::boundary_id > & get_fixed_temperature_boundary_indicators () const
 
const std::set< types::boundary_id > & get_fixed_heat_flux_boundary_indicators () const
 
const std::set< types::boundary_id > & get_fixed_convective_heating_boundary_indicators () const
 
const std::set< types::boundary_id > & get_fixed_composition_boundary_indicators () const
 
const std::set< types::boundary_id > & get_mesh_deformation_boundary_indicators () const
 
const BoundaryVelocity::Manager< dim > & get_boundary_velocity_manager () const
 
const HeatingModel::Manager< dim > & get_heating_model_manager () const
 
const MeshRefinement::Manager< dim > & get_mesh_refinement_manager () const
 
const MeltHandler< dim > & get_melt_handler () const
 
const VolumeOfFluidHandler< dim > & get_volume_of_fluid_handler () const
 
const NewtonHandler< dim > & get_newton_handler () const
 
const MeshDeformation::MeshDeformationHandler< dim > & get_mesh_deformation_handler () const
 
const LateralAveraging< dim > & get_lateral_averaging () const
 
const AffineConstraints< double > & get_current_constraints () const
 
bool simulator_is_past_initialization () const
 
double get_pressure_scaling () const
 
bool pressure_rhs_needs_compatibility_modification () const
 
bool model_has_prescribed_stokes_solution () const
 
TableHandlerget_statistics_object () const
 
const Postprocess::Manager< dim > & get_postprocess_manager () const
 
unsigned int n_particle_managers () const
 
const Particle::Manager< dim > & get_particle_manager (const unsigned int particle_manager_index) const
 
Particle::Manager< dim > & get_particle_manager (const unsigned int particle_manager_index)
 
bool is_stokes_matrix_free ()
 
const StokesMatrixFreeHandler< dim > & get_stokes_matrix_free () const
 
const PrescribedSolution::Manager< dim > & get_prescribed_solution () const
 
RotationProperties< dim > compute_net_angular_momentum (const bool use_constant_density, const LinearAlgebra::BlockVector &solution, const bool limit_to_top_faces=false) const
 
void remove_nullspace (LinearAlgebra::BlockVector &solution, LinearAlgebra::BlockVector &distributed_stokes_solution) const
 
double normalize_pressure (LinearAlgebra::BlockVector &vector) const
 
void denormalize_pressure (const double pressure_adjustment, LinearAlgebra::BlockVector &vector) const
 

Static Public Member Functions

static void declare_parameters (ParameterHandler &prm)
 
- Static Public Member Functions inherited from aspect::Plugins::InterfaceBase
static void declare_parameters (ParameterHandler &prm)
 
- Static Public Member Functions inherited from aspect::SimulatorAccess< dim >
static void get_composition_values_at_q_point (const std::vector< std::vector< double >> &composition_values, const unsigned int q, std::vector< double > &composition_values_at_q_point)
 

Private Member Functions

void read_data_OES ()
 
double compute_OES (double t) const
 
internal::SolveTimeStepResult solve_time_step () const
 
double compute_dT (const double r) const
 
double compute_Tc (const double r) const
 
double compute_Ts (const double r) const
 
double compute_solidus (const double X, const double pressure) const
 
double compute_initial_Ri (const double T) const
 
double compute_X (const double r) const
 
double compute_mass (const double r) const
 
double fun_Sn (const double B, const double R, const unsigned int n) const
 
double compute_rho (const double r) const
 
double compute_T (const double Tc, const double r) const
 
double compute_pressure (const double r) const
 
double compute_gravity_potential (const double r) const
 
std::pair< double, double > compute_specific_heating (const double Tc) const
 
std::pair< double, double > compute_radio_heating (const double Tc) const
 
std::pair< double, double > compute_gravity_heating (const double Tc, const double r, const double X) const
 
std::pair< double, double > compute_adiabatic_heating (const double Tc) const
 
std::pair< double, double > compute_latent_heating (const double Tc, const double r) const
 
double compute_heat_solution (const double Tc, const double r, const double X) const
 
double compute_radioheating_rate () const
 
void update_core_data ()
 

Private Attributes

internal::CoreData core_data
 
double inner_temperature
 
double outer_temperature
 
types::boundary_id inner_boundary_id
 
types::boundary_id outer_boundary_id
 
double init_dT_dt
 
double init_dR_dt
 
double init_dX_dt
 
bool is_first_call
 
double Rc
 
double X_init
 
double Delta
 
double P_CMB
 
double Tm0
 
double Tm1
 
double Tm2
 
double Theta
 
bool composition_dependency
 
bool use_bw11
 
double K0
 
double Alpha
 
double Rho_0
 
double Rho_cen
 
double Lh
 
double Rh
 
double Beta_c
 
double k_c
 
double Cp
 
unsigned int n_radioheating_elements
 
std::vector< double > heating_rate
 
std::vector< double > half_life
 
std::vector< double > initial_concentration
 
double L
 
double D
 
double Mc
 
unsigned int max_steps
 
double dTa
 
std::string name_OES
 
std::vector< struct str_data_OESdata_OES
 

Detailed Description

template<int dim>
class aspect::BoundaryTemperature::DynamicCore< dim >

A class that implements a temperature boundary condition for a spherical shell geometry in which the temperature at the outer surfaces are constant and the core-mantle boundaries (CMB) temperature is calculated by core energy balance. The formulation of the core energy balance is from [2] .

Definition at line 113 of file dynamic_core.h.

Constructor & Destructor Documentation

◆ DynamicCore()

Constructor

Member Function Documentation

◆ update()

template<int dim>
void aspect::BoundaryTemperature::DynamicCore< dim >::update ( )
overridevirtual

This function update the core-mantle boundary (CMB) temperature by the core energy balance solver using the core-mantle boundary heat flux.

Reimplemented from aspect::Plugins::InterfaceBase.

◆ get_core_data()

template<int dim>
const internal::CoreData& aspect::BoundaryTemperature::DynamicCore< dim >::get_core_data ( ) const

Pass core data to other modules

◆ is_OES_used()

template<int dim>
bool aspect::BoundaryTemperature::DynamicCore< dim >::is_OES_used ( ) const

Check if other energy source in the core is in use. The 'other energy source' is used for external core energy source. For example if someone want to test the early lunar core powered by precession (Dwyer, C. A., et al. (2011). "A long-lived lunar dynamo driven by continuous mechanical stirring." Nature 479(7372): 212-214.)

◆ boundary_temperature()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::boundary_temperature ( const types::boundary_id  boundary_indicator,
const Point< dim > &  location 
) const
overridevirtual

Return the temperature that is to hold at a particular location on the boundary of the domain. This function returns the temperatures at the inner and outer boundaries.

Parameters
boundary_indicatorThe boundary indicator of the part of the boundary of the domain on which the point is located at which we are requesting the temperature.
locationThe location of the point at which we ask for the temperature.

Implements aspect::BoundaryTemperature::Interface< dim >.

◆ minimal_temperature()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::minimal_temperature ( const std::set< types::boundary_id > &  fixed_boundary_ids) const
overridevirtual

Return the minimal temperature on that part of the boundary on which Dirichlet conditions are posed.

This value is used in computing dimensionless numbers such as the Nusselt number indicating heat flux.

Implements aspect::BoundaryTemperature::Interface< dim >.

◆ maximal_temperature()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::maximal_temperature ( const std::set< types::boundary_id > &  fixed_boundary_ids) const
overridevirtual

Return the maximal temperature on that part of the boundary on which Dirichlet conditions are posed.

This value is used in computing dimensionless numbers such as the Nusselt number indicating heat flux.

Implements aspect::BoundaryTemperature::Interface< dim >.

◆ declare_parameters()

template<int dim>
static void aspect::BoundaryTemperature::DynamicCore< dim >::declare_parameters ( ParameterHandler prm)
static

Declare the parameters this class takes through input files. This class declares the inner and outer boundary temperatures.

◆ parse_parameters()

template<int dim>
void aspect::BoundaryTemperature::DynamicCore< dim >::parse_parameters ( ParameterHandler prm)
overridevirtual

Read the parameters this class declares from the parameter file.

Reimplemented from aspect::Plugins::InterfaceBase.

◆ serialize()

template<int dim>
template<class Archive >
void aspect::BoundaryTemperature::DynamicCore< dim >::serialize ( Archive &  ar,
const unsigned int  version 
)

Serialize the contents of this class as far as they are not read from input parameter files.

◆ save()

template<int dim>
void aspect::BoundaryTemperature::DynamicCore< dim >::save ( std::map< std::string, std::string > &  status_strings) const
overridevirtual

Save the state of this object.

Reimplemented from aspect::Plugins::InterfaceBase.

◆ load()

template<int dim>
void aspect::BoundaryTemperature::DynamicCore< dim >::load ( const std::map< std::string, std::string > &  status_strings)
overridevirtual

Restore the state of the object.

Reimplemented from aspect::Plugins::InterfaceBase.

◆ read_data_OES()

template<int dim>
void aspect::BoundaryTemperature::DynamicCore< dim >::read_data_OES ( )
private

◆ compute_OES()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_OES ( double  t) const
private

◆ solve_time_step()

template<int dim>
internal::SolveTimeStepResult aspect::BoundaryTemperature::DynamicCore< dim >::solve_time_step ( ) const
private

Solve core energy balance for each time step. When solving the change in core-mantle boundary temperature T, inner core radius R, and light element (e.g. S, O, Si) composition X, the following relations have to be respected:

  1. At the inner core boundary the adiabatic temperature should be equal to solidus temperature
  2. The following energy production rates should be balanced in the core: Heat flux at core-mantle boundary Q Specific heat Qs*dT/dt Radioactive heating Qr Gravitational contribution Qg*dR/dt Latent heat Ql*dR/dt So that Q+Qs*dT/dt+Qr+Qg*dR/dt*Ql*dR/dt=0
  3. The light component composition X depends on inner core radius (See function compute_X() ), and core solidus may dependent on X as well. This becomes a small nonlinear problem. Directly iterate through the above three equations doesn't converge well. Alternatively we solve the inner core radius using the bisection method.

    At the conditions of the Earth's core, an inner core is forming at the center of the Earth and surrounded by a liquid outer core. However, the core solidus is influenced by light components (e.g. S) and its slope is very close to an adiabat. So there is an alternative scenario that the crystallization happens first at the core mantle boundary instead of at the center, which is called a 'snowing core' (Stewart, A. J., et al. (2007). "Mars: a new core-crystallization regime." Science 316(5829): 1323-1325.). This also provides a valid solution for the solver. The current code treats the normal core scenario and throws for the unsupported snowing core case.

Returns
A tuple containing the updated X, T, and R values.

◆ compute_dT()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_dT ( const double  r) const
private

Compute the difference between solidus and adiabatic temperature at inner core boundary for a given inner core radius r.

◆ compute_Tc()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_Tc ( const double  r) const
private

Use energy balance to calculate core mantle boundary temperature with a given inner core radius r.

◆ compute_Ts()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_Ts ( const double  r) const
private

Get the solidus temperature at inner core boundary with a given inner core radius r.

◆ compute_solidus()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_solidus ( const double  X,
const double  pressure 
) const
private

Compute the core solidus at a given light element concentration X (in wt.%) and pressure pressure.

◆ compute_initial_Ri()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_initial_Ri ( const double  T) const
private

Get initial inner core radius with given initial core mantle temperature T.

◆ compute_X()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_X ( const double  r) const
private

Get the light element concentration (in wt.%) in the outer core from given inner core radius r.

◆ compute_mass()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_mass ( const double  r) const
private

Compute the core mass inside a certain radius r.

◆ fun_Sn()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::fun_Sn ( const double  B,
const double  R,
const unsigned int  n 
) const
private

Calculate Sn(B,R), referring to [2] .

◆ compute_rho()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_rho ( const double  r) const
private

Calculate density at given radius r.

◆ compute_T()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_T ( const double  Tc,
const double  r 
) const
private

Calculate the core temperature at given radius r and temperature at CMB Tc.

◆ compute_pressure()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_pressure ( const double  r) const
private

Calculate pressure at given radius r

◆ compute_gravity_potential()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_gravity_potential ( const double  r) const
private

Calculate the gravitational potential at given radius r

◆ compute_specific_heating()

template<int dim>
std::pair<double,double> aspect::BoundaryTemperature::DynamicCore< dim >::compute_specific_heating ( const double  Tc) const
private

Calculate energy (Qs) and entropy (Es) change rate factor (regarding the core cooling rated Tc/dt) for a given core-mantle boundary (CMB) temperature Tc

Returns
A pair of (Qs, Es), i.e., the energy change rate factor first and the entropy change rate factor second.

◆ compute_radio_heating()

template<int dim>
std::pair<double,double> aspect::BoundaryTemperature::DynamicCore< dim >::compute_radio_heating ( const double  Tc) const
private

Calculate energy (Qr) and entropy (Er) change rate factor (regarding the radioactive heating rate H) for a given CMB temperature Tc

Returns
A pair of (Qr, Er), i.e., the energy change rate factor first and the entropy change rate factor second.

◆ compute_gravity_heating()

template<int dim>
std::pair<double,double> aspect::BoundaryTemperature::DynamicCore< dim >::compute_gravity_heating ( const double  Tc,
const double  r,
const double  X 
) const
private

Calculate energy (Qg) and entropy (Eg) change rate factor (regarding the inner core growth rate dR/dt) for a given Tc (CMB temperature), r (inner core radius), and X (light element concentration)

Returns
A pair of (Qg, Eg), i.e., the energy change rate factor first and the entropy change rate factor second.

◆ compute_adiabatic_heating()

template<int dim>
std::pair<double,double> aspect::BoundaryTemperature::DynamicCore< dim >::compute_adiabatic_heating ( const double  Tc) const
private

Calculate energy (Qk) and entropy (Ek) change rate factor (regarding the core cooling rate Tc/dt) for a given Tc (CMB temperature)

Returns
A pair of (Qk, Ek), i.e., the energy change rate factor first and the entropy change rate factor second.

◆ compute_latent_heating()

template<int dim>
std::pair<double,double> aspect::BoundaryTemperature::DynamicCore< dim >::compute_latent_heating ( const double  Tc,
const double  r 
) const
private

Calculate energy (Ql) and entropy (El) change rate factor (regarding the inner core growth rate dR/dt) for a given Tc (CMB temperature) and r (inner core radius)

Returns
A pair of (Ql, El), i.e., the energy change rate factor first and the entropy change rate factor second.

◆ compute_heat_solution()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_heat_solution ( const double  Tc,
const double  r,
const double  X 
) const
private

Calculate entropy of heat of solution Eh for a given Tc (CMB temperature), r (inner core radius), and X (light element concentration)

◆ compute_radioheating_rate()

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::compute_radioheating_rate ( ) const
private

return radiogenic heating rate at the current time

◆ update_core_data()

template<int dim>
void aspect::BoundaryTemperature::DynamicCore< dim >::update_core_data ( )
private

Update the data of the core dynamic simulation, the data will be used in the next timestep and for postprocessing.

Member Data Documentation

◆ core_data

template<int dim>
internal::CoreData aspect::BoundaryTemperature::DynamicCore< dim >::core_data
private

Data for core energy balance it get updated each time step.

Definition at line 217 of file dynamic_core.h.

◆ inner_temperature

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::inner_temperature
private

Temperature at the inner boundary.

This variable is read from the parameter file through a parameter called 'Inner temperature'.

Definition at line 224 of file dynamic_core.h.

◆ outer_temperature

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::outer_temperature
private

Temperatures at the outer boundaries. This variable is read from the parameter file through a parameter called 'Outer temperature'.

Definition at line 230 of file dynamic_core.h.

◆ inner_boundary_id

template<int dim>
types::boundary_id aspect::BoundaryTemperature::DynamicCore< dim >::inner_boundary_id
private

Boundary indicators of the spherical shell.

Definition at line 235 of file dynamic_core.h.

◆ outer_boundary_id

template<int dim>
types::boundary_id aspect::BoundaryTemperature::DynamicCore< dim >::outer_boundary_id
private

Definition at line 236 of file dynamic_core.h.

◆ init_dT_dt

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::init_dT_dt
private

Initial CMB temperature changing rate This variable is read from the parameter file through a parameter called 'dT over dt'.

Definition at line 242 of file dynamic_core.h.

◆ init_dR_dt

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::init_dR_dt
private

Initial inner core radius changing rate This variable is read from the parameter file through a parameter called 'dR over dt'.

Definition at line 248 of file dynamic_core.h.

◆ init_dX_dt

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::init_dX_dt
private

Initial light composition changing rate This variable is read from the parameter file through a parameter called 'dX over dt'.

Definition at line 254 of file dynamic_core.h.

◆ is_first_call

template<int dim>
bool aspect::BoundaryTemperature::DynamicCore< dim >::is_first_call
private

Flag for determining the initial call for update().

Definition at line 259 of file dynamic_core.h.

◆ Rc

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Rc
private

Core radius

Definition at line 264 of file dynamic_core.h.

◆ X_init

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::X_init
private

Initial light composition concentration This variable is read from the parameter file through a parameter called 'Initial light composition'.

Definition at line 270 of file dynamic_core.h.

◆ Delta

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Delta
private

Partition coefficient of the light element This variable is read from the parameter file through a parameter called 'Delta'.

Definition at line 276 of file dynamic_core.h.

◆ P_CMB

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::P_CMB
private

Pressure at the core mantle boundary This variable is read from the parameter file through a parameter called 'CMB pressure'.

Definition at line 282 of file dynamic_core.h.

◆ Tm0

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Tm0
private

Parameters for core solidus following: if not dependent on composition Tm(p)= Tm0*(1-Theta)*(1+Tm1*p+Tm2*p^2) if depend on composition X Tm(p)= Tm0*(1-Theta*X)*(1+Tm1*p+Tm2*p^2) This variable is read from the parameter file through a parameter called 'Tm0'.

Definition at line 292 of file dynamic_core.h.

◆ Tm1

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Tm1
private

This variable is read from the parameter file through a parameter called 'Tm1'.

Definition at line 297 of file dynamic_core.h.

◆ Tm2

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Tm2
private

This variable is read from the parameter file through a parameter called 'Tm2'.

Definition at line 302 of file dynamic_core.h.

◆ Theta

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Theta
private

This variable is read from the parameter file through a parameter called 'Theta'.

Definition at line 307 of file dynamic_core.h.

◆ composition_dependency

template<int dim>
bool aspect::BoundaryTemperature::DynamicCore< dim >::composition_dependency
private

This variable is read from the parameter file through a parameter called 'Composition dependency'.

Definition at line 312 of file dynamic_core.h.

◆ use_bw11

template<int dim>
bool aspect::BoundaryTemperature::DynamicCore< dim >::use_bw11
private

If using the Fe-FeS system solidus from Buono & Walker (2011) instead. This variable is read from the parameter file through a parameter called 'Use BW11'.

Definition at line 318 of file dynamic_core.h.

◆ K0

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::K0
private

Variables for formulation of [2]

Compressibility at zero pressure This variable is read from the parameter file through a parameter called 'K0'.

Definition at line 326 of file dynamic_core.h.

◆ Alpha

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Alpha
private

Thermal expansivity This variable is read from the parameter file through a parameter called 'Alpha'.

Definition at line 332 of file dynamic_core.h.

◆ Rho_0

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Rho_0
private

Density at zero pressure This variable is read from the parameter file through a parameter called 'Rho0'.

Definition at line 338 of file dynamic_core.h.

◆ Rho_cen

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Rho_cen
private

Density at the center of the planet This variable is read from the parameter file through a parameter called 'Core density'.

Definition at line 344 of file dynamic_core.h.

◆ Lh

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Lh
private

Latent heat of fusion This variable is read from the parameter file through a parameter called 'Lh'.

Definition at line 350 of file dynamic_core.h.

◆ Rh

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Rh
private

Heat of reaction This variable is read from the parameter file through a parameter called 'Rh'.

Definition at line 356 of file dynamic_core.h.

◆ Beta_c

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Beta_c
private

Compositional expansion coefficient This variable is read from the parameter file through a parameter called 'Beta composition'.

Definition at line 362 of file dynamic_core.h.

◆ k_c

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::k_c
private

Heat conductivity of the core This variable is read from the parameter file through a parameter called 'Core conductivity'.

Definition at line 368 of file dynamic_core.h.

◆ Cp

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Cp
private

Heat capacity This variable is read from the parameter file through a parameter called 'Core heat capacity'.

Definition at line 374 of file dynamic_core.h.

◆ n_radioheating_elements

template<int dim>
unsigned int aspect::BoundaryTemperature::DynamicCore< dim >::n_radioheating_elements
private

Number of radioheating element in core This variable is read from the parameter file through a parameter called 'Number of radioactive heating elements'.

Definition at line 380 of file dynamic_core.h.

◆ heating_rate

template<int dim>
std::vector<double> aspect::BoundaryTemperature::DynamicCore< dim >::heating_rate
private

Heating rates of different elements This variable is read from the parameter file through a parameter called 'Heating rates'.

Definition at line 386 of file dynamic_core.h.

◆ half_life

template<int dim>
std::vector<double> aspect::BoundaryTemperature::DynamicCore< dim >::half_life
private

Half life of different elements This variable is read from the parameter file through a parameter called 'Half life times'.

Definition at line 392 of file dynamic_core.h.

◆ initial_concentration

template<int dim>
std::vector<double> aspect::BoundaryTemperature::DynamicCore< dim >::initial_concentration
private

Initial concentration of different elements This variable is read from the parameter file through a parameter called 'Initial concentrations'.

Definition at line 398 of file dynamic_core.h.

◆ L

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::L
private

Two length scales in [2] .

Definition at line 403 of file dynamic_core.h.

◆ D

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::D
private

Definition at line 404 of file dynamic_core.h.

◆ Mc

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::Mc
private

Mass of the core

Definition at line 409 of file dynamic_core.h.

◆ max_steps

template<int dim>
unsigned int aspect::BoundaryTemperature::DynamicCore< dim >::max_steps
private

Max iterations for the core energy balance solver. This variable is read from the parameter file through a parameter called 'Max iteration'.

Definition at line 415 of file dynamic_core.h.

◆ dTa

template<int dim>
double aspect::BoundaryTemperature::DynamicCore< dim >::dTa
private

Temperature correction value for adiabatic

Definition at line 420 of file dynamic_core.h.

◆ name_OES

template<int dim>
std::string aspect::BoundaryTemperature::DynamicCore< dim >::name_OES
private

Other energy source into the core, e.g. the mechanical stirring of the moon.

This variable is read from the parameter file through a parameter called 'File name'.

Definition at line 427 of file dynamic_core.h.

◆ data_OES

template<int dim>
std::vector<struct str_data_OES> aspect::BoundaryTemperature::DynamicCore< dim >::data_OES
private

Definition at line 440 of file dynamic_core.h.


The documentation for this class was generated from the following file: