ASPECT
Namespaces | Classes | Enumerations | Functions
aspect::MaterialModel Namespace Reference

Namespaces

 EquationOfState
 
 internal
 
 MaterialAveraging
 
 MaterialProperties
 
 MaterialUtilities
 
 NonlinearDependence
 
 Property
 
 ReactionModel
 
 Rheology
 

Classes

class  AdditionalMaterialInputs
 
class  AdditionalMaterialOutputs
 
class  AdditionalMaterialOutputsStokesRHS
 
class  AsciiReferenceProfile
 
class  Averaging
 
class  BoukareOutputs
 
class  Compositing
 
class  CompositionReaction
 
class  DepthDependent
 
class  DiffusionDislocation
 
class  DislocationViscosityOutputs
 
class  DruckerPrager
 
class  ElasticAdditionalOutputs
 
class  ElasticOutputs
 
class  EnthalpyOutputs
 
class  EntropyModel
 
struct  EquationOfStateOutputs
 
class  GrainSize
 
class  Interface
 
struct  IsostrainViscosities
 
class  LatentHeat
 
class  LatentHeatMelt
 
class  MaterialModelDerivatives
 
class  MaterialModelInputs
 
class  MaterialModelOutputs
 
class  MeltBoukare
 
class  MeltFractionModel
 
class  MeltGlobal
 
class  MeltInputs
 
class  MeltInterface
 
class  MeltOutputs
 
class  MeltSimple
 
class  ModifiedTait
 
class  Multicomponent
 
class  MulticomponentCompressible
 
class  NamedAdditionalMaterialOutputs
 
class  Nondimensional
 
class  PerpleXLookup
 
class  PhaseOutputs
 
class  PlasticAdditionalOutputs
 
class  PrescribedFieldOutputs
 
class  PrescribedPlasticDilation
 
class  PrescribedTemperatureOutputs
 
class  PrescribedViscosity
 
class  ReactionRateOutputs
 
class  ReactiveFluidTransport
 
class  ReplaceLithosphereViscosity
 
class  SeismicAdditionalOutputs
 
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 &), std::unique_ptr< Interface< dim >>(*factory_function)())
 
template<int dim>
std::unique_ptr< Interface< dim > > create_material_model (const std::string &model_name)
 
template<int dim>
std::unique_ptr< 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_phase_transitions_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.

Enumeration Type Documentation

§ 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.

Function Documentation

§ 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_streamThe 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_phase_transitions_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).