ASPECT
aspect::MaterialModel Namespace Reference

## Namespaces

EquationOfState

internal

MaterialAveraging

MaterialProperties

MaterialUtilities

NonlinearDependence

Property

Rheology

## Classes

class  AsciiReferenceProfile

class  Averaging

class  Compositing

class  CompositionReaction

class  DepthDependent

class  DiffusionDislocation

class  DislocationViscosityOutputs

class  DruckerPrager

class  DynamicFriction

class  ElasticOutputs

struct  EquationOfStateOutputs

class  GrainSize

class  Interface

struct  IsostrainViscosities

class  LatentHeat

class  LatentHeatMelt

class  MaterialModelDerivatives

struct  MaterialModelInputs

struct  MaterialModelOutputs

class  MeltFractionModel

class  MeltGlobal

class  MeltInputs

class  MeltInterface

class  MeltOutputs

class  MeltSimple

class  ModifiedTait

class  Multicomponent

class  MulticomponentCompressible

class  Nondimensional

class  PerpleXLookup

class  PhaseOutputs

class  PrescribedFieldOutputs

class  PrescribedPlasticDilation

class  PrescribedTemperatureOutputs

class  ReactionRateOutputs

class  ReplaceLithosphereViscosity

class  Simple

class  SimpleCompressible

class  Simpler

class  Steinberger

class  Viscoelastic

class  ViscoPlastic

## Enumerations

enum  AveragingOperation {
none, arithmetic_average, harmonic_average, geometric_average,
pick_largest, log_average, nwd_arithmetic_average, nwd_harmonic_average,
nwd_geometric_average
}

## Functions

template<int dim>
void register_material_model (const std::string &name, const std::string &description, void(*declare_parameters_function)(ParameterHandler &), Interface< dim > *(*factory_function)())

template<int dim>
Interface< dim > * create_material_model (const std::string &model_name)

template<int dim>
Interface< dim > * create_material_model (ParameterHandler &prm)

template<int dim>
std::string get_valid_model_names_pattern ()

template<int dim>
void declare_parameters (ParameterHandler &prm)

template<int dim>
void write_plugin_graph (std::ostream &output_stream)

template<int dim>
void phase_average_equation_of_state_outputs (const EquationOfStateOutputs< dim > &eos_outputs_all_phases, const std::vector< double > &phase_function_values, const std::vector< unsigned int > &n_phases_per_composition, EquationOfStateOutputs< dim > &eos_outputs)

## Detailed Description

A namespace in which we define everything that has to do with modeling convecting material, including descriptions of material parameters such as viscosities, densities, etc.

## § AveragingOperation

An enum to define what kind of averaging operations are implemented. These are:

• No averaging, i.e., leave the values as they were provided by the material model.
• Arithmetic averaging: Set the values of each output quantity at every quadrature point to

$\bar x = \frac 1Q \sum_{q=1}^Q x_q$

where $$x_q$$ are the values at the $$Q$$ quadrature points.
• Harmonic averaging: Set the values of each output quantity at every quadrature point to

$\bar x = \left(\frac 1Q \sum_{q=1}^Q \frac{1}{x_q}\right)^{-1}$

where $$x_q$$ are the values at the $$Q$$ quadrature points.
• Geometric averaging: Set the values of each output quantity at every quadrature point to

$\bar x = \left(\prod_{q=1}^Q x_q\right)^{1/Q}$

where $$x_q$$ are the values at the $$Q$$ quadrature points.
• Pick largest: Set the values of each output quantity at every quadrature point to

$\bar x = \max_{1\le q\le Q} x_q$

where $$x_q$$ are the values at the $$Q$$ quadrature points.
• Log average: Set the values of each output quantity at every quadrature point to

$\bar x = {10}^{\frac 1Q \sum_{q=1}^Q \log_{10} x_q}$

where $$x_q$$ are the values at the $$Q$$ quadrature points.
• NWD Arithmetic averaging: Set the values of each output quantity at every quadrature point to

$\bar x = \frac {\sum_{q=1}^Q W_q * x_q} {\sum_{q=1}^Q W_q}$

where $$x_q$$ are the values and $$w$$ the weights at the $$Q$$ quadrature points.
• NWD Harmonic averaging: Set the values of each output quantity at every quadrature point to

$\bar x = \frac{\sum_{q=1}^Q w_q }{ \sum_{q=1}^Q \frac{w_q}{x_q}}$

where $$x_q$$ are the values and $$w$$ the weights at the $$Q$$ quadrature points.
• NWD Geometric averaging: Set the values of each output quantity at every quadrature point to

$\bar x = \frac{ \sum_{q=1}^Q w_q x_q} {\sum_{q=1}^Q w_q}$

where $$x_q$$ are the values and $$w$$ the weights at the $$Q$$ quadrature points.
Enumerator
none
arithmetic_average
harmonic_average
geometric_average
pick_largest
log_average
nwd_arithmetic_average
nwd_harmonic_average
nwd_geometric_average

Definition at line 77 of file averaging.h.

## § get_valid_model_names_pattern()

template<int dim>
 std::string aspect::MaterialModel::get_valid_model_names_pattern ( )

Return a string that consists of the names of material models that can be selected. These names are separated by a vertical line '|' so that the string can be an input to the deal.II classes Patterns::Selection or Patterns::MultipleSelection.

## § write_plugin_graph()

template<int dim>
 void aspect::MaterialModel::write_plugin_graph ( std::ostream & output_stream )

For the current plugin subsystem, write a connection graph of all of the plugins we know about, in the format that the programs dot and neato understand. This allows for a visualization of how all of the plugins that ASPECT knows about are interconnected, and connect to other parts of the ASPECT code.

Parameters
 output_stream The stream to write the output to.

## § phase_average_equation_of_state_outputs()

template<int dim>
 void aspect::MaterialModel::phase_average_equation_of_state_outputs ( const EquationOfStateOutputs< dim > & eos_outputs_all_phases, const std::vector< double > & phase_function_values, const std::vector< unsigned int > & n_phases_per_composition, EquationOfStateOutputs< dim > & eos_outputs )

This function takes the output of an equation of state eos_outputs_all_phases, which contains the data for all compositions and all of their phases at the current conditions and uses a PhaseFunction object phase_function to compute the effective value of equation of state properties for each individual composition. Essentially it computes which phase is stable at the current conditions (described in phase_in) and fills the equation of state output eos_outputs with the properties of these stable phases. eos_outputs now only contains as many entries as volumetric compositions (potentially plus one for the background field, if the input eos_outputs_all_phases contained one and the phase function contained one as well).