// $Id$
// Version: $Name$
//
-// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 by the deal authors
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 by the deal authors
//
// This file is subject to QPL and may not be distributed
// without copyright and license information. Please refer
/**
- * The @p{ConvergenceTable} class is an application to the @p{TableHandler} class and
- * stores some convergence data, such as residuals of the cg-method, or some evaluated
- * $L^2$-errors of discrete solutions, etc, and evaluates convergence rates or orders.
+ * The ConvergenceTable class is an application to the TableHandler
+ * class and stores some convergence data, such as residuals of the
+ * cg-method, or some evaluated <i>L<sup>2</sup></i>-errors of
+ * discrete solutions, etc, and evaluates convergence rates or orders.
*
- * The already implemented @p{RateMode}s are @p{ConvergenceTable::reduction_rate},
+ * The already implemented #RateMode's are #reduction_rate,
* where the convergence rate is the quotient of two following rows, and
- * @p{ConvergenceTable::reduction_rate_log2}, that evaluates the order of convergence.
+ * #reduction_rate_log2, that evaluates the order of convergence.
* These standard evaluations are useful for global refinement, for local refinement
* this may not be an appropriate method, as the convergence rates should be
* set in relation to the number of cells or the number of DoFs. The
* implementations of these non-standard methods is left to a user.
*
- * @sect3{Usage}
+ * @section ConvergenceTable::Usage Usage
* The number of cells and the number of DoFs may be added to the table by
- * calling e.g. @p{add_value("n cells", n_cells)}. The table
- * data is also added by calling @p{add_value(...)}.
- * Before the output of the table the functions @p{evaluate_convergence_rates(...)} and
- * @p{evaluate_all_convergence_rates(...)} may be (also multiply) called.
+ * calling e.g. <tt>add_value("n cells", n_cells)</tt>. The table
+ * data is also added by calling add_value().
+ * Before the output of the table the functions evaluate_convergence_rates() and
+ * evaluate_all_convergence_rates() may be called (even multiply).
*
* There are two possibilities of how to evaluate the convergence rates of multiple
- * columns in the same @p{RateMode}.
- * @begin{enumerate}
- * @item call @p{evaluate_convergence_rates(data_column_key, ...)} for all wanted columns
- * @item call @p{omit_column_from_convergence_rate_evaluation(data_column_key)} for all
+ * columns in the same RateMode.
+ * <ol>
+ * <li> call evaluate_convergence_rates() for all wanted columns
+ * <li> call omit_column_from_convergence_rate_evaluation() for all
* NOT wanted columns and then
- * @p{evaluate_all_convergence_rates(...)} to evaluate the convergence rates of all columns
+ * evaluate_all_convergence_rates() to evaluate the convergence rates of all columns
* that are not signed to be omitted.
- * @end{enumerate}
+ * </ol>
*
*
* @author Ralf Hartmann, 1999
ConvergenceTable();
/**
- * Rate in relation to the rows (without a
- * reference column).
- *
- * @p{reduction_rate}: $value(row-1)/value(row)$.
- *
- * @p{reduction_rate_log2}: the order $O(h^r)$ of
- * the reduction rate with the assumption
- * row-1: h, row: h/2. Hence the order
- * is evaluated by
- * $\log_2 \frac{value(row-1)}{value(row)}$.
- *
- * Rate in relation to a reference column:
- *
- * @p{reduction_rate}: Not implemented.
- *
- * @p{reduction_rate_log2}: Not implemented.
+ * Rate in relation to the rows.
*/
enum RateMode {
+ /**
+ * Do not do anything.
+ */
none,
+//TODO:[RH] This is copied from the original. Should it not be vice versa?
+ /**
+ * Quotient of values in
+ * the previous row and in
+ * this row.
+ */
reduction_rate,
+ /**
+ * Logarithm of #reduction_rate to the base 2.
+ */
reduction_rate_log2
};
/**
* Evaluates the convergence rates of the
- * data column @p{data_column_key}
- * due to the @p{RateMode} in relation to
- * the reference column @p{reference_column_key}.
+ * data column <tt>data_column_key</tt>
+ * due to the #RateMode in relation to
+ * the reference column <tt>reference_column_key</tt>.
* Be sure that the value types of the
* table entries of the
* data column and the reference data column
* tex caption of the supercolumn will be
* (by default) the same as the one of the
* data column. This may be changed by using
- * the @p{set_tex_supercaption (...)} function
- * of the base class @p{TableHandler}.
+ * the <tt>set_tex_supercaption (...)</tt> function
+ * of the base class TableHandler.
*
* Still not implemented.
*/
/**
* Evaluates the convergence rates of the
- * data column @p{data_column_key}
- * due to the @p{RateMode}.
+ * data column <tt>data_column_key</tt>
+ * due to the #RateMode.
* Be sure that the value types of the
* table entries of the data column
* is a number, i.e. double, float,
* tex caption of the supercolumn will be
* (by default) the same as the one of the
* data column. This may be changed by using
- * the @p{set_tex_supercaption (...)} function
- * of the base class @p{TableHandler}.
+ * the set_tex_supercaption() function
+ * of the base class TableHandler.
*/
void
evaluate_convergence_rates (const std::string &data_column_key,
const RateMode rate_mode);
/**
- * Omit this column @p{key}
+ * Omit this column <tt>key</tt>
* (not supercolumn!) from the
* evaluation of the convergence rates
* of `all' columns (see the following
/**
* Evaluates convergence rates
- * due to the @p{rate_mode} in relation
- * to the reference column
- * @p{reference_column_key}. This
- * function evaluates the rates of
- * ALL columns except of the
+ * due to the <tt>rate_mode</tt>
+ * in relation to the reference
+ * column
+ * <tt>reference_column_key</tt>. This
+ * function evaluates the rates
+ * of ALL columns except of the
* columns that are to be omitted
- * (see previous function)
- * and execpt of the columns that are
- * previously
- * evaluated rate columns.
- * This function allows to evaluate
- * the convergence rate for almost all
- * columns of a table without calling
- * @p{evaluate_convergence_rates(data_column, ...)}
+ * (see previous function) and
+ * execpt of the columns that are
+ * previously evaluated rate
+ * columns. This function allows
+ * to evaluate the convergence
+ * rate for almost all columns of
+ * a table without calling
+ * evaluate_convergence_rates()
* for each column separately.
*
* Example:
- * Columns like @p{n cells} or
- * @p{n dofs} columns may be wanted
+ * Columns like <tt>n cells</tt> or
+ * <tt>n dofs</tt> columns may be wanted
* to be omitted in the evaluation
* of the convergence rates. Hence they
* should omitted by calling the
- * @p{omit_column_from_convergence_rate_evaluation(..)}.
+ * omit_column_from_convergence_rate_evaluation().
*/
void
evaluate_all_convergence_rates(const std::string &reference_column_key,
/**
* Evaluates convergence rates
- * due to the @p{rate_mode}. This
+ * due to the <tt>rate_mode</tt>. This
* function evaluates the rates of
* ALL columns except of the
* columns that are to be omitted
* This function allows to evaluate
* the convergence rate for almost all
* columns of a table without calling
- * @p{evaluate_convergence_rates(data_column, ...)}
+ * evaluate_convergence_rates()
* for each column seperately.
*
* Example:
- * Columns like @p{n cells} or
- * @p{n dofs} columns may be wanted
+ * Columns like <tt>n cells</tt> or
+ * <tt>n dofs</tt> columns may be wanted
* to be omitted in the evaluation
* of the convergence rates. Hence they
* should omitted by calling the
- * @p{omit_column_from_convergence_rate_evaluation(..)}.
+ * omit_column_from_convergence_rate_evaluation().
*/
void
evaluate_all_convergence_rates(const RateMode rate_mode);