diff --git a/doc/doxygen/concepts b/doc/doxygen/concepts new file mode 100644 index 0000000000000000000000000000000000000000..1e26b1c5f623fe3c0de55992f7cb6b669b787974 --- /dev/null +++ b/doc/doxygen/concepts @@ -0,0 +1,12 @@ +/** +\namespace STL +\brief <i>preudo namespace</i> for STL concepts +*/ + + +/** +\interface STL::RandomAccessContainer +\brief the STL random-access-container interface + +see http://www.sgi.com/tech/stl/RandomAccessContainer.html . +*/ diff --git a/dune/common/fvector.hh b/dune/common/fvector.hh index 72e5ea75c0026425f1cdb15fa5bc40e347b3e0b2..759466acfb3090fca40ceb5c765feac59fc475cd 100644 --- a/dune/common/fvector.hh +++ b/dune/common/fvector.hh @@ -463,16 +463,16 @@ namespace Dune { /** \brief copy constructor */ FieldVector ( const FieldVector &other ) { - // for( size_type i = 0; i < SIZE; ++i ) - // p[ i ] = other[ i ]; - std::memcpy(p,other.p,SIZE*sizeof(K)); + for( size_type i = 0; i < SIZE; ++i ) + p[ i ] = other[ i ]; + // std::memcpy(p,other.p,SIZE*sizeof(K)); } /** \brief Assigment from other vector */ FieldVector& operator= (const FieldVector& other) { - std::memcpy(p,other.p,SIZE*sizeof(K)); - // for (size_type i=0; i<SIZE; i++) - // p[i] = other[i]; + // std::memcpy(p,other.p,SIZE*sizeof(K)); + for (size_type i=0; i<SIZE; i++) + p[i] = other[i]; return *this; } diff --git a/dune/common/geometrytype.hh b/dune/common/geometrytype.hh index b00ce6d1484b118ed05016c5d640d48796857cc6..c7c22974ff8c42267cb369d67a8b704c8ef9f4bf 100644 --- a/dune/common/geometrytype.hh +++ b/dune/common/geometrytype.hh @@ -162,44 +162,55 @@ namespace Dune { return basicType_ < other.basicType_; } - /** \brief Prints the type to an output stream */ - friend std::ostream& operator<< (std::ostream& s, const GeometryType& a) - { - switch (a.basicType_) { - case simplex : - s << "(simplex, " << a.dim_ << ")"; - break; - case cube : - s << "(cube, " << a.dim_ << ")"; - break; - case pyramid : - s << "pyramid"; - break; - case prism : - s << "prism"; - break; - case none : - s << "(none, " << a.dim_ << ")"; - break; - default : - s << "invalid geometry type"; - } - - return s; - } - + friend inline std::ostream& operator<< (std::ostream& s, const GeometryType& a); }; + /** \brief Prints the type to an output stream */ + inline std::ostream& operator<< (std::ostream& s, const GeometryType& a) + { + switch (a.basicType_) { + case GeometryType::simplex : + s << "(simplex, " << a.dim_ << ")"; + break; + case GeometryType::cube : + s << "(cube, " << a.dim_ << ")"; + break; + case GeometryType::pyramid : + s << "pyramid"; + break; + case GeometryType::prism : + s << "prism"; + break; + case GeometryType::none : + s << "(none, " << a.dim_ << ")"; + break; + default : + s << "invalid geometry type"; + } + return s; + } + /** \brief Prints a GeometryType::BasicType to an output stream */ inline std::ostream& operator<< (std::ostream& s, GeometryType::BasicType type) { switch (type) { - case GeometryType::simplex : s << "simplex"; break; - case GeometryType::cube : s << "cube"; break; - case GeometryType::pyramid : s << "pyramid"; break; - case GeometryType::prism : s << "prism"; break; - case GeometryType::none : s << "none"; break; - default : s << "[unknown GeometryType::BasicType: " << int(type) << "]"; + case GeometryType::simplex : + s << "simplex"; + break; + case GeometryType::cube : + s << "cube"; + break; + case GeometryType::pyramid : + s << "pyramid"; + break; + case GeometryType::prism : + s << "prism"; + break; + case GeometryType::none : + s << "none"; + break; + default : + s << "[unknown GeometryType::BasicType: " << int(type) << "]"; } return s; } diff --git a/dune/common/mpihelper.hh b/dune/common/mpihelper.hh index 8d7d8e80e012e02b192c48c6c721f079793fa84c..a46dfea00380fd61899a4be50553c1f289238b5f 100644 --- a/dune/common/mpihelper.hh +++ b/dune/common/mpihelper.hh @@ -77,7 +77,7 @@ namespace Dune /** * @brief The type of the mpi communicator. */ - typedef int MPICommunicator; + struct MPICommunicator {}; /** * @brief Get the default communicator. @@ -86,7 +86,7 @@ namespace Dune */ static MPICommunicator getCommunicator() { - return -1; + return MPICommunicator(); } static CollectiveCommunication<MPICommunicator> @@ -208,7 +208,7 @@ namespace Dune { rank_ = -1; size_ = -1; - MPI_Init(&argc, &argv); + static int is_initialized = MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD,&rank_); MPI_Comm_size(MPI_COMM_WORLD,&size_); diff --git a/dune/common/test/fassigntest.cc b/dune/common/test/fassigntest.cc index f364558bb6683e0275455defd81b6406cf35545a..23ab734bda575e9b5c0bed6820a5634cb29c1016 100644 --- a/dune/common/test/fassigntest.cc +++ b/dune/common/test/fassigntest.cc @@ -5,18 +5,20 @@ #include <iostream> #include <dune/common/fvector.hh> #include <dune/common/fassign.hh> +#include <dune/common/geometrytype.hh> using namespace Dune; int main(int argc, char** argv) try { - Dune::FieldVector<double,3> pos; + Dune::GeometryType t(Dune::GeometryType::cube, 4); + std::cout << t << "\n"; + Dune::FieldVector<double,3> pos; pos <<= 1, 0, 0; + return 0; } catch (Exception e) { - std::cout << e << std::endl; - } diff --git a/m4/dune_all.m4 b/m4/dune_all.m4 index 174aeb7e972ba943a411862243c0fd709d3222e4..e3b9fd3308cbccd0eaa140895156d3105a18353d 100644 --- a/m4/dune_all.m4 +++ b/m4/dune_all.m4 @@ -9,6 +9,8 @@ # dune-directory AC_DEFUN([DUNE_CHECK_ALL],[ + # doxygen and latex take a lot of time... + AC_REQUIRE([DUNE_DOCUMENTATION]) AC_REQUIRE([DUNE_WEB]) AC_ARG_ENABLE(enabledist, diff --git a/m4/dune_docu.m4 b/m4/dune_docu.m4 new file mode 100644 index 0000000000000000000000000000000000000000..fcacd67fb948189830a96a437450fda05d30ff19 --- /dev/null +++ b/m4/dune_docu.m4 @@ -0,0 +1,20 @@ +# searches for documentation +AC_DEFUN([DUNE_DOCUMENTATION],[ + + # if dist has been build without + # documentation then disable documentation + # option by default + DOCU_TAG_FILE="no-documentation.tag" + AS_IF([test -f "doc/$DOCU_TAG_FILE"],[ + HAS_DOCUMENTATION="no"],[ + # check whether option is chosen or not + AS_IF([test "x$enable_documentation" != "xno"],[ + HAS_DOCUMENTATION="yes"],[ + HAS_DOCUMENTATION="no" + ]) + ]) + AC_SUBST(DOCUMENTATION_TAG_FILE, $DOCU_TAG_FILE ) + AC_ARG_ENABLE(documentation, + AS_HELP_STRING([--disable-documentation],[don\'t generate docs, speeds up the build])) + AM_CONDITIONAL(BUILD_DOCS, [test "x$HAS_DOCUMENTATION" = "xyes"]) +])