attached_neighbors = 2,
/**
- * mergeable neighbors: neighbors which can be expressed with a single Bounding Box, e.g.
- * @code
- * .--V--W .-----V
- * | | | = | |
- * V--W--. V-----.
- * @endcode
- * or one is inside the other
+ * mergeable neighbors: neighbors which can be expressed with a single
+ * Bounding Box, e.g.
+ * @code
+ * .--V--W .-----V
+ * | | | = | |
+ * V--W--. V-----.
+ * @endcode
+ * or one is inside the other
*/
mergeable_neighbors = 3
};
protected:
/**
- *The inheriting class should have a default constructor.
+ * The inheriting class should have a default constructor.
*/
LinearIndexIterator () = default;
};
/**
- * The structs below are needed since VectorizedArray<T1> is a POD-type without a constructor and
- * can be a template argument for SymmetricTensor<...,T2> where T2 would equal VectorizedArray<T1>.
- * Internally, in previous versions of deal.II, SymmetricTensor<...,T2> would make use of the constructor
- * of T2 leading to a compile-time error. However simply adding a constructor for VectorizedArray<T1>
- * breaks the POD-idioms needed elsewhere. Calls to constructors of T2 subsequently got replaced by a
- * call to internal::NumberType<T2> which then determines the right function to use by template deduction.
- * A detailed discussion can be found at https://github.com/dealii/dealii/pull/3967 . Also see
- * numbers.h for another specialization.
- */
+ * The structs below are needed since VectorizedArray<T1> is a POD-type without a constructor and
+ * can be a template argument for SymmetricTensor<...,T2> where T2 would equal VectorizedArray<T1>.
+ * Internally, in previous versions of deal.II, SymmetricTensor<...,T2> would make use of the constructor
+ * of T2 leading to a compile-time error. However simply adding a constructor for VectorizedArray<T1>
+ * breaks the POD-idioms needed elsewhere. Calls to constructors of T2 subsequently got replaced by a
+ * call to internal::NumberType<T2> which then determines the right function to use by template deduction.
+ * A detailed discussion can be found at https://github.com/dealii/dealii/pull/3967 . Also see
+ * numbers.h for another specialization.
+ */
template <typename T>
struct NumberType
{
const unsigned int column_block_size);
/**
- * Destructor.
- */
+ * Destructor.
+ */
~ProcessGrid();
/**
- * Return the number of rows in the processes grid.
- */
+ * Return the number of rows in the processes grid.
+ */
unsigned int get_process_grid_rows() const;
/**
- * Return the number of columns in the processes grid.
- */
+ * Return the number of columns in the processes grid.
+ */
unsigned int get_process_grid_columns() const;
/**
const std::pair<unsigned int,unsigned int> &grid_dimensions);
/**
- * An MPI communicator with all processes (active and inactive).
- */
+ * An MPI communicator with all processes (active and inactive).
+ */
MPI_Comm mpi_communicator;
/**
- * An MPI communicator with inactive processes and the process with rank zero.
- */
+ * An MPI communicator with inactive processes and the process with rank zero.
+ */
MPI_Comm mpi_communicator_inactive_with_root;
/**
- * BLACS context. This is equivalent to MPI communicators and is
- * used by ScaLAPACK.
- */
+ * BLACS context. This is equivalent to MPI communicators and is
+ * used by ScaLAPACK.
+ */
int blacs_context;
/**
- * Rank of this MPI process.
- */
+ * Rank of this MPI process.
+ */
const unsigned int this_mpi_process;
/**
- * Total number of MPI processes.
- */
+ * Total number of MPI processes.
+ */
const unsigned int n_mpi_processes;
/**
- * Number of rows in the processes grid.
- */
+ * Number of rows in the processes grid.
+ */
int n_process_rows;
/**
- * Number of columns in the processes grid.
- */
+ * Number of columns in the processes grid.
+ */
int n_process_columns;
/**
- * Row of this process in the grid.
- *
- * It's negative for in-active processes.
- */
+ * Row of this process in the grid.
+ *
+ * It's negative for in-active processes.
+ */
int this_process_row;
/**
- * Column of this process in the grid.
- *
- * It's negative for in-active processes.
- */
+ * Column of this process in the grid.
+ *
+ * It's negative for in-active processes.
+ */
int this_process_column;
/**
- * A flag which is true for processes within the 2D process grid.
- */
+ * A flag which is true for processes within the 2D process grid.
+ */
bool mpi_process_is_active;
};
/**
* A helper class whose `value` member is true or false depending on
- // whether all of the given boolean template arguments are true.
+ * whether all of the given boolean template arguments are true.
*/
template <bool... Values>
struct all_true
namespace internal
{
/**
- * The structs below are needed since VectorizedArray<T1> is a POD-type without a constructor and
- * can be a template argument for Tensor<...,T2> where T2 would equal Tensor<1, dim, VectorizedArray >.
- * Internally, in previous versions of deal.II, Tensor<...,T2> would make use of the constructor
- * of T2 leading to a compile-time error. However simply adding a constructor for VectorizedArray<T1>
- * breaks the POD-idioms needed elsewhere. Calls to constructors of T2 subsequently got replaced by a
- * call to internal::NumberType<T2> which then determines the right function to use by template deduction.
- * A detailed discussion can be found at https://github.com/dealii/dealii/pull/3967 . Also see
- * numbers.h for another specialization.
+ * The structs below are needed since VectorizedArray<T1> is a POD-type without a constructor and
+ * can be a template argument for Tensor<...,T2> where T2 would equal Tensor<1, dim, VectorizedArray >.
+ * Internally, in previous versions of deal.II, Tensor<...,T2> would make use of the constructor
+ * of T2 leading to a compile-time error. However simply adding a constructor for VectorizedArray<T1>
+ * breaks the POD-idioms needed elsewhere. Calls to constructors of T2 subsequently got replaced by a
+ * call to internal::NumberType<T2> which then determines the right function to use by template deduction.
+ * A detailed discussion can be found at https://github.com/dealii/dealii/pull/3967 . Also see
+ * numbers.h for another specialization.
*/
template <int rank, int dim, typename T>
struct NumberType<Tensor<rank,dim,T> >
DEAL_II_NAMESPACE_OPEN
/**
-* A namespace that encapsulates various classes and helper functions related
-* to automatic and symbolic differentiation.
-*
-* @ingroup auto_symb_diff
-*/
+ * A namespace that encapsulates various classes and helper functions related
+ * to automatic and symbolic differentiation.
+ *
+ * @ingroup auto_symb_diff
+ */
namespace Differentiation
{
/**
- * Wrappers for automatic differentiation libraries. Currently there is support
- * for the following libraries:
- * - Adol-C
- * - Sacado (a component of Trilinos)
- *
- * @ingroup auto_symb_diff
- */
+ * Wrappers for automatic differentiation libraries. Currently there is support
+ * for the following libraries:
+ * - Adol-C
+ * - Sacado (a component of Trilinos)
+ *
+ * @ingroup auto_symb_diff
+ */
namespace AD
{
PointerMatrixBase<typename BlockVectorType::BlockType > *matrix;
/**
- * Assignment operator.
- *
- * @note Since the copy constructor is destructive (see its documentation)
- * and only exists for convenience there is no reasonable way to implement
- * this, so it is explicitly deleted.
- */
+ * Assignment operator.
+ *
+ * @note Since the copy constructor is destructive (see its documentation)
+ * and only exists for convenience there is no reasonable way to implement
+ * this, so it is explicitly deleted.
+ */
Entry &operator= (const Entry &) = delete;
};
{
public:
/**
- * Declare type for container size.
+ * Declare type for container size.
*/
typedef unsigned int size_type;
size_t n() const;
/**
- * Perform the matrix-matrix multiplication $C = AB$, or,
- * $C = A \text{diag}(V) B$ given a compatible vector $V$.
- *
- * This function calls MatrixBase::mmult() to do the actual work.
- */
+ * Perform the matrix-matrix multiplication $C = AB$, or,
+ * $C = A \text{diag}(V) B$ given a compatible vector $V$.
+ *
+ * This function calls MatrixBase::mmult() to do the actual work.
+ */
void mmult (SparseMatrix &C,
const SparseMatrix &B,
const MPI::Vector &V = MPI::Vector()) const;
/**
- * Perform the matrix-matrix multiplication with the transpose of
- * <tt>this</tt>, i.e., $C = A^T B$, or,
- * $C = A^T \text{diag}(V) B$ given a compatible vector $V$.
- *
- * This function calls MatrixBase::Tmmult() to do the actual work.
- */
+ * Perform the matrix-matrix multiplication with the transpose of
+ * <tt>this</tt>, i.e., $C = A^T B$, or,
+ * $C = A^T \text{diag}(V) B$ given a compatible vector $V$.
+ *
+ * This function calls MatrixBase::Tmmult() to do the actual work.
+ */
void Tmmult (SparseMatrix &C,
const SparseMatrix &B,
const MPI::Vector &V = MPI::Vector()) const;
enum class Partitioner
{
/**
- * Use METIS partitioner.
- */
+ * Use METIS partitioner.
+ */
metis = 0,
/**
- * Use ZOLTAN partitioner.
- */
+ * Use ZOLTAN partitioner.
+ */
zoltan
};
<< "The array has size " << arg1 << " but should have size "
<< arg2);
/**
- * Exception
- */
+ * Exception
+ */
DeclExceptionMsg (ExcZOLTANNotInstalled,
"The function you called requires ZOLTAN, but you did not "
"configure deal.II with ZOLTAN or zoltan_cpp.h is not available.");
private:
/**
- * An array for temporary data.
- */
+ * An array for temporary data.
+ */
mutable AlignedVector<Number> tmp_array;
/**
* location for shape functions and evaluation space (quadrature points).
*
* @author Katharina Kormann, 2012
- */
+ */
template <int dim, int fe_degree, int n_components, typename Number>
struct FEEvaluationImplCollocation
{
* same size as the unsigned integers on most architectures.
*
* @author Katharina Kormann, Martin Kronbichler, 2018
- **/
+ */
template <int vectorization_width>
struct FaceToCellTopology
{
* not on the local processor but that are needed to evaluate the cell
* integrals. In cell_level_index_end_local, we store the number of local
* cells.
- **/
+ */
unsigned int cell_level_index_end_local;
/**
unsigned int &partition) const;
/**
- * Update fields of task info for task graph set up in make_thread_graph.
- */
+ * Update fields of task info for task graph set up in
+ * make_thread_graph.
+ */
void
update_task_info (const unsigned int partition);
const bool uses_dof_handler_vector;
/**
- * Signals used by this object
- */
+ * Signals used by this object
+ */
mg::Signals signals;
};
typedef typename DoFHandlerType::active_cell_iterator active_cell_iterator;
/**
- * Abbreviation for a pair of
- * iterators.
+ * Abbreviation for a pair of iterators.
*/
typedef std::pair<active_cell_iterator,active_cell_iterator> iterator_pair;
/**
- * Constructor. Initialize
- * the two values by the
- * given values.
+ * Constructor. Initialize the two values by the given values.
*/
IteratorRange (const active_cell_iterator &first,
const active_cell_iterator &second);
/**
- * Constructor taking a pair
- * of values for
- * initialization.
+ * Constructor taking a pair of values for initialization.
*/
IteratorRange (const iterator_pair &ip);
/**
- * Pair of iterators denoting
- * a half-open range.
+ * Pair of iterators denoting a half-open range.
*/
active_cell_iterator first, second;
};