From: turcksin Date: Fri, 19 Apr 2013 20:16:03 +0000 (+0000) Subject: Merge from mainline. X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b81725846ca4c5eea0379b1c248ecf25180ed436;p=dealii-svn.git Merge from mainline. git-svn-id: https://svn.dealii.org/branches/branch_bigger_global_dof_indices_4@29345 0785d39b-7218-0410-832d-ea1e28bc413d --- b81725846ca4c5eea0379b1c248ecf25180ed436 diff --cc deal.II/doc/doxygen/headers/global_dof_index.h index 8481ca779f,0000000000..fc6ae6c03a mode 100644,000000..100644 --- a/deal.II/doc/doxygen/headers/global_dof_index.h +++ b/deal.II/doc/doxygen/headers/global_dof_index.h @@@ -1,62 -1,0 +1,61 @@@ +//------------------------------------------------------------------------- +// $Id: coding_conventions.h 29312 2013-04-17 13:00:07Z turcksin $ +// Version: $Name$ +// +// Copyright (C) 2013 by the deal.II authors +// +// This file is subject to QPL and may not be distributed +// without copyright and license information. Please refer +// to the file deal.II/doc/license.html for the text and +// further information on this license. +// +//------------------------------------------------------------------------- + +/** - * @page GlobalDoFIndex When to use types::global_dof_index instead of - * unsigned int ++ * @page GlobalDoFIndex When to use types::global_dof_index instead of unsigned int + * + * When the 64-bits version of deal.II is used, it becomes necessary to + * declare as types::global_dof_index (unsigned long long int) instead of + * unsigned int. Here, we want to clarify when types::global_dof_index must be + * used. + * + *
+ * + *
@anchor GlobalDoFIndexBlockIndices + * BlockIndices
+ *
+ * The number of blocks is an unsigned int because the number is expected to + * be low, i.e less than four billions. However, the size of the block is a + * types::global_dof_index because each block can be arbitrary large. + *
+ * + *
@anchor GlobalDoFIndexCell Cell
+ *
+ * The ID of cell is not unique. Cells with different levels of refinement + * and/or on different processors can have the same ID. Thus, all the data + * associated to cells can be unsigned int. + *
+ * + *
@anchor GlobalDoFIndexDoFHandler + * DoFHandler
+ *
+ * The ID of each degree of freedom is unique. Therefore, degrees of freedom + * are types::global_dof_index. + *
+ * + *
@anchor GlobalDoFIndexFullMatrix + * FullMatrix
+ *
+ * The numbers of row and column are types::global_dof_index even if it is not + * expected that someone will create a FullMatrix with so many entries. + * However, ConstraintMatrix is templated on the matrix type and thus, the + * size of a FullMatrix has to be of the same type than the size of + * SparseMatrix. + *
+ * + *
@anchor GlobalDoFIndexSparseMatrix + * SparseMatrix
+ *
+ * The size SparseMatrix can be arbitrary large therefore, + * types::global_do_index is used. + */ diff --cc deal.II/include/deal.II/base/exceptions.h index 9e979c178f,94867d5767..59b93fd0ff --- a/deal.II/include/deal.II/base/exceptions.h +++ b/deal.II/include/deal.II/base/exceptions.h @@@ -915,34 -805,6 +824,9 @@@ namespace StandardException #define AssertIndexRange(index,range) Assert((index) < (range), \ ExcIndexRange((index),0,(range))) +#define AssertGlobalIndexRange(index,range) Assert((index) < (range), \ + ExcIndexRange((index),0,(range))) + - - /* - * Unfortunately, the following must be repeated for each library, - * since we cannot have ifdefs in macros. - */ - - /** - * Assert support for the LAPACK library - */ - #ifdef DEAL_II_WITH_LAPACK - # define AssertLAPACK {} - #else - # define AssertLAPACK Assert(false, ExcNeedsLAPACK()) - #endif - - /** - * Assert support for the UMFPACK library - */ - #ifdef DEAL_II_WITH_UMFPACK - # define AssertUMFPACK {} - #else - # define AssertUMFPACK Assert(false, ExcNeedsUMFPACK()) - #endif - - using namespace StandardExceptions; DEAL_II_NAMESPACE_CLOSE