ASPECT

Enumerations  
enum  AveragingOperation { none, arithmetic_average, harmonic_average, geometric_average, pick_largest, project_to_Q1, log_average, harmonic_average_only_viscosity } 
Functions  
std::string  get_averaging_operation_names () 
AveragingOperation  parse_averaging_operation_name (const std::string &s) 
template<int dim>  
void  average (const AveragingOperation operation, const typename DoFHandler< dim >::active_cell_iterator &cell, const Quadrature< dim > &quadrature_formula, const Mapping< dim > &mapping, MaterialModelOutputs< dim > &values_out) 
void  average_property (const AveragingOperation operation, const FullMatrix< double > &projection_matrix, const FullMatrix< double > &expansion_matrix, std::vector< double > &values_out) 
A namespace in which we define how material model outputs should be averaged on each cell.
Material models compute output quantities such as the viscosity, the density, etc, based on pressures, temperatures, composition, and location at every quadrature point. For some models, these values vary drastically from quadrature point to quadrature point, and this creates difficulties both for the stability of the discretization as well as for the linear solvers. Some of this can be ameliorated by averaging values on every cell, although this of course reduces the ideal convergence order. This namespace defines the means to achieve such averaging.
An enum to define what kind of averaging operations are implemented. These are:
where are the values at the quadrature points.
where are the values at the quadrature points.
where are the values at the quadrature points.
where are the values at the quadrature points.
where are the values at the quadrature points.
Enumerator  

none  
arithmetic_average  
harmonic_average  
geometric_average  
pick_largest  
project_to_Q1  
log_average  
harmonic_average_only_viscosity 
Definition at line 603 of file interface.h.
std::string aspect::MaterialModel::MaterialAveraging::get_averaging_operation_names  (  ) 
Return a string that represents the various averaging options laid out above and that can be used in the declaration of an input parameter. The options are separated by "" so that they can be used in a Patterns::Selection argument.
AveragingOperation aspect::MaterialModel::MaterialAveraging::parse_averaging_operation_name  (  const std::string &  s  ) 
Parse a string representing one of the options returned by get_averaging_operation_names(), and return the corresponding AveragingOperation value.
void aspect::MaterialModel::MaterialAveraging::average  (  const AveragingOperation  operation, 
const typename DoFHandler< dim >::active_cell_iterator &  cell,  
const Quadrature< dim > &  quadrature_formula,  
const Mapping< dim > &  mapping,  
MaterialModelOutputs< dim > &  values_out  
) 
Given the averaging operation
, a description of where the quadrature points are located on the given cell, and a mapping, perform this operation on all elements of the values
structure.
void aspect::MaterialModel::MaterialAveraging::average_property  (  const AveragingOperation  operation, 
const FullMatrix< double > &  projection_matrix,  
const FullMatrix< double > &  expansion_matrix,  
std::vector< double > &  values_out  
) 
Do the requested averaging operation for one array. The projection matrix argument is only used if the operation chosen is project_to_Q1