diff --git a/common/alignment.hh b/common/alignment.hh index 4fab4cf82b98221425a77032aa4ce2d3456a517e..e6d7dce4df8521860f44be2c94f176a8181b10cf 100644 --- a/common/alignment.hh +++ b/common/alignment.hh @@ -18,6 +18,8 @@ namespace Dune * requirements at compile time. * @author Markus Blatt */ + + /** \todo Please doc me! */ template<class T> struct AlignmentStruct { @@ -25,6 +27,7 @@ namespace Dune T t; }; + /** \todo Please doc me! */ template<class T, std::size_t N> struct AlignmentHelper { @@ -37,7 +40,7 @@ namespace Dune #define ALIGNMENT_MODULO(a, b) ((a) % (b) == 0 ? (b) : (a) % (b)) #define ALIGNMENT_MIN(a, b) (static_cast<std::size_t>(a) < \ static_cast<std::size_t>(b) ? (a) : (b)) - + /** \todo Please doc me! */ template <class T, std::size_t N> struct AlignmentTester { @@ -54,6 +57,7 @@ namespace Dune }; }; + /** \todo Please doc me! */ template <class T> struct AlignmentTester<T, 0> { diff --git a/common/array.hh b/common/array.hh index 3f138989d77299d099d0e829e5a84928265f7bde..73870895a1931acda7f71f107bdc854f9e0568f7 100644 --- a/common/array.hh +++ b/common/array.hh @@ -175,7 +175,7 @@ namespace Dune } ; - // Iterator interface + //! Iterator interface template<class T> inline typename Array<T>::Iterator Array<T>::begin () const { @@ -184,6 +184,7 @@ namespace Dune return tmp; } + //! Iterator interface template<class T> inline typename Array<T>::Iterator Array<T>::end () const { @@ -192,20 +193,27 @@ namespace Dune return tmp; // das funktioniert: Stroustrup p. 92. } - // Destruktor + /*! \brief Destructor + Deletes contents of array. + */ template <class T> inline Array<T>::~Array () { if (n>0) delete[] p; } - // Konstruktoren + /*! \brief Default constructor + Creates an array of size 0. + */ template <class T> inline Array<T>::Array () { n = 0; } + /*! \brief Constructor with size indicator + Creates an empty array of size m. + */ template <class T> inline Array<T>::Array (int m) { @@ -224,6 +232,9 @@ namespace Dune } } + /*! \brief Resizing of an array + Resizing causes the old array to be deleted. All data is lost! + */ template <class T> inline void Array<T>::resize (int m) { @@ -250,7 +261,9 @@ namespace Dune } } - // Copy-Konstruktor + /* \brief Copy-constructor + Implements deep copy. + */ template <class T> inline Array<T>::Array (const Array<T>& a) { @@ -271,7 +284,8 @@ namespace Dune for (int i=0; i<n; i=i+1) p[i]=a.p[i]; } - // Zuweisung + /* \brief Assignment operator + */ template <class T> inline Array<T>& Array<T>::operator= (const Array<T>& a) { @@ -298,7 +312,9 @@ namespace Dune return *this; // Gebe Referenz zurueck damit a=b=c; klappt } - // Zuweisung mit member type + /* \brief Assignment operator + All elements of the Array get the value a + */ template <class T> inline Array<T>& Array<T>::operator= (const T& a) { @@ -306,7 +322,9 @@ namespace Dune return *this; // Gebe Referenz zurueck damit a=b=c; klappt } - // Indizierung + /* \brief Access operator + Accessing of elements in Array. With bounds check. + */ template <class T> inline T& Array<T>::operator[] (int i) { @@ -315,7 +333,9 @@ namespace Dune return p[i]; } - + /* \brief Access operator + Accessing of elements in Array. With bounds check. Const version + */ template <class T> inline const T& Array<T>::operator[] (int i) const { @@ -324,14 +344,16 @@ namespace Dune return p[i]; } - // Groesse + /* \brief Size of Array + */ template <class T> inline int Array<T>::size () const { return n; } - // Ausgabe + /* \brief Output operator + */ template <class T> std::ostream& operator<< (std::ostream& s, Array<T>& a) { @@ -342,12 +364,14 @@ namespace Dune return s; } + //! Constructor template<class T> inline Array<T>::Iterator::Iterator () { p=0; // nicht initialisierter Iterator } + //! Comparison operator template<class T> inline bool Array<T>::Iterator::operator!= (const typename Array<T>::Iterator& x) @@ -355,6 +379,7 @@ namespace Dune return p != x.p; } + //! Comparison operator template<class T> inline bool Array<T>::Iterator::operator== (const typename Array<T>::Iterator& x) @@ -362,6 +387,7 @@ namespace Dune return p == x.p; } + //! Prefix-increment operator template<class T> inline typename Array<T>::Iterator Array<T>::Iterator::operator++ () // prefix { @@ -369,6 +395,7 @@ namespace Dune return *this; } + //! Postfix-increment operator template<class T> inline typename Array<T>::Iterator Array<T>::Iterator::operator++ (int) // postfix { @@ -377,12 +404,14 @@ namespace Dune return tmp; } + //! Dereferencing template<class T> inline const T& Array<T>::Iterator::operator* () const { return *p; } + //! Dereferencing template<class T> inline const T* Array<T>::Iterator::operator-> () const { diff --git a/common/arraylist.hh b/common/arraylist.hh index 9d24b3eca107ffebc9522f4521c4e702822a3e95..7bce9df6d716a4692159f2d7e413fa6189bb82ec 100644 --- a/common/arraylist.hh +++ b/common/arraylist.hh @@ -16,7 +16,6 @@ namespace Dune template<class T, int N, class A> class ArrayListIterator; - template<class T, int N, class A> class ConstArrayListIterator; @@ -37,8 +36,9 @@ namespace Dune /** * @brief A dynamically growing random access list. * - * Internally the data is organized in a list of arrays of fixed size. Whenever the capacity - * of the array list is not sufficient a new Dune::FixedArray is allocated. In contrast to + * Internally the data is organized in a list of arrays of fixed size. + * Whenever the capacity of the array list is not sufficient a new + * Dune::FixedArray is allocated. In contrast to * std::vector this approach prevents data copying. On the outside * we provide the same interface as the stl random access containers. */ @@ -269,14 +269,19 @@ namespace Dune */ inline void eraseToHere(); + /** \todo Please doc me! */ inline int position(){return position_;} + /** \todo Please doc me! */ inline void advance(int n); + /** \todo Please doc me! */ inline int distanceTo(const ArrayListIterator<MemberType,N,A>& other) const; + /** \todo Please doc me! */ inline ArrayListIterator<MemberType,N,A>& operator=(const ArrayListIterator<MemberType,N,A>& other); + //! Standard constructor inline ArrayListIterator() : position_(0) {} @@ -343,8 +348,10 @@ namespace Dune */ inline void decrement(); + /** \todo Please doc me! */ inline void advance(int n); + /** \todo Please doc me! */ inline int distanceTo(const ConstArrayListIterator<MemberType,N,A>& other) const; /** diff --git a/common/function.hh b/common/function.hh index cc17c6d0faf62efe1e3693e9a5d0fa4499fd1164..9c7bebb10e7a2289112f003b3e535fba08029b33 100644 --- a/common/function.hh +++ b/common/function.hh @@ -22,7 +22,7 @@ namespace Dune { typedef int deriType; - /** \brief ??? + /** \brief Class representing a function * \todo Please doc me! */ template< class FunctionSpaceType, class FunctionImp> diff --git a/common/functionspace.hh b/common/functionspace.hh index bbe2f20c92df224049ea776d9b69261ae489826f..545b9638ff3c2b67745a96552e05949f33647059 100644 --- a/common/functionspace.hh +++ b/common/functionspace.hh @@ -15,7 +15,9 @@ namespace Dune { @{ */ - /** \todo Please doc me! */ + /** \brief An arbitrary function space + Base class for specific function spaces. + */ template< typename DomainFieldType, typename RangeFieldType, int n, int m > class FunctionSpace : public DynamicType { public: diff --git a/common/mapping.hh b/common/mapping.hh index 8994ab099bda09c6055e510bbbd02361266d731d..b283a7840712b3541bc9d61792b42b934fdad63d 100644 --- a/common/mapping.hh +++ b/common/mapping.hh @@ -17,7 +17,7 @@ namespace Dune { @{ */ - /** ??? + /** \brief A mapping \todo Please doc me! Note: Range has to have Vector structure as well. diff --git a/common/poolallocator.hh b/common/poolallocator.hh index 5851835f7918fbf370a8c54222e01149aac0bdf9..2b81f960dae6e0602361ead327f0b664f4b11e29 100644 --- a/common/poolallocator.hh +++ b/common/poolallocator.hh @@ -75,11 +75,13 @@ namespace Dune }; private: + /** \todo Please doc me! */ struct Reference { Reference *next_; }; + /** \todo Please doc me! */ struct Chunk { /** @brief The memory we hold. */ diff --git a/common/sllist.hh b/common/sllist.hh index 34807460cd73a519bfcb7f37227898fffa0d9e69..a2fdd15a555b7b3a0a9d903d25d5d5edcd0ed56a 100644 --- a/common/sllist.hh +++ b/common/sllist.hh @@ -130,6 +130,7 @@ namespace Dune inline int size() const; private: + /** \todo Please doc me! */ struct Element { /** diff --git a/common/smartpointer.hh b/common/smartpointer.hh index e36d399236548b006ad839d357a8e6c094ab4525..e31a03ed4d4719f26aecd57a7f8f7ca749d360da 100644 --- a/common/smartpointer.hh +++ b/common/smartpointer.hh @@ -5,6 +5,7 @@ #ifndef __DUNE_SMARTPOINTER_HH__ #define __DUNE_SMARTPOINTER_HH__ #include <iostream> + /** * @file * @brief This file implements the class SmartPointer which is a reference counting diff --git a/common/test/iteratorfacadetest.hh b/common/test/iteratorfacadetest.hh index b111c9c504b9f0dd09d805c44474b6abfbb50ad3..3ee3cacf96f17effa6c1957e000759d23e0e93a7 100644 --- a/common/test/iteratorfacadetest.hh +++ b/common/test/iteratorfacadetest.hh @@ -6,6 +6,7 @@ #include <dune/common/genericiterator.hh> #include <dune/common/typetraits.hh> +/** \todo Please doc me! */ template<class T> class TestContainer { public: diff --git a/common/test/iteratortest.hh b/common/test/iteratortest.hh index 46ceeeb523866bc5a850a1795b64e10372170eca..29bce2d19c0d4403351dc750d339a74bc7341580 100644 --- a/common/test/iteratortest.hh +++ b/common/test/iteratortest.hh @@ -66,6 +66,7 @@ int testBidirectionalIterator(Iter begin, Iter end, Opt opt) return 0; } +/** \todo Please doc me! */ template<class Iter, class Opt> int testRandomAccessIterator(Iter begin, Iter end, Opt opt){ int ret=testBidirectionalIterator(begin, end, opt); @@ -155,21 +156,25 @@ int testRandomAccessIterator(Iter begin, Iter end, Opt opt){ return ret; } +/** \todo Please doc me! */ template<class Iter, class Opt, typename iterator_category> int testIterator(Iter& begin, Iter& end, Opt& opt, iterator_category cat); +/** \todo Please doc me! */ template<class Iter, class Opt> int testIterator(Iter& begin, Iter& end, Opt& opt, std::forward_iterator_tag) { return testForwardIterator(begin, end, opt); } +/** \todo Please doc me! */ template<class Iter, class Opt> int testIterator(Iter& begin, Iter& end, Opt& opt, std::bidirectional_iterator_tag) { return testBidirectionalIterator(begin, end, opt); } +/** \todo Please doc me! */ template<class Iter, class Opt> int testIterator(Iter& begin, Iter& end, Opt& opt, std::random_access_iterator_tag) { @@ -179,6 +184,7 @@ int testIterator(Iter& begin, Iter& end, Opt& opt, std::random_access_iterator_t return ret; } +/** \todo Please doc me! */ template<class Iter, class Opt> int testConstIterator(Iter& begin, Iter& end, Opt& opt) { @@ -188,16 +194,19 @@ int testConstIterator(Iter& begin, Iter& end, Opt& opt) return ret; } +/** \todo Please doc me! */ template<class Container, typename IteratorTag> void testSorting(Container& C, IteratorTag tag) { } +/** \todo Please doc me! */ template<class Container> void testSorting(Container& c, std::random_access_iterator_tag) { std::sort(c.begin(), c.end()); } +/** \todo Please doc me! */ template<class Container, class Opt> int testIterator(Container& c, Opt& opt) { @@ -219,6 +228,7 @@ int testIterator(Container& c, Opt& opt) testIterator(begin,end,opt); } +/** \todo Please doc me! */ template<class Iter, class Opt> void testAssignment(Iter begin, Iter end, Opt& opt) { @@ -228,6 +238,7 @@ void testAssignment(Iter begin, Iter end, Opt& opt) //std::cout<<" Done."<< std::endl; } +/** \todo Please doc me! */ template<class Iter, class Opt> int testIterator(Iter& begin, Iter& end, Opt& opt) { @@ -236,6 +247,7 @@ int testIterator(Iter& begin, Iter& end, Opt& opt) } +/** \todo Please doc me! */ template<class T> class Printer { typename Dune::RemoveConst<T>::Type res; @@ -247,6 +259,7 @@ public: } }; +/** \todo Please doc me! */ template<class Container, class Opt> int testIterator(const Container& c, Opt& opt) { @@ -255,6 +268,7 @@ int testIterator(const Container& c, Opt& opt) } +/** \todo Please doc me! */ template<class Container> int testIterator(Container& c) { diff --git a/common/typetraits.hh b/common/typetraits.hh index 7d6022733003a4399c4326d5720a2b6d7675936a..dad36c92b6c4907b452aa8e176fa6f643e704598 100644 --- a/common/typetraits.hh +++ b/common/typetraits.hh @@ -165,6 +165,7 @@ namespace Dune }; }; + /** \todo Please doc me! */ template<bool b, typename T=void> struct EnableIf { @@ -175,6 +176,7 @@ namespace Dune struct EnableIf<false,T> {}; + /** \todo Please doc me! */ template<class T1, class T2, class Type> struct EnableIfInterOperable : public EnableIf<IsInteroperable<T1,T2>::value, Type> diff --git a/common/vectorspace.hh b/common/vectorspace.hh index a72e93cbe9339b5ebfeee13298c0d1dad3fa3982..683e183528cdc8c56609eb147b389946df1b0e63 100644 --- a/common/vectorspace.hh +++ b/common/vectorspace.hh @@ -18,8 +18,8 @@ namespace Dune { @{ */ - /** \brief ??? - * \todo Please doc me! + /** \brief Vector class + * This is the base class for all methods and operators. */ template <typename Field> class Vector @@ -30,17 +30,18 @@ namespace Dune { //virtual Vector<Field> operator * (const Field &) const = 0; //virtual Vector<Field> operator / (const Field &) const = 0; - //! \todo Oli changed all method to, I changed it back, because - //! otherwise the code will not compile and I fixed this hack later. + /** \brief Assignment operator + \note Only returns itself... + */ virtual Vector<Field>& operator = (const Vector<Field> &) { return *this;}; - //! ! + //! Addition virtual Vector<Field>& operator += (const Vector<Field> &) = 0; - //! ! + //! Subtraction virtual Vector<Field>& operator -= (const Vector<Field> &) = 0; - //! ! + //! Multiplication virtual Vector<Field>& operator *= (const Field &) = 0; - //! ! + //! Division virtual Vector<Field>& operator /= (const Field &) = 0; }; diff --git a/doc/Doxyfile b/doc/Doxyfile index 10e22277576098ba42a1cabe8845aa004449c8e1..a09bb1f92f5cf8a32215adf3e4b578a327e7abee 100644 --- a/doc/Doxyfile +++ b/doc/Doxyfile @@ -204,7 +204,7 @@ EXTRACT_LOCAL_CLASSES = YES # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. -HIDE_UNDOC_MEMBERS = YES +HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. diff --git a/fem/common/basefunctions.hh b/fem/common/basefunctions.hh index 00a5726bb40ce8ea31eeaae59a56b09697f777bc..da104e0cd510dfe250a0a8e6f38845be74488386 100644 --- a/fem/common/basefunctions.hh +++ b/fem/common/basefunctions.hh @@ -35,13 +35,11 @@ namespace Dune { }; //************************************************************************* - // //! BaseFunctionInterface is the interface to a base function. //! A base function can be evaluated on a point from the Domain and the //! outcome is a point from Range. The Types of Domain and Range are stored //! by typedefs in FunctionSpaceType which is the template parameter of //! BaseFunctionInterface. - // //************************************************************************* template<class FunctionSpaceType> class BaseFunctionInterface @@ -139,12 +137,15 @@ namespace Dune { /*** Begin Interface ***/ + //! \todo Please doc me! BaseFunctionSetInterface ( FunctionSpaceType & f ) : funcSpace_ ( f ) {}; + //! \todo Please doc me! int getNumberOfBaseFunctions () const { return asImp().getNumberOfBaseFunctions(); }; + //! \todo Please doc me! template <int diffOrd> void evaluate ( int baseFunct, const FieldVector<deriType, diffOrd> &diffVariable, const Domain & x, Range & phi ) const { @@ -152,12 +153,14 @@ namespace Dune { asImp().evaluate( baseFunct, diffVariable, x, phi ); } + //! \todo Please doc me! template <int diffOrd, class QuadratureType > void evaluate ( int baseFunct, const FieldVector<deriType, diffOrd> &diffVariable, QuadratureType & quad, int quadPoint, Range & phi ) const { asImp().evaluate( baseFunct, diffVariable, quad, quadPoint, phi ); } protected: + //! \todo Please doc me! const BaseFunctionInterface<FunctionSpaceType> &getBaseFunction( int baseFunct ) const { std::cout << "Interface getBaseFunction \n"; return asImp().getBaseFunction( baseFunct ); diff --git a/fem/common/fastbase.hh b/fem/common/fastbase.hh index 3a00279d23eca66226398e163f0ac36d204ae187..f46fc23dc75a1dc8bf4af4c29e26de917fced108 100644 --- a/fem/common/fastbase.hh +++ b/fem/common/fastbase.hh @@ -99,6 +99,7 @@ namespace Dune { baseFunctionList_[baseFunc] = func; }; + //! \todo Please doc me! void setNumOfDiffFct ( int num ) { numOfDiffFct_ = num; diff --git a/fem/common/localfunction.hh b/fem/common/localfunction.hh index 73a4cdcd7486213568da914721d24555b320f608..fa92743adcd339c8c616ad9a588917979a47e322 100644 --- a/fem/common/localfunction.hh +++ b/fem/common/localfunction.hh @@ -137,6 +137,7 @@ namespace Dune { return asImp().operator != (I); } + //! \todo Please doc me! int index () const { return asImp().index(); diff --git a/fem/common/localoperator.hh b/fem/common/localoperator.hh index 1e1738531bbe2e7afcf29b8d95c9892bbc5d206a..dd19dd66fa81e30fad942a126ed6967cc5a8a679 100644 --- a/fem/common/localoperator.hh +++ b/fem/common/localoperator.hh @@ -30,7 +30,7 @@ namespace Dune class LocalOperatorInterface { public: - // remember the parameter types + //! remember the parameter types typedef FstPType FirstParamType; typedef SecPType SecondParamType; typedef SType ScalarType; @@ -45,59 +45,61 @@ namespace Dune asImp().prepareGlobal(pa,pb); } - // prepare for grid walktrough + //! prepare for grid walktrough void prepareGlobal () { asImp().prepareGlobal(); } - // finalize the walktrough + //! finalize the walktrough void finalizeGlobal() { asImp().finalizeGlobal(); } - // one entity + //! one entity template<class EntityType> void prepareLocal (EntityType & en) { asImp().prepareLocal(en); } + //! \todo Please doc me! template<class EntityType> void finalizeLocal(EntityType & en) { asImp().finalizeLocal(en); } - // two entities + //! two entities template<class EntityType> void prepareLocal (EntityType & en1, EntityType &en2) { asImp().prepareLocal(en1,en2); } + //! \todo Please doc me! template<class EntityType> void finalizeLocal(EntityType & en1, EntityType &en2) { asImp().finalizeLocal(en1,en2); } - // things to do on one entity + //! things to do on one entity template<class EntityType> void applyLocal(EntityType & en) { asImp().applyLocal(en); } - // things to do on two entity + //! things to do on two entity template<class EntityType> void applyLocal(EntityType & en1, EntityType &en2) { asImp().applyLocal(en1,en2); } private: - // Barton Nackman + //! Barton Nackman LocalOperatorImp & asImp() { return static_cast<LocalOperatorImp &> (*this); @@ -105,10 +107,13 @@ namespace Dune }; //************************************************************************** - // // Default implemenations for LocalOperators - // //************************************************************************** + /** \brief Default implementation of a local operator + * A local operator works on entities only and is used by a DiscreteOperator + * during a mesh traversal. This class implements the standard behaviour for + * prepareLocal(), finalizeLocal() and possibly other methods. + */ template <class FstPType, class SecPType, class SType , class LocalOperatorImp> class LocalOperatorDefault @@ -116,12 +121,12 @@ namespace Dune SType,LocalOperatorImp> { public: - // remember the parameter types + //! remember the parameter types typedef FstPType FirstParamType; typedef SecPType SecondParamType; typedef SType ScalarType; - // no default implementation at the moement + //! no default implementation at the moement LocalOperatorDefault () : scalar_ (1.0) {} //! scale operator , for inheritance @@ -144,6 +149,7 @@ namespace Dune template<class EntityType> void prepareLocal (EntityType & en) {}; + //! \todo Please doc me! template<class EntityType> void finalizeLocal(EntityType & en) {}; @@ -151,6 +157,7 @@ namespace Dune template<class EntityType> void prepareLocal (EntityType & en1, EntityType &en2){}; + //! \todo Please doc me! template<class EntityType> void finalizeLocal(EntityType & en1, EntityType &en2){}; //************************************************************** @@ -188,6 +195,7 @@ namespace Dune std::cout << "Create CombinedLocalOperator " << this << "\n"; } + //! Destructor ~CombinedLocalOperator () { if(printMSG_) @@ -220,6 +228,7 @@ namespace Dune template<class EntityType> void prepareLocal (EntityType & en); + //! \todo Please doc me! template<class EntityType> void finalizeLocal(EntityType & en); @@ -227,6 +236,7 @@ namespace Dune template<class EntityType> void prepareLocal (EntityType & en1, EntityType &en2); + //! \todo Please doc me! template<class EntityType> void finalizeLocal(EntityType & en1, EntityType &en2); @@ -395,6 +405,7 @@ namespace Dune template<class EntityType> void prepareLocal (EntityType & en); + //! \todo Please doc me! template<class EntityType> void finalizeLocal(EntityType & en); @@ -402,6 +413,7 @@ namespace Dune template<class EntityType> void prepareLocal (EntityType & en1, EntityType &en2); + //! \todo Please doc me! template<class EntityType> void finalizeLocal(EntityType & en1, EntityType &en2); diff --git a/fem/dfadapt.hh b/fem/dfadapt.hh index 8edc4fc317d508c4c94cb18e96a67e6167ef0ee3..03c79b4ca8a2baff487bc45ea13184a36ee6c575 100644 --- a/fem/dfadapt.hh +++ b/fem/dfadapt.hh @@ -105,9 +105,11 @@ namespace Dune { //! set all dof to value x void set( RangeFieldType x ); + //! \todo Please do me! void addScaled (const DFAdapt <DiscreteFunctionSpaceType> & g, const RangeFieldType &scalar); + //! \todo Please do me! template <class EntityType> void addScaledLocal (EntityType &en, const DFAdapt <DiscreteFunctionSpaceType> & g, @@ -123,6 +125,7 @@ namespace Dune { void substractLocal (EntityType &it, const DFAdapt <DiscreteFunctionSpaceType> & g); + //! \todo Please do me! template <class EntityType> void setLocal (EntityType &it, const RangeFieldType &scalar); @@ -266,6 +269,8 @@ namespace Dune { //*********************************************************************** // // --DofIteratorAdapt + //! \todo Please doc me! + //! I guess this is an iterator over an adaptive space. // //*********************************************************************** template < class DofImp, class DofArrayType > @@ -276,9 +281,11 @@ namespace Dune { public: typedef DofImp DofType; + //! Constructor DofIteratorAdapt ( DofArrayType & dofArray , int count ) : dofArray_ ( dofArray ) , constArray_ (dofArray) , count_ ( count ) {}; + //! Constructor DofIteratorAdapt ( const DofArrayType & dofArray , int count ) : dofArray_ ( const_cast <DofArrayType &> (dofArray) ) , constArray_ ( dofArray ) , diff --git a/fem/dgspace.hh b/fem/dgspace.hh index 627510ebaf082851debc5d862073a701b96a8525..30d1725db76585ca5ad6fc383f5f718b49a178fb 100644 --- a/fem/dgspace.hh +++ b/fem/dgspace.hh @@ -16,7 +16,7 @@ namespace Dune { //********************************************************************** // - // DiscreteFunctionSpace for discontinous functions + //! DiscreteFunctionSpace for discontinous functions // //********************************************************************** template< class FunctionSpaceType, class GridType, int polOrd , class diff --git a/fem/dgspace/monomialbase.hh b/fem/dgspace/monomialbase.hh index 231ec0a9aaa1147659eb162211d1552d3292408b..155b15d94a386f54786a22a334a4c22782250bb1 100644 --- a/fem/dgspace/monomialbase.hh +++ b/fem/dgspace/monomialbase.hh @@ -23,6 +23,8 @@ namespace Dune { // --MonomialBaseFunctionSet // //************************************************************************* + + //! \todo Please doc me! template<class FunctionSpaceType> class MonomialBaseFunctionSet : public BaseFunctionSetDefault @@ -60,10 +62,12 @@ namespace Dune { void evaluate ( int baseFunct, const FieldVector<deriType, diffOrd> &diffVariable, QuadratureType & quad, int quadPoint, Range & phi ) const; + //! \todo Please doc me! void print (std::ostream& s, int baseFunct) const { assert(baseFunct < numOfBaseFct_); print(s, Phi_[baseFunct]); }; + //! \todo Please doc me! void print (std::ostream& s) const { s << "["; for (int i = 0; i < numOfBaseFct_ - 1; i++) { @@ -88,21 +92,29 @@ namespace Dune { return x*power(x, p-1); } - inline - void real_evaluate ( int baseFunct, const FieldVector<deriType, 0> &diffVariable, - const Domain & x, Range & phi ) const; - inline - void real_evaluate ( int baseFunct, const FieldVector<deriType, 1> &diffVariable, - const Domain & x, Range & phi ) const; - inline - void real_evaluate ( int baseFunct, const FieldVector<deriType, 2> &diffVariable, - const Domain & x, Range & phi ) const; - + //! \todo Please doc me! + inline void real_evaluate ( int baseFunct, + const FieldVector<deriType, 0> &diffVariable, + const Domain & x, + Range & phi ) const; + + //! \todo Please doc me! + inline void real_evaluate ( int baseFunct, + const FieldVector<deriType, 1> &diffVariable, + const Domain & x, + Range & phi ) const; + //! \todo Please doc me! + inline void real_evaluate ( int baseFunct, + const FieldVector<deriType, 2> &diffVariable, + const Domain & x, + Range & phi ) const; + + //! \todo Please doc me! void print (std::ostream& s, const FieldVector<int, 2> & pol) const; }; // end class MonomialBaseFunctionSet - // overloading the out stream for printing of monomial bases + //! overloading the out stream for printing of monomial bases template< class T > inline std::ostream& operator<< (std::ostream& s, MonomialBaseFunctionSet<T> & m) diff --git a/fem/discfuncarray.hh b/fem/discfuncarray.hh index b274826fe08f1283dc2a42ed6d4dc9a6dfc4b4ac..52c1e12989482cc06c97756e66a7aa7f58066edb 100644 --- a/fem/discfuncarray.hh +++ b/fem/discfuncarray.hh @@ -45,9 +45,9 @@ namespace Dune { enum { myId_ = 0}; public: - //! ??? + //! Type of the range field typedef typename DiscreteFunctionSpaceType::RangeField RangeFieldType; - //! ??? + //! Type of the grid typedef typename DiscreteFunctionSpaceType::GridType GridType; @@ -62,7 +62,7 @@ namespace Dune { typedef DofIteratorArray < typename DiscreteFunctionSpaceType::RangeField > DofIteratorType; typedef ConstDofIteratorDefault<DofIteratorType> ConstDofIteratorType; - //! ??? + //! The associated discrete function space typedef DiscreteFunctionSpaceType FunctionSpaceType; //! Constructor makes Discrete Function @@ -99,14 +99,14 @@ namespace Dune { void localFunction ( EntityType &en, LocalFunctionArray<DiscreteFunctionSpaceType> & lf); - // we use the default implementation + //! we use the default implementation DofIteratorType dbegin (); //! points behind the last dof of type cc DofIteratorType dend (); - // the const versions - // we use the default implementation + //! the const versions + //! we use the default implementation ConstDofIteratorType dbegin () const; //! points behind the last dof of type cc @@ -290,7 +290,9 @@ namespace Dune { // --DofIteratorArray // //*********************************************************************** - /** \brief ??? */ + /** \brief Iterator over an array of dofs + \todo Please doc me! + */ template < class DofImp > class DofIteratorArray : public DofIteratorDefault < DofImp , DofIteratorArray < DofImp > > diff --git a/fem/discretefeopimp.hh b/fem/discretefeopimp.hh index 46ec67510ba8b27f6cb98b722fa0122e4056c135..e97be16f676f03a9c88371e7e3f066100e2e0343 100644 --- a/fem/discretefeopimp.hh +++ b/fem/discretefeopimp.hh @@ -26,6 +26,9 @@ namespace Dune { @{ */ + /** \brief Base class for discrete finite element operators + * Base class for local operators in a finite elment discretization + */ template <class DiscreteFunctionType, class LocalOperatorImp > class DiscreteFEOp : public DiscreteOperatorDefault <DiscreteFunctionType, DiscreteFunctionType > @@ -118,6 +121,7 @@ namespace Dune { applyNow(Arg,Dest); } + //! \todo Please doc me! template <class ArgParamType , class DestParamType> void applyNow ( const ArgParamType &arg, DestParamType &dest ) const { @@ -195,6 +199,7 @@ namespace Dune { localOp_.finalizeGlobal(); } + //! \todo Please doc me! template <class GridIteratorType> void applyOnGrid ( GridIteratorType &it, GridIteratorType &endit, const DomainType &Arg, RangeType &Dest ) const @@ -211,6 +216,7 @@ namespace Dune { } } + //! \todo Please doc me! template <class GridIteratorType> void applyOnGrid ( GridIteratorType &it, GridIteratorType &endit ) const { diff --git a/fem/discreteoperatorimp.hh b/fem/discreteoperatorimp.hh index ff896afff6d66f885ac55542fbfbfe09950c0fa6..4fbc1a9078bc9b6d325235a9e0b682282531fac2 100644 --- a/fem/discreteoperatorimp.hh +++ b/fem/discreteoperatorimp.hh @@ -95,6 +95,7 @@ namespace Dune { applyNow(Arg,Dest); } + //! \todo Please doc me! template <class ArgParamType , class DestParamType> void applyNow ( const ArgParamType &arg, DestParamType &dest ) const { @@ -172,6 +173,7 @@ namespace Dune { localOp_.finalizeGlobal(); } + //! \todo Please doc me! template <class GridIteratorType> void applyOnGrid ( GridIteratorType &it, GridIteratorType &endit, const DFDomainType &Arg, DFRangeType &Dest ) const @@ -188,6 +190,7 @@ namespace Dune { } } + //! \todo Please doc me! template <class GridIteratorType> void applyOnGrid ( GridIteratorType &it, GridIteratorType &endit ) const { diff --git a/fem/dofmanager.hh b/fem/dofmanager.hh index 70144cdabd3f1839ce7bde5fdec03a2bb70bd209..770b4ff71acfd9d4f81385c5ed0e79aebe56b897 100644 --- a/fem/dofmanager.hh +++ b/fem/dofmanager.hh @@ -38,22 +38,22 @@ namespace Dune { class DofArrayMemory { private: - // pointer to memory + //! pointer to memory MemPointerType * vec_; - // size of array + //! size of array int size_; - // sizeof one array entry + //! sizeof one array entry size_t objSize_; - // name of this array + //! name of this array const char * name_; - // only this class is allowed to generate instances of this class + //! only this class is allowed to generate instances of this class friend class MemObject; - // Constructor can only be called from MemObject + //! Constructor can only be called from MemObject DofArrayMemory(const char * name, size_t objSize) : vec_ (0), size_(0) , objSize_(objSize) , name_(name) {} @@ -85,6 +85,7 @@ namespace Dune { template <class T> T* vector () { return static_cast<T *> ((void *)vec_); } + //! return vector for cg scheme, const version template <class T> const T* vector () const { return static_cast<T *> ((void *)vec_); } @@ -196,7 +197,10 @@ namespace Dune { return *this; } + //! \todo Please doc me! T* vector() { return array_.vector<T> (); } + + //! \todo Please doc me! const T* vector() const { return array_.vector<T> (); } //! read and write xdr @@ -206,6 +210,7 @@ namespace Dune { } }; + //! \todo Please doc me! class DefaultGHMM { public: @@ -261,7 +266,7 @@ namespace Dune { DofArrayMemory array_; public: - // Constructor of MemObject, only to call from DofManager + //! Constructor of MemObject, only to call from DofManager template <class GridType, class MapperType> MemObject ( GridType & grid, MapperType & mapper, const char * name , DefaultGHMM & ghmm , size_t objSize ) @@ -281,7 +286,7 @@ namespace Dune { if(myMem_) ghmm_.Free(myMem_); } - // defines the corresponding array type + //! defines the corresponding array type typedef DofArrayMemory DefaultArrayType; //! returns name of this vector @@ -437,6 +442,7 @@ namespace Dune { indexSet_.createFatherIndex(en); } + //! \todo Please doc me! void resizeTmp () { ListIteratorType it = memList_.begin(); @@ -464,6 +470,7 @@ namespace Dune { } } + //! \todo Please doc me! void resize() { indexSet_.resize(); @@ -500,6 +507,7 @@ namespace Dune { } } + //! \todo Please doc me! void dofCompress() { // keeps the old indices for a while @@ -556,6 +564,7 @@ namespace Dune { bool read_xdr( const char * filename, int timestep); }; + //! \todo Please doc me! template <class GridType,class IndexSetType> inline bool DofManager<GridType,IndexSetType>:: write(const FileFormatType ftype, const char *filename, int timestep) @@ -563,6 +572,7 @@ namespace Dune { assert(ftype == xdr); return write_xdr(filename,timestep); } + //! \todo Please doc me! template <class GridType,class IndexSetType> inline bool DofManager<GridType,IndexSetType>:: read(const char * filename , int timestep) @@ -570,6 +580,7 @@ namespace Dune { return read_xdr(filename,timestep); } + //! \todo Please doc me! template <class GridType,class IndexSetType> inline bool DofManager<GridType,IndexSetType>:: write_xdr(const char * filename , int timestep) @@ -578,6 +589,7 @@ namespace Dune { return indexSet_.write_xdr(filename,timestep); } + //! \todo Please doc me! template <class GridType,class IndexSetType> inline bool DofManager<GridType,IndexSetType>:: read_xdr(const char * filename , int timestep) diff --git a/fem/feop.hh b/fem/feop.hh index 665ee588e0c3b3ad3e33c3511f1e9d251a028c06..907dafdb602f155f75ecbd9786018280c9844102 100644 --- a/fem/feop.hh +++ b/fem/feop.hh @@ -13,9 +13,10 @@ namespace Dune { /** @defgroup FEOpInterface FEOpInterface @ingroup DiscreteOperator - FEopInterface is the interface for the definition of a finite element operator. + @{ */ + //! \brief FEopInterface is the interface for the definition of a finite element operator. template <class DiscFunctionType, class FEOpImp> class FEOpInterface : public Operator<typename DiscFunctionType::DomainFieldType, @@ -39,7 +40,7 @@ namespace Dune { /** @} end documentation group */ - + //! \todo Please doc me! template <class DiscFunctionType, class FEOpImp> class FEOp : public FEOpInterface<DiscFunctionType,FEOpImp> , public LocalOperatorDefault <DiscFunctionType,DiscFunctionType, typename @@ -50,18 +51,19 @@ namespace Dune { public: enum OpMode { ON_THE_FLY, ASSEMBLED }; + //! \todo Please doc me! FEOp( const typename DiscFunctionType::FunctionSpaceType &fuspace, OpMode opMode = ASSEMBLED, bool leaf = true ) : functionSpace_( fuspace ), matrix_ (0), matrix_assembled_( false ), arg_ ( NULL ), dest_ (NULL) , opMode_(opMode), leaf_(leaf) {}; + //! \todo Please doc me! ~FEOp( ) { if ( matrix_ ) delete matrix_; }; public: //! methods for global application of the operator - void initialize(){ //std::cout << "Matrix reinitialized!" << std::endl ; @@ -70,9 +72,11 @@ namespace Dune { matrix_ = 0; }; + //! \todo Please doc me! virtual void initLevel ( int level ) const {}; + //! \todo Please doc me! void apply( const DiscFunctionType &arg, DiscFunctionType &dest) const { assert( opMode_ == ASSEMBLED ); @@ -88,14 +92,12 @@ namespace Dune { public: - //! methods for local application of the operator - //! isLeaf returns true if Leafiterator should be used, else false is returned bool isLeaf (){ return (leaf_); }; - // store argument and destination + //! store argument and destination void prepareGlobal(const DiscFunctionType &Arg, DiscFunctionType & Dest ) { arg_ = &Arg.argument(); @@ -104,13 +106,13 @@ namespace Dune { dest.clear(); }; - // set argument and dest to NULL + //! set argument and dest to NULL void finalizeGlobal() { arg_ = NULL; dest_ = NULL; }; - // makes local multiply on the fly + //! makes local multiply on the fly template <class EntityType> void applyLocal ( EntityType &en ) const { @@ -180,7 +182,7 @@ namespace Dune { }; // end applyLocal - // corrects the mapping in order to take into account dirichlet boundary conditions + //! corrects the mapping in order to take into account dirichlet boundary conditions template <class EntityType> void finalizeLocal ( EntityType &en ) const { @@ -267,19 +269,20 @@ namespace Dune { }; // end finalizeLocal protected: - // the corresponding function_space + //! the corresponding function_space const typename DiscFunctionType::FunctionSpaceType & functionSpace_; - // the representing matrix + //! the representing matrix mutable MatrixType *matrix_ ; - // is matrix assembled + //! is matrix assembled mutable bool matrix_assembled_; - // storage of argument and destination + //! storage of argument and destination const DiscFunctionType * arg_; DiscFunctionType * dest_; + //! \todo Please doc me! MatrixType* newEmptyMatrix( ) const { typedef typename DiscFunctionType::FunctionSpaceType::GridType GridType; @@ -289,6 +292,7 @@ namespace Dune { 15 * (dim-1) , 0.0 ); }; + //! \todo Please doc me! void assemble ( ) const { typedef typename DiscFunctionType::FunctionSpace FunctionSpaceType; @@ -336,7 +340,7 @@ namespace Dune { matrix_assembled_ = true; }; - + //! \todo Please doc me! template <class GridIteratorType, class MatrixImp> void assembleOnGrid ( GridIteratorType &it, GridIteratorType &endit, MatrixImp &mat) const { @@ -363,7 +367,7 @@ namespace Dune { } } - + //! \todo Please doc me! template <class GridIteratorType> void bndCorrectOnGrid ( GridIteratorType &it, GridIteratorType &endit) const { diff --git a/fem/feoperator.hh b/fem/feoperator.hh index 38a71c416a0052372c2784faa496f44329d61f1c..0715f9722deb048eeda9f0273487e8b8ecb348af 100644 --- a/fem/feoperator.hh +++ b/fem/feoperator.hh @@ -10,8 +10,7 @@ namespace Dune { static const int edge[4][2] = { {0,2}, {1,3} , {0,1} , {2,3}}; - /** \brief ??? - * \todo Please doc me! + /** \brief Base class for local Finite Element operators */ template <class DiscFunctionType, class MatrixType, class FEOpImp> class FiniteElementOperatorInterface @@ -60,7 +59,7 @@ namespace Dune { const FEOpImp &asImp( ) const { return static_cast<const FEOpImp&>( *this ); } }; - /** \brief ??? + /** \brief Base class for local Finite Element operators * \todo Please doc me! */ template <class DiscFunctionType, class MatrixType, class FEOpImp> @@ -196,7 +195,7 @@ namespace Dune { matrix_assembled_ = true; } - //! + //! \todo Please doc me! void multiplyOnTheFly( const DiscFunctionType &arg, DiscFunctionType &dest ) const { typedef typename DiscFunctionType::FunctionSpace FunctionSpaceType; diff --git a/fem/inverseoperators.hh b/fem/inverseoperators.hh index a3a09dcee652cf4a50511bb2bbdf2cd12798dcf8..d842b2f72258e701afe01b36b594e74a92d477b2 100644 --- a/fem/inverseoperators.hh +++ b/fem/inverseoperators.hh @@ -8,6 +8,8 @@ namespace Dune { + /** \brief Inversion operator using CG algorithm + */ template <class DiscreteFunctionType> class CGInverseOperator : public Operator< typename DiscreteFunctionType::DomainFieldType, @@ -20,12 +22,16 @@ namespace Dune { DiscreteFunctionType,DiscreteFunctionType> MappingType; public: - - CGInverseOperator( const MappingType & op , - double redEps , double absLimit , int maxIter , int verbose ) + /** \todo Please doc me! */ + CGInverseOperator( const MappingType & op, + double redEps, + double absLimit, + int maxIter, + int verbose ) : op_(op), _redEps ( redEps ), epsilon_ ( absLimit*absLimit ) , maxIter_ (maxIter ) , _verbose ( verbose ) {} + /** \todo Please doc me! */ void apply( const DiscreteFunctionType& arg, DiscreteFunctionType& dest ) const { typedef typename DiscreteFunctionType::FunctionSpace FunctionSpaceType; @@ -98,7 +104,7 @@ namespace Dune { int _verbose ; }; - + /** \todo Please doc me! */ template <class DiscreteFunctionType, class OperatorType> class CGInverseOp : public Operator< typename DiscreteFunctionType::DomainFieldType, @@ -106,13 +112,18 @@ namespace Dune { DiscreteFunctionType,DiscreteFunctionType> { public: - - CGInverseOp( OperatorType & op , double redEps , double absLimit , int maxIter , int verbose ) : op_(op), - _redEps ( redEps ), epsilon_ ( absLimit*absLimit ) , - maxIter_ (maxIter ) , _verbose ( verbose ) , - r_(0), p_(0), h_(0) - {} - + /** \todo Please doc me! */ + CGInverseOp( OperatorType & op , double redEps , double absLimit , int maxIter , int verbose ) : + op_(op), + _redEps ( redEps ), + epsilon_ ( absLimit*absLimit ) , + maxIter_ (maxIter ) , + _verbose ( verbose ) , + r_(0), + p_(0), + h_(0) {} + + /** \todo Please doc me! */ ~CGInverseOp() { if(p_) delete p_; @@ -120,6 +131,7 @@ namespace Dune { if(h_) delete h_; } + /** \todo Please doc me! */ void apply( const DiscreteFunctionType& arg, DiscreteFunctionType& dest ) const { typedef typename DiscreteFunctionType::FunctionSpace FunctionSpaceType; @@ -182,6 +194,7 @@ namespace Dune { op_.finalizeGlobal(); } + /** \todo Please doc me! */ void operator () ( const DiscreteFunctionType& arg, DiscreteFunctionType& dest ) const { this->apply(arg,dest); diff --git a/fem/lagrangebase.hh b/fem/lagrangebase.hh index 1f12d56400f3ea620cd65a8048fde3af0779876c..973641f26cc34a9f1ea8f9cdc6a8eca29225641e 100644 --- a/fem/lagrangebase.hh +++ b/fem/lagrangebase.hh @@ -162,7 +162,7 @@ namespace Dune { //******************************************************************* // - // DGSpace using Lagrange basis functions, used for visualisation + //! DGSpace using Lagrange basis functions, used for visualisation // //******************************************************************* template< class FunctionSpaceType, class GridType,int polOrd, class @@ -221,6 +221,7 @@ namespace Dune { } }; + //! Destructor ~LagrangeDGSpace () { if (mapper_) delete mapper_; } @@ -522,7 +523,7 @@ namespace Dune { //******************************************************************* // - // EdgeBaseFunctionSet + //! EdgeBaseFunctionSet // //******************************************************************* template<class FunctionSpaceType, ElementType ElType, int polOrd > @@ -566,6 +567,7 @@ namespace Dune { //! return number of base function for this base function set int getNumberOfBaseFunctions() const { return numOfBaseFct; }; + //! \todo Please doc me! int getNumberOfDiffrentBaseFunctions () const { return (int) (numOfBaseFct); @@ -575,7 +577,7 @@ namespace Dune { FieldVector<EdgeBaseFunctionType*, numOfBaseFct> baseFuncList_; }; - + //! \todo Please doc me! template <class GridType, int polOrd> class RTMapper : public DofMapperDefault < RTMapper <GridType,polOrd> > @@ -583,8 +585,11 @@ namespace Dune { int numberOfDofs_; int level_; public: + + //! \todo Please doc me! RTMapper ( int numDof , int level ) : numberOfDofs_ (numDof), level_(level) {}; + //! \todo Please doc me! int size (const GridType &grid ) const { // return number of entities * number of local faces @@ -600,6 +605,7 @@ namespace Dune { }; // end class RTMapper + //! \todo Please doc me! template< class FunctionSpaceType, class GridType, int polOrd > class RaviartThomasSpace : public DiscreteFunctionSpaceInterface < FunctionSpaceType , GridType, @@ -781,7 +787,7 @@ namespace Dune { //******************************************************************** // - // EdgeSpace + //! EdgeSpace // //******************************************************************** template< class FunctionSpaceType, class GridType, int polOrd > @@ -816,6 +822,7 @@ namespace Dune { int level_; public: + //! \todo Please doc me! EdgeSpace ( GridType & g , int level ) : DiscreteFunctionSpaceType (g,id) , level_ (level) { diff --git a/fem/lagrangebase/lagrangebasefunctions.hh b/fem/lagrangebase/lagrangebasefunctions.hh index 42c64263d596c07f354170e1c0095018eede5271..c27003fb41780a13732e8d655266728946b04b21 100644 --- a/fem/lagrangebase/lagrangebasefunctions.hh +++ b/fem/lagrangebase/lagrangebasefunctions.hh @@ -142,6 +142,7 @@ namespace Dune { int baseNum_; public: + //! \todo Please doc me! LagrangeBaseFunction ( FunctionSpaceType & f , int baseNum ) : BaseFunctionInterface<FunctionSpaceType> (f) { @@ -171,6 +172,7 @@ namespace Dune { phi += factor[i] * x[i-1]; } + //! \todo Please doc me! virtual void evaluate ( const FieldVector<deriType, 1> &diffVariable, const Domain & x, Range & phi) const { @@ -180,6 +182,7 @@ namespace Dune { phi = factor[num+1]; } + //! \todo Please doc me! virtual void evaluate ( const DiffVariable<2>::Type &diffVariable, const Domain & x, Range & phi) const { @@ -192,8 +195,8 @@ namespace Dune { // //! LagrangeBaseFunction for tetrahedrons and polynom order = 1 //! - // see reference element Dune tetrahedra - // + //! see reference element Dune tetrahedra + //! //***************************************************************** template<class FunctionSpaceType> class LagrangeBaseFunction < FunctionSpaceType , tetrahedron , 1 > @@ -205,6 +208,7 @@ namespace Dune { RangeField factor[4]; public: + //! \todo Please doc me! LagrangeBaseFunction ( FunctionSpaceType & f , int baseNum ) : BaseFunctionInterface<FunctionSpaceType> (f) { @@ -346,24 +350,24 @@ namespace Dune { // //! Trilinear BaseFunctions for hexahedrons //! v(x,y,z) = (alpha + beta * x) * ( gamma + delta * y) * (omega + eps * z) - // - // - // local node numbers and face numbers for DUNE hexahedrons - // - // 6---------7 - // /. /| - // / . 5 / | - // / . / | - // 4---------5 | <-- 3 (back side) - // 0 --> | . | 1 | - // | 2.....|...3 (1,1,0) - // | . | / - // | . 2 | / <-- 4 (front side) - // |. |/ - // 0---------1 - // (0,0,0) (1,0,0) - // this is the DUNE local coordinate system for hexahedrons - // + //! + //! + //! local node numbers and face numbers for DUNE hexahedrons + //! + //! 6---------7 + //! /. /| + //! / . 5 / | + //! / . / | + //! 4---------5 | <-- 3 (back side) + //! 0 --> | . | 1 | + //! | 2.....|...3 (1,1,0) + //! | . | / + //! | . 2 | / <-- 4 (front side) + //! |. |/ + //! 0---------1 + //! (0,0,0) (1,0,0) + //! this is the DUNE local coordinate system for hexahedrons + //! //********************************************************************* template<class FunctionSpaceType> class LagrangeBaseFunction<FunctionSpaceType,hexahedron,1> diff --git a/fem/lagrangebase/lagrangemapper.hh b/fem/lagrangebase/lagrangemapper.hh index 5445d0f002902c5fa828995cfef9292959a18e7f..8c52377fe5745728383fdacde1c0e0eeed3b76d4 100644 --- a/fem/lagrangebase/lagrangemapper.hh +++ b/fem/lagrangebase/lagrangemapper.hh @@ -24,11 +24,14 @@ namespace Dune { int level_; IndexSetType & indexSet_; public: + //! Constructor LagrangeMapper ( IndexSetType & is, int numLocalDofs , int level ) : numLocalDofs_ (numLocalDofs) , level_(level) , indexSet_ (is) {} + //! Destructor virtual ~LagrangeMapper () {} + //! \todo Please doc me! int size () const { return this->codimsize(numCodims-1); @@ -55,13 +58,16 @@ namespace Dune { return (dimrange* indexSet_.template index<codim> (en,locNum) ) + locDim; } + //! \todo Please doc me! virtual void calcInsertPoints () {}; + //! \todo Please doc me! virtual int numberOfDofs () const { return numLocalDofs_; } + //! \todo Please doc me! virtual int newSize() const { diff --git a/fem/norms/l2norm.hh b/fem/norms/l2norm.hh index ee9c08af9ccc550a0acc349056950d667ff16b90..7b94c29fc8af811c10d5238d0d1fffe58cc4af8a 100644 --- a/fem/norms/l2norm.hh +++ b/fem/norms/l2norm.hh @@ -15,6 +15,8 @@ namespace Dune { typedef typename DiscreteFunctionType::FunctionSpaceType FunctionSpaceType; public: + + //! \todo Please doc me! double compute (const DiscreteFunctionType &discFunc) { diff --git a/fem/operator/laplace.hh b/fem/operator/laplace.hh index 9aa96b3fb80fd7234db74a316041a59999b60d70..471bf3fde5e2c2f3075ea2d2b87b02e41e6d3dab 100644 --- a/fem/operator/laplace.hh +++ b/fem/operator/laplace.hh @@ -91,7 +91,7 @@ namespace Dune 15 * dim); } - //! ??? + //! Prepares the local operator before calling apply() void prepareGlobal ( const DiscFunctionType &arg, DiscFunctionType &dest ) { this->arg_ = &arg.argument(); diff --git a/grid/albertagrid/agcommunicator.hh b/grid/albertagrid/agcommunicator.hh index 781ee90f48ea565eb3d756d013176e6a0c806274..b02796a7d4bffeb9c74e20e8bf7c88860ae80129 100644 --- a/grid/albertagrid/agcommunicator.hh +++ b/grid/albertagrid/agcommunicator.hh @@ -19,13 +19,13 @@ namespace Dune { static const int COMMUNICATOR_COMM_TAG = 457; + +#if defined(HAVE_MPI) && defined(ALBERT_USES_MPI) /*! ProcListElement describes the link between two processors. It contains all needed information for cummunication between these two procs. */ - -#if defined(HAVE_MPI) && defined(ALBERT_USES_MPI) template <class BufferType> class ProcListElement { @@ -171,24 +171,21 @@ namespace Dune { #endif - /*! - AlbertGridCommunicator organizes the communication of AlbertGrid on - diffrent processors. - */ - - + //! \todo Please doc me! template <class T> class GathScatt { T fake; public: + //! \todo Please doc me! template <class VecType> void gather (VecType & t, int index ) { fake = t[index]; } + //! \todo Please doc me! template <class VecType> void scatter(VecType & t , int index) { @@ -198,6 +195,10 @@ namespace Dune { }; #if defined(HAVE_MPI) && defined(ALBERT_USES_MPI) + /*! + AlbertGridCommunicator organizes the communication of AlbertGrid on + diffrent processors. + */ template <class GridType, class IndexSetType> class AlbertGridCommunicator { diff --git a/grid/albertagrid/agindex.hh b/grid/albertagrid/agindex.hh index 05a2440211d7f2eaaa0b40828aec4467817821d2..54b9eb99bf5b503b22656923339698afcca911a8 100644 --- a/grid/albertagrid/agindex.hh +++ b/grid/albertagrid/agindex.hh @@ -9,6 +9,7 @@ namespace Dune { enum INDEXSTATE { NEW, OLD , USED, UNUSED }; + //! \todo Please doc me! template <class GridType> class SerialIndexSet { @@ -49,12 +50,13 @@ namespace Dune { } //template <class GridType> + //! \todo Please doc me! void resize (GridType & grid) { this->resize ( grid.global_size (0)); } - // calculate new highest index + //! calculate new highest index void resize (int newMaxInd ) { if( globalIndex_.size() < newMaxInd ) @@ -95,6 +97,7 @@ namespace Dune { //std::cout << nextFreeIndex_ << " freeInd \n"; } + //! \todo Please doc me! void finish () { for(int i=0; i<state_.size(); i++) @@ -107,6 +110,7 @@ namespace Dune { std::cout << maxIndex() << " max Index of Set \n"; } + //! \todo Please doc me! int maxIndex () const { int max = 0; @@ -117,8 +121,7 @@ namespace Dune { return max; } - - + //! \todo Please doc me! int searchNext () { if(nextIndex_ >= maxIndex_) @@ -136,14 +139,14 @@ namespace Dune { return globalIndex_[nextIndex_-1]; } - // memorise index + //! memorise index template <class EntityType> void insert (EntityType & en) { this->insert ( en.global_index() ); } - // memorise index + //! memorise index void insert (int num ) { assert(num < globalIndex_.size() ); @@ -166,6 +169,7 @@ namespace Dune { state_[num] = USED; } + //! \todo Please doc me! void print ( ) const { std::cout << "Size " << globalIndex_.size() << "\n"; @@ -176,6 +180,7 @@ namespace Dune { } } + //! \todo Please doc me! bool write_xdr(const char * filename, int timestep) { FILE *file; @@ -198,6 +203,7 @@ namespace Dune { fclose(file); } + //! \todo Please doc me! bool read_xdr(const char * filename , int timestep) { FILE *file; @@ -223,6 +229,7 @@ namespace Dune { return true; } + //! \todo Please doc me! bool processXdr(XDR *xdrs) { xdr_int ( xdrs, &maxIndex_ ); @@ -233,12 +240,14 @@ namespace Dune { return true; } + //! \todo Please doc me! int size () const { return nextFreeIndex_; //return grid_.global_size(0); } + //! \todo Please doc me! bool isNew (int index) const { if(state_[index] == NEW) @@ -247,6 +256,7 @@ namespace Dune { return false; } + //! \todo Please doc me! int operator [] (int i) const { //printf(" gIndex_[%d] = %d \n",i,globalIndex_[i]); diff --git a/grid/albertagrid/agmemory.hh b/grid/albertagrid/agmemory.hh index 810cadc3ef7c6dda4c892785255ec2f3361d74cc..8018ee6c599adb604baeff611866b90691884fea 100644 --- a/grid/albertagrid/agmemory.hh +++ b/grid/albertagrid/agmemory.hh @@ -6,13 +6,14 @@ namespace Dune { - // organize the memory management for entitys used by the NeighborIterator + //! organize the memory management for entitys used by the NeighborIterator template <class Object> class MemoryProvider { public: typedef Object ObjectType; + //! \todo Please doc me! struct ObjectEntity { ObjectEntity () : next (0), item (0) {}; @@ -21,30 +22,30 @@ namespace Dune Object *item; }; - // freeEntity_ = NULL + //! freeEntity_ = NULL MemoryProvider() : freeEntity_ (0) {}; - // do not copy pointers + //! do not copy pointers MemoryProvider(const MemoryProvider<Object> & org) : freeEntity_ (0) {} - // call deleteEntity + //! call deleteEntity ~MemoryProvider (); - // delete recursive all free ObjectEntitys + //! delete recursive all free ObjectEntitys void deleteEntity(ObjectEntity *obj); - // i.e. return pointer to Entity + //! i.e. return pointer to Entity template <class GridType> ObjectEntity *getNewObjectEntity(GridType &grid, int level); - // i.e. return pointer to Entity + //! i.e. return pointer to Entity template <class FuncSpaceType, class DofVecType> ObjectEntity *getNewObjectEntity(const FuncSpaceType &f, DofVecType &d); - // i.e. get pointer to element + //! i.e. get pointer to element ObjectEntity * getNewObjectEntity(); - // free, move element to stack, returns NULL + //! free, move element to stack, returns NULL ObjectEntity * freeObjectEntity (ObjectEntity *obj); private: @@ -54,7 +55,7 @@ namespace Dune //************************************************************************ // - // MemoryProvider + // MemoryProvider implementation // //************************************************************************ template <class Object> template <class GridType> diff --git a/grid/bsgrid/datahandle.hh b/grid/bsgrid/datahandle.hh index a41e59506e9213c7c8b426c5f557b7d086d7b93f..ec53e99426252aa037eb0feb653c293a3e7a9a62 100644 --- a/grid/bsgrid/datahandle.hh +++ b/grid/bsgrid/datahandle.hh @@ -16,6 +16,7 @@ namespace BernhardSchuppGrid { typedef ObjectStream ObjectStreamType; public: + //! Constructor GatherScatterImpl(GridType & grid, EntityType & en, DataCollectorType & dc) : grid_(grid), en_(en), dc_(dc) {} @@ -40,14 +41,14 @@ namespace BernhardSchuppGrid { dc_.xtractData(str,en_); } - // write Data of one lement to stream + //! write Data of one lement to stream virtual void sendData ( ObjectStreamType & str , const HElementType & elem ) { en_.setElement( const_cast<HElementType &> (elem) ); dc_.scatter(str, en_); } - // read Data of one element from stream + //! read Data of one element from stream virtual void recvData ( ObjectStreamType & str , HGhostType & ghost ) { // set ghost as entity diff --git a/grid/bsgrid/leafwalk.hh b/grid/bsgrid/leafwalk.hh index ecdd4b8f8ae0dda6fca413c8c5012e4e76966a84..306ec19e277a50fc6b350dea7c5f3617e4cd63cd 100644 --- a/grid/bsgrid/leafwalk.hh +++ b/grid/bsgrid/leafwalk.hh @@ -3,20 +3,22 @@ #ifndef __BSGRID_LEAFWALK_HH__ #define __BSGRID_LEAFWALK_HH__ -// new rule for Dune LeafIterator -// all entities with hav either the level or are leaf entities with one -// level <= the desired level +//! new rule for Dune LeafIterator +//! all entities with hav either the level or are leaf entities with one +//! level <= the desired level template < class A > class leaf_or_has_level { int lvl; public: // Constructor storing the level leaf_or_has_level (int i = 0) : lvl (i) { } - + //! \todo Please doc me! int operator () (const A * x) const { return ((x->level () == lvl) || (x->leaf () && (x->level () <= lvl) )) ? 1 : 0 ; } + + //! \todo Please doc me! int operator () (const A & x) const { return ((x.level () == lvl) || (x.leaf () && (x.level () <= lvl) )) ? 1 : 0 ; diff --git a/grid/bsgrid/myautoptr.hh b/grid/bsgrid/myautoptr.hh index 39f1f0559e10a69739dad75b70bd8819b11b2e75..a738b10369ed44e9ff18158f5b8bf4e35b5b2011 100644 --- a/grid/bsgrid/myautoptr.hh +++ b/grid/bsgrid/myautoptr.hh @@ -3,19 +3,20 @@ #ifndef __DUNE_BSGRID_MYAUTOPTR_HH__ #define __DUNE_BSGRID_MYAUTOPTR_HH__ -template <class Pointer> -class AutoPointer -{ - //! Pointer to Object - Pointer * ptr_; +/** \brief An auto pointer class *\ + template <class Pointer> + class AutoPointer + { + //! Pointer to Object + Pointer * ptr_; - //! number of copies that exist from this Object - mutable int *refCount_; + //! number of copies that exist from this Object + mutable int *refCount_; -public: - //! if a copy is made, the refcout is increased - inline AutoPointer(const AutoPointer<Pointer> & copy) - { + public: + //! if a copy is made, the refcount is increased + inline AutoPointer(const AutoPointer<Pointer> & copy) + { ptr_ = 0; refCount_ = 0; if(copy.ptr_) @@ -24,14 +25,14 @@ public: refCount_ = copy.refCount_; (*refCount_)++; } - } + } - //! initialize the member variables - AutoPointer() : ptr_ (0) , refCount_ (0) {} + //! initialize the member variables + AutoPointer() : ptr_ (0) , refCount_ (0) {} - // store object pointer and creat refCount - void store (Pointer * ptr) - { + // store object pointer and create refCount + void store (Pointer * ptr) + { assert(ptr_ == 0); ptr_ = ptr; if(ptr_) @@ -40,11 +41,11 @@ public: refCount_ = tmp; (*refCount_) = 1; } - } + } - //! set Stack free, if no more refences exist - ~AutoPointer() - { + //! set Stack free, if no more refences exist + ~AutoPointer() + { if(refCount_ && ptr_) { (*refCount_)--; @@ -54,31 +55,32 @@ public: if(refCount_) delete refCount_; } } - } + } - // return object reference - Pointer & operator * () const - { + //! return object reference + Pointer & operator * () const + { assert( ptr_ != 0); return *ptr_; - } + } - // return object pointer - Pointer * operator -> () const - { + //! return object pointer + Pointer * operator -> () const + { assert( ptr_ != 0); return ptr_; - } + } -private: - //! if copy is made than one more Reference exists - AutoPointer<Pointer> & operator = (const AutoPointer<Pointer> & copy) - { + private: + //! if copy is made than one more Reference exists + AutoPointer<Pointer> & operator = (const AutoPointer<Pointer> & copy) + { assert(false); return (*this); - } -}; + } + }; -#endif + #endif + diff --git a/grid/common/indexstack.hh b/grid/common/indexstack.hh index 6aa6de82d53890af29ff89946339eaab17c58855..098c80ac5f1b30412ffc45010180aba7ae20fba5 100644 --- a/grid/common/indexstack.hh +++ b/grid/common/indexstack.hh @@ -15,6 +15,7 @@ namespace Dune { + //! \todo Please doc me! template <class T, int length> class IndexStack { diff --git a/grid/onedgrid/onedgridhieriterator.hh b/grid/onedgrid/onedgridhieriterator.hh index 74181a06da5f0d10a1132148611420a73c4ae0ff..b1ac1bb6a505fcd7eab2562600c1cfc63c122c15 100644 --- a/grid/onedgrid/onedgridhieriterator.hh +++ b/grid/onedgrid/onedgridhieriterator.hh @@ -24,7 +24,6 @@ namespace Dune { This is redundant but important for memory efficient implementations of unstru hierarchically refined meshes. */ - template<int dim, int dimworld> class OneDGridHierarchicIterator : public HierarchicIteratorDefault <dim,dimworld, OneDCType, diff --git a/grid/uggrid/ugfunctions.hh b/grid/uggrid/ugfunctions.hh index 202b83d9aa02e34336d76c6419e2e5c63a588094..5fe8c823169023168d8127b03e230a80e31e2eb4 100644 --- a/grid/uggrid/ugfunctions.hh +++ b/grid/uggrid/ugfunctions.hh @@ -10,7 +10,7 @@ #include "ugtypes.hh" namespace Dune { - + //! \todo Please doc me! template<int dim> class UG_NS { public: @@ -36,7 +36,7 @@ namespace Dune { CORNER_COORDINATES(theElement, n, x); #endif } - + //! \todo Please doc me! static int Sides_Of_Elem(typename TargetType<0,dim>::T* theElement) { #ifdef _3 using UG3d::nb_offset; @@ -58,7 +58,7 @@ namespace Dune { #endif return NBELEM(theElement, nb); } - + //! \todo Please doc me! static int Edges_Of_Elem(const typename TargetType<0,dim>::T* theElement) { #ifdef _2 using UG2d::element_descriptors; @@ -67,7 +67,7 @@ namespace Dune { #endif return EDGES_OF_ELEM(theElement); } - + //! \todo Please doc me! static int Corners_Of_Elem(const typename TargetType<0,dim>::T* theElement) { #ifdef _2 using UG2d::element_descriptors; @@ -76,7 +76,7 @@ namespace Dune { #endif return CORNERS_OF_ELEM(theElement); } - + //! \todo Please doc me! static int Corners_Of_Side(const typename TargetType<0,dim>::T* theElement, int side) { #ifdef _2 using UG2d::element_descriptors; @@ -85,7 +85,7 @@ namespace Dune { #endif return CORNERS_OF_SIDE(theElement, side); } - + //! \todo Please doc me! static int Corner_Of_Side(const typename TargetType<0,dim>::T* theElement, int side, int corner) { #ifdef _2 using UG2d::element_descriptors; @@ -100,7 +100,7 @@ namespace Dune { return TAG(theElement); } - + //! \todo Please doc me! static void Local_To_Global(int n, DOUBLE** y, const FieldVector<double, dim>& local, FieldVector<double, dim>& global) { @@ -134,7 +134,7 @@ namespace Dune { #endif return CORNER(theElement, i); } - + //! \todo Please doc me! static typename TargetType<0,dim>::T* EFather(typename TargetType<0,dim>::T* theElement) { #ifdef _3 using UG3d::ELEMENT; @@ -146,7 +146,7 @@ namespace Dune { return EFATHER(theElement); } - + //! \todo Please doc me! static void InitUg(int* argcp, char*** argvp) { #ifdef _3 UG3d::InitUg(argcp, argvp); @@ -156,6 +156,7 @@ namespace Dune { } #ifdef _3 + //! \todo Please doc me! static void* CreateBoundaryValueProblem(const char* BVPname, int numOfCoeffFunc, UG3d::CoeffProcPtr coeffs[], @@ -165,6 +166,7 @@ namespace Dune { numOfUserFct, userfct); } #else + //! \todo Please doc me! static void* CreateBoundaryValueProblem(const char* BVPname, int numOfCoeffFunc, UG2d::CoeffProcPtr coeffs[], @@ -174,7 +176,7 @@ namespace Dune { numOfUserFct, userfct); } #endif - + //! \todo Please doc me! static typename UGTypes<dim>::MultiGridType* GetMultigrid(const char* name) { #ifdef _3 return UG3d::GetMultigrid(name); @@ -182,7 +184,7 @@ namespace Dune { return UG2d::GetMultigrid(name); #endif } - + //! \todo Please doc me! static void SetSubdomain(typename TargetType<0,dim>::T* theElement, int id) { #ifdef _2 using UG2d::control_entries; @@ -195,7 +197,7 @@ namespace Dune { } }; - + //! \todo Please doc me! template <int codim, int dimworld> class UGGridSubEntityFactory { // public: diff --git a/istl/remoteindices.hh b/istl/remoteindices.hh index bebe1c50b7329fdc1f7cd665c1590f7670494cb1..bb5111ef2c8df7245320d671c4c578e058628ce6 100644 --- a/istl/remoteindices.hh +++ b/istl/remoteindices.hh @@ -151,6 +151,8 @@ namespace Dune { }; + + //! \todo Please doc me! template<typename T> class MPITraits<ParallelLocalIndex<T> > { @@ -161,6 +163,7 @@ namespace Dune { }; + //! \todo Please doc me! template<typename TG, typename TA> class MPITraits<IndexPair<TG,ParallelLocalIndex<TA> > > { @@ -558,6 +561,7 @@ namespace Dune { typedef typename Map::iterator ConstRealIterator; + //! \todo Please doc me! iterator(const RealIterator& iter, const ConstRealIterator& end, TG& index) : iter_(iter), end_(end), index_(index) { @@ -566,10 +570,12 @@ namespace Dune { ++iter_; } + //! \todo Please doc me! iterator(const iterator& other) : iter_(other.iter_), end_(other.end_), index_(other.index_) { } + //! \todo Please doc me! iterator& operator++() { ++iter_; @@ -580,26 +586,31 @@ namespace Dune { return *this; } + //! \todo Please doc me! const std::pair<int,RemoteIndex>& operator*() const { return *(iter_->second.first); } + //! \todo Please doc me! int process() const { return iter_->first; } + //! \todo Please doc me! const RemoteIndex* operator->() const { return iter_->second.first.operator->(); } + //! \todo Please doc me! bool operator==(const iterator& other) { return other.iter_==iter_; } + //! \todo Please doc me! bool operator!=(const iterator& other) { return other.iter_!=iter_; diff --git a/solver/common/numproc.hh b/solver/common/numproc.hh index 28cdfafa89f57760cc7014dc293cd99d7960fc2c..80e9b92b77e38585c790d4c4fd4df80669bd6eb7 100644 --- a/solver/common/numproc.hh +++ b/solver/common/numproc.hh @@ -6,6 +6,7 @@ namespace Dune { + //! \todo Please doc me! class NumProc { public: diff --git a/solver/gaussseidelstep.hh b/solver/gaussseidelstep.hh index 418998465c06654b4c0ba29a92fdb8be9959c8c4..58906dd2a1fbda70d12d12ad578aa77c93fdbb34 100644 --- a/solver/gaussseidelstep.hh +++ b/solver/gaussseidelstep.hh @@ -7,6 +7,7 @@ namespace Dune { + //! \todo Please doc me! template<class OperatorType, class DiscFuncType> class GaussSeidelStep : public IterationStep<OperatorType, DiscFuncType> { @@ -23,8 +24,10 @@ namespace Dune { //! Perform one iteration virtual void iterate(); + //! \todo Please doc me! virtual DiscFuncType getSol(); + //! \todo Please doc me! double residual(int index) const; };