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

Public Member Functions

void melt_fractions (const MaterialModel::MaterialModelInputs< dim > &in, std::vector< double > &melt_fractions) const override
 
Physical parameters used in the basic equations
void evaluate (const MaterialModel::MaterialModelInputs< dim > &in, MaterialModel::MaterialModelOutputs< dim > &out) const override
 
Qualitative properties one can ask a material model
bool is_compressible () const override
 
- Public Member Functions inherited from aspect::MaterialModel::Interface< dim >
virtual void create_additional_named_outputs (MaterialModelOutputs &outputs) const
 
virtual void fill_additional_material_model_inputs (MaterialModel::MaterialModelInputs< dim > &input, const LinearAlgebra::BlockVector &solution, const FEValuesBase< dim > &fe_values, const Introspection< dim > &introspection) const
 
const NonlinearDependence::ModelDependenceget_model_dependence () const
 
- Public Member Functions inherited from aspect::Plugins::InterfaceBase
virtual ~InterfaceBase ()=default
 
virtual void initialize ()
 
virtual void update ()
 
- Public Member Functions inherited from aspect::MaterialModel::MeltFractionModel< dim >
virtual ~MeltFractionModel ()=default
 
- Public Member Functions inherited from aspect::SimulatorAccess< dim >
 SimulatorAccess ()
 
 SimulatorAccess (const Simulator< dim > &simulator_object)
 
virtual ~SimulatorAccess ()=default
 
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
 
TimerOutput & get_computing_timer () const
 
const ConditionalOStream & get_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
 
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 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 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_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
 
TableHandler & get_statistics_object () const
 
const Postprocess::Manager< dim > & get_postprocess_manager () const
 
unsigned int n_particle_worlds () const
 
const Particle::World< dim > & get_particle_world (const unsigned int particle_world_index) const
 
Particle::World< dim > & get_particle_world (const unsigned int particle_world_index)
 
bool is_stokes_matrix_free ()
 
const StokesMatrixFreeHandler< dim > & get_stokes_matrix_free () const
 
RotationProperties< dim > compute_net_angular_momentum (const bool use_constant_density, const LinearAlgebra::BlockVector &solution, const bool limit_to_top_faces=false) const
 

Private Member Functions

virtual double melt_fraction (const double temperature, const double pressure, const std::vector< double > &compositional_fields, const Point< dim > &position) const
 
virtual double peridotite_melt_fraction (const double temperature, const double pressure, const std::vector< double > &compositional_fields, const Point< dim > &position) const
 
virtual double pyroxenite_melt_fraction (const double temperature, const double pressure, const std::vector< double > &compositional_fields, const Point< dim > &position) const
 
double entropy_derivative (const double temperature, const double pressure, const std::vector< double > &compositional_fields, const Point< dim > &position, const NonlinearDependence::Dependence dependence) const
 

Private Attributes

double reference_rho
 
double reference_T
 
double eta
 
double composition_viscosity_prefactor
 
double thermal_viscosity_exponent
 
double thermal_alpha
 
double melt_thermal_alpha
 
double reference_specific_heat
 
double reference_compressibility
 
double k_value
 
double compositional_delta_rho
 
double A1
 
double A2
 
double A3
 
double B1
 
double B2
 
double B3
 
double C1
 
double C2
 
double C3
 
double r1
 
double r2
 
double M_cpx
 
double beta
 
double peridotite_melting_entropy_change
 
double D1
 
double D2
 
double D3
 
double E1
 
double E2
 
double F_px_max
 
double relative_melt_density
 
double pyroxenite_melting_entropy_change
 

Functions used in dealing with run-time parameters

void parse_parameters (ParameterHandler &prm) override
 
static void declare_parameters (ParameterHandler &prm)
 

Additional Inherited Members

- Public Types inherited from aspect::MaterialModel::Interface< dim >
using MaterialModelInputs = MaterialModel::MaterialModelInputs< dim >
 
using MaterialModelOutputs = MaterialModel::MaterialModelOutputs< dim >
 
- Static Public Member Functions inherited from aspect::Plugins::InterfaceBase
static void declare_parameters (ParameterHandler &prm)
 
- Static Public Member Functions inherited from aspect::MaterialModel::MeltFractionModel< dim >
template<typename ModelType >
static bool is_melt_fraction_model (const ModelType &model_object)
 
template<typename ModelType >
static const MeltFractionModel< dim > & as_melt_fraction_model (const ModelType &model_object)
 
- 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)
 
- Protected Attributes inherited from aspect::MaterialModel::Interface< dim >
NonlinearDependence::ModelDependence model_dependence
 

Detailed Description

template<int dim>
class aspect::MaterialModel::LatentHeatMelt< dim >

A material model that implements latent heat of melting for two materials: peridotite and pyroxenite. The density and thermal expansivity depend on the melt fraction.

Definition at line 42 of file latent_heat_melt.h.

Member Function Documentation

§ evaluate()

template<int dim>
void aspect::MaterialModel::LatentHeatMelt< dim >::evaluate ( const MaterialModel::MaterialModelInputs< dim > &  in,
MaterialModel::MaterialModelOutputs< dim > &  out 
) const
overridevirtual

Function to compute the material properties in out given the inputs in in.

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

§ is_compressible()

template<int dim>
bool aspect::MaterialModel::LatentHeatMelt< dim >::is_compressible ( ) const
overridevirtual

Return whether the model is compressible or not. Incompressibility does not necessarily imply that the density is constant; rather, it may still depend on temperature or pressure. In the current context, compressibility means whether we should solve the continuity equation as \(\nabla \cdot (\rho \mathbf u)=0\) (compressible Stokes) or as \(\nabla \cdot \mathbf{u}=0\) (incompressible Stokes).

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

§ melt_fractions()

template<int dim>
void aspect::MaterialModel::LatentHeatMelt< dim >::melt_fractions ( const MaterialModel::MaterialModelInputs< dim > &  in,
std::vector< double > &  melt_fractions 
) const
overridevirtual

Compute the equilibrium melt fractions for the given input conditions. in and melt_fractions need to have the same size.

Parameters
inObject that contains the current conditions.
melt_fractionsVector of doubles that is filled with the equilibrium melt fraction for each given input conditions.

Implements aspect::MaterialModel::MeltFractionModel< dim >.

§ declare_parameters()

template<int dim>
static void aspect::MaterialModel::LatentHeatMelt< dim >::declare_parameters ( ParameterHandler &  prm)
static

Declare the parameters this class takes through input files.

§ parse_parameters()

template<int dim>
void aspect::MaterialModel::LatentHeatMelt< dim >::parse_parameters ( ParameterHandler &  prm)
overridevirtual

Read the parameters this class declares from the parameter file.

Reimplemented from aspect::Plugins::InterfaceBase.

§ melt_fraction()

template<int dim>
virtual double aspect::MaterialModel::LatentHeatMelt< dim >::melt_fraction ( const double  temperature,
const double  pressure,
const std::vector< double > &  compositional_fields,
const Point< dim > &  position 
) const
privatevirtual

Percentage of material that is molten. Melting model after Katz, 2003 (for peridotite) and Sobolev et al., 2011 (for pyroxenite)

§ peridotite_melt_fraction()

template<int dim>
virtual double aspect::MaterialModel::LatentHeatMelt< dim >::peridotite_melt_fraction ( const double  temperature,
const double  pressure,
const std::vector< double > &  compositional_fields,
const Point< dim > &  position 
) const
privatevirtual

§ pyroxenite_melt_fraction()

template<int dim>
virtual double aspect::MaterialModel::LatentHeatMelt< dim >::pyroxenite_melt_fraction ( const double  temperature,
const double  pressure,
const std::vector< double > &  compositional_fields,
const Point< dim > &  position 
) const
privatevirtual

§ entropy_derivative()

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::entropy_derivative ( const double  temperature,
const double  pressure,
const std::vector< double > &  compositional_fields,
const Point< dim > &  position,
const NonlinearDependence::Dependence  dependence 
) const
private

Member Data Documentation

§ reference_rho

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::reference_rho
private

Definition at line 102 of file latent_heat_melt.h.

§ reference_T

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::reference_T
private

Definition at line 103 of file latent_heat_melt.h.

§ eta

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::eta
private

Definition at line 104 of file latent_heat_melt.h.

§ composition_viscosity_prefactor

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::composition_viscosity_prefactor
private

Definition at line 105 of file latent_heat_melt.h.

§ thermal_viscosity_exponent

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::thermal_viscosity_exponent
private

Definition at line 106 of file latent_heat_melt.h.

§ thermal_alpha

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::thermal_alpha
private

Definition at line 107 of file latent_heat_melt.h.

§ melt_thermal_alpha

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::melt_thermal_alpha
private

Definition at line 108 of file latent_heat_melt.h.

§ reference_specific_heat

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::reference_specific_heat
private

Definition at line 109 of file latent_heat_melt.h.

§ reference_compressibility

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::reference_compressibility
private

Definition at line 110 of file latent_heat_melt.h.

§ k_value

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::k_value
private

The thermal conductivity.

Definition at line 115 of file latent_heat_melt.h.

§ compositional_delta_rho

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::compositional_delta_rho
private

Definition at line 117 of file latent_heat_melt.h.

§ A1

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::A1
private

Parameters for anhydrous melting of peridotite after Katz, 2003

Definition at line 124 of file latent_heat_melt.h.

§ A2

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::A2
private

Definition at line 125 of file latent_heat_melt.h.

§ A3

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::A3
private

Definition at line 126 of file latent_heat_melt.h.

§ B1

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::B1
private

Definition at line 129 of file latent_heat_melt.h.

§ B2

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::B2
private

Definition at line 130 of file latent_heat_melt.h.

§ B3

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::B3
private

Definition at line 131 of file latent_heat_melt.h.

§ C1

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::C1
private

Definition at line 134 of file latent_heat_melt.h.

§ C2

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::C2
private

Definition at line 135 of file latent_heat_melt.h.

§ C3

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::C3
private

Definition at line 136 of file latent_heat_melt.h.

§ r1

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::r1
private

Definition at line 139 of file latent_heat_melt.h.

§ r2

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::r2
private

Definition at line 140 of file latent_heat_melt.h.

§ M_cpx

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::M_cpx
private

Definition at line 141 of file latent_heat_melt.h.

§ beta

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::beta
private

Definition at line 144 of file latent_heat_melt.h.

§ peridotite_melting_entropy_change

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::peridotite_melting_entropy_change
private

Definition at line 147 of file latent_heat_melt.h.

§ D1

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::D1
private

Parameters for melting of pyroxenite after Sobolev et al., 2011

Definition at line 154 of file latent_heat_melt.h.

§ D2

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::D2
private

Definition at line 155 of file latent_heat_melt.h.

§ D3

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::D3
private

Definition at line 156 of file latent_heat_melt.h.

§ E1

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::E1
private

Definition at line 158 of file latent_heat_melt.h.

§ E2

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::E2
private

Definition at line 159 of file latent_heat_melt.h.

§ F_px_max

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::F_px_max
private

Definition at line 162 of file latent_heat_melt.h.

§ relative_melt_density

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::relative_melt_density
private

Definition at line 165 of file latent_heat_melt.h.

§ pyroxenite_melting_entropy_change

template<int dim>
double aspect::MaterialModel::LatentHeatMelt< dim >::pyroxenite_melting_entropy_change
private

Definition at line 167 of file latent_heat_melt.h.


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