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

Public Types

enum  ModifiedFlowLaws { diffusion, dislocation }
 

Public Member Functions

 CompositionalViscosityPrefactors ()
 
void parse_parameters (ParameterHandler &prm)
 
double compute_viscosity (const MaterialModel::MaterialModelInputs< dim > &in, const double base_viscosity, const unsigned int composition_index, const unsigned int q, const ModifiedFlowLaws &modified_flow_laws) const
 
- 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_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
 
RotationProperties< dim > compute_net_angular_momentum (const bool use_constant_density, const LinearAlgebra::BlockVector &solution, const bool limit_to_top_faces=false) const
 

Static Public Member Functions

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)
 

Public Attributes

enum aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors::ModifiedFlowLaws modified_flow_laws
 

Private Types

enum  ViscosityPrefactorScheme { none, hk04_olivine_hydration }
 

Private Attributes

enum aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors::ViscosityPrefactorScheme viscosity_prefactor_scheme
 
std::vector< double > diffusion_water_fugacity_exponents
 
std::vector< double > dislocation_water_fugacity_exponents
 
std::vector< double > minimum_mass_fraction_water_for_dry_creep
 
const double A_H2O = 2.6e-5
 
const double activation_energy_H2O = 40e3
 
const double activation_volume_H2O = 10e-6
 
const double molar_mass_olivine = 0.1470027
 
const double molar_mass_H2O = 0.01801528
 

Detailed Description

template<int dim>
class aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >

A class that handles multiplication of viscosity for a given compositional field. The multiplication factors for each composition (viscosity prefactors) are also declared, parsed, and in some cases calculated in this class.

Definition at line 42 of file compositional_viscosity_prefactors.h.

Member Enumeration Documentation

§ ModifiedFlowLaws

Enumerator
diffusion 
dislocation 

Definition at line 65 of file compositional_viscosity_prefactors.h.

§ ViscosityPrefactorScheme

The viscosity prefactors or terms used to calculate the viscosity prefactors, which are read in from the input file by the parse_parameters() function. Users can choose between different schemes. none: no viscosity change hk04_olivine_hydration: calculate the viscosity change due to hydrogen incorporation into olivine using Hirth & Kohlstaedt 2004 10.1029/138GM06. This method requires a composition called 'bound_fluid' which tracks the wt% water in the solid, which is used to compute an atomic ratio of H/Si ppm assuming 90 mol% forsterite and 10 mol% fayalite, and finally calculates a water fugacity. The prefactor for a given compositional field is multiplied with a base_viscosity value provided by the material model, which is then returned to the material model.

Enumerator
none 
hk04_olivine_hydration 

Definition at line 97 of file compositional_viscosity_prefactors.h.

Constructor & Destructor Documentation

§ CompositionalViscosityPrefactors()

Constructor.

Member Function Documentation

§ declare_parameters()

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

Declare the parameters this function takes through input files.

§ parse_parameters()

template<int dim>
void aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >::parse_parameters ( ParameterHandler &  prm)

Read the parameters from the parameter file.

§ compute_viscosity()

template<int dim>
double aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >::compute_viscosity ( const MaterialModel::MaterialModelInputs< dim > &  in,
const double  base_viscosity,
const unsigned int  composition_index,
const unsigned int  q,
const ModifiedFlowLaws modified_flow_laws 
) const

Compute the viscosity.

Member Data Documentation

§ modified_flow_laws

§ viscosity_prefactor_scheme

§ diffusion_water_fugacity_exponents

template<int dim>
std::vector<double> aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >::diffusion_water_fugacity_exponents
private

Definition at line 104 of file compositional_viscosity_prefactors.h.

§ dislocation_water_fugacity_exponents

template<int dim>
std::vector<double> aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >::dislocation_water_fugacity_exponents
private

Definition at line 105 of file compositional_viscosity_prefactors.h.

§ minimum_mass_fraction_water_for_dry_creep

template<int dim>
std::vector<double> aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >::minimum_mass_fraction_water_for_dry_creep
private

Definition at line 106 of file compositional_viscosity_prefactors.h.

§ A_H2O

template<int dim>
const double aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >::A_H2O = 2.6e-5
private

Definition at line 109 of file compositional_viscosity_prefactors.h.

§ activation_energy_H2O

template<int dim>
const double aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >::activation_energy_H2O = 40e3
private

Definition at line 110 of file compositional_viscosity_prefactors.h.

§ activation_volume_H2O

template<int dim>
const double aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >::activation_volume_H2O = 10e-6
private

Definition at line 111 of file compositional_viscosity_prefactors.h.

§ molar_mass_olivine

template<int dim>
const double aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >::molar_mass_olivine = 0.1470027
private

Definition at line 116 of file compositional_viscosity_prefactors.h.

§ molar_mass_H2O

template<int dim>
const double aspect::MaterialModel::Rheology::CompositionalViscosityPrefactors< dim >::molar_mass_H2O = 0.01801528
private

Definition at line 117 of file compositional_viscosity_prefactors.h.


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