Am Montag, 13. Mai 2022, finden Wartungsarbeiten am Gitlab-Server (Update auf neue Version statt). Der Dienst wird daher am Montag für einige Zeit nicht verfügbar sein.
On Monday, May 13th 2022, the Gitlab server will be updated. The service will therefore not be accessible for some time on Monday.

Commit 1d1ddecc authored by Praetorius, Simon's avatar Praetorius, Simon
Browse files

Merge branch 'issue/documentation' into 'develop'

added documentation of DOFVector and DOFMatrix and improved the documentation of some other classes

See merge request spraetor/dune-amdis!85
parents 4bf4338f 40f931c6
...@@ -36,6 +36,8 @@ namespace AMDiS ...@@ -36,6 +36,8 @@ namespace AMDiS
* Since an intersection has a geometry (and localGeometry) different from the * Since an intersection has a geometry (and localGeometry) different from the
* geometry (and localGeometry) of the entity it belongs to, these objects * geometry (and localGeometry) of the entity it belongs to, these objects
* are provided as well. * are provided as well.
*
* \tparam LC LocalContext, either element or intersection
**/ **/
template <class LC> template <class LC>
struct ContextGeometry struct ContextGeometry
...@@ -63,22 +65,25 @@ namespace AMDiS ...@@ -63,22 +65,25 @@ namespace AMDiS
{} {}
public: public:
/// Return the bound element (entity of codim 0)
Element const& element() const Element const& element() const
{ {
return *element_; return *element_;
} }
/// Return the LocalContext, either the element or an intersection.
LocalContext const& localContext() const LocalContext const& localContext() const
{ {
return *localContext_; return *localContext_;
} }
/// Return the geometry of the \ref Element
Geometry const& geometry() const Geometry const& geometry() const
{ {
return *geometry_; return *geometry_;
} }
/// Return the geometry of the element, or geometryInInside of the intersection
LocalGeometry const& localGeometry() const LocalGeometry const& localGeometry() const
{ {
return localGeometry_impl(IsEntity{}); return localGeometry_impl(IsEntity{});
...@@ -87,7 +92,7 @@ namespace AMDiS ...@@ -87,7 +92,7 @@ namespace AMDiS
public: public:
/// Coordinate `p` given in `localGeometry`, transformed to coordinate in `geometry`. /// Coordinate `p` given in `localGeometry`, transformed to coordinate in geometry of the LocalContext.
template <class Coordinate> template <class Coordinate>
decltype(auto) local(Coordinate const& p) const decltype(auto) local(Coordinate const& p) const
{ {
......
...@@ -35,7 +35,7 @@ namespace AMDiS ...@@ -35,7 +35,7 @@ namespace AMDiS
* **Example:** * **Example:**
* ``` * ```
* auto v = makeDOFVectorView(prob.solutionVector(),0); * auto v = makeDOFVectorView(prob.solutionVector(),0);
* v.interpolate([](auto const& x) { return x[0]; }); * v.interpolate_noalias([](auto const& x) { return x[0]; });
* ``` * ```
**/ **/
template <class Expr> template <class Expr>
......
...@@ -60,7 +60,7 @@ namespace AMDiS ...@@ -60,7 +60,7 @@ namespace AMDiS
/// A LocalFunction representing the derivative of the DOFVector on a bound element /// A LocalFunction representing the derivative of the DOFVector on a bound element
class GradientLocalFunction; class GradientLocalFunction;
/// A LocalFunction representign the value the DOFVector on a bound element /// A LocalFunction representing the value the DOFVector on a bound element
class LocalFunction; class LocalFunction;
public: public:
......
...@@ -11,6 +11,15 @@ ...@@ -11,6 +11,15 @@
namespace AMDiS namespace AMDiS
{ {
/**
* Basis implementation of DOFMatrix, i.e. a sparse matrix storing all the
* assembled Operators indexed with DOF indices. The matrix data is associated
* to a row and column global basis.
*
* \tparam RB Basis of the matrix rows
* \tparam CB Basis of matrix columns
* \tparam Backend A linear-algebra backend for the matrix storage
**/
template <class RowBasisType, class ColBasisType, class Backend> template <class RowBasisType, class ColBasisType, class Backend>
class DOFMatrixBase class DOFMatrixBase
{ {
...@@ -99,7 +108,24 @@ namespace AMDiS ...@@ -99,7 +108,24 @@ namespace AMDiS
backend_.insert(flatMultiIndex(row), flatMultiIndex(col), value); backend_.insert(flatMultiIndex(row), flatMultiIndex(col), value);
} }
/// Associate a local operator with this DOFMatrix /// \brief Associate a local operator with this DOFMatrix
/**
* Stores an operator in a list that gets assembled during a call to \ref assemble().
* The operator may be assigned to a specific context, i.e. either an element
* operator, an intersection operator, or a boundary operator.
* The \p row and \p col tree paths specify the sub-basis for test and trial
* functions the operator is applied to.
*
* \tparam ContextTag One of \ref tag::element_operator, \ref tag::intersection_operator
* or \ref tag::boundary_operator indicating where to assemble this operator.
* \tparam PreOperator An pre-operator that can be bound to a gridView, or a valid
* GridOperator.
* \tparam row A tree-path for the RowBasis
* \tparam col A tree-path for the ColBasis
*
* [[expects: row is valid tree-path in RowBasis]]
* [[expects: col is valid tree-path in ColBasis]]
**/
template <class ContextTag, class Operator, template <class ContextTag, class Operator,
class RowTreePath = RootTreePath, class ColTreePath = RootTreePath> class RowTreePath = RootTreePath, class ColTreePath = RootTreePath>
void addOperator(ContextTag contextTag, Operator const& preOp, void addOperator(ContextTag contextTag, Operator const& preOp,
......
...@@ -16,7 +16,15 @@ ...@@ -16,7 +16,15 @@
namespace AMDiS namespace AMDiS
{ {
/// The basic container that stores a base vector and a corresponding basis /// \brief The basic container that stores a base vector and a corresponding basis
/**
* Basis implementation of DOFVector, i.e. a vector storing all the
* assembled Operators indexed with DOF indices. The vector data is associated
* to a global basis.
*
* \tparam B Basis of the vector
* \tparam Backend A linear algebra backend implementing the storage and operations.
**/
template <class BasisType, class Backend> template <class BasisType, class Backend>
class DOFVectorBase class DOFVectorBase
: public DOFVectorInterface : public DOFVectorInterface
......
...@@ -16,8 +16,7 @@ ...@@ -16,8 +16,7 @@
namespace AMDiS namespace AMDiS
{ {
/// \brief The basic container that stores a base matrix and a corresponding /// \brief The basic container that stores a base matrix
/// row/column feSpace.
template <class ValueType> template <class ValueType>
class MtlMatrix class MtlMatrix
{ {
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
namespace AMDiS namespace AMDiS
{ {
/// The basic container that stores a base vector and a corresponding basis /// The basic container that stores a base vector data
template <class ValueType> template <class ValueType>
class MtlVector class MtlVector
{ {
......
...@@ -13,6 +13,19 @@ namespace AMDiS ...@@ -13,6 +13,19 @@ namespace AMDiS
{ {
namespace Operation namespace Operation
{ {
/// \brief Composition of Functors.
/**
* \ingroup operations
* Implement the composition `c:=f(g1,g2,...,gN), where `f` is an N-ary functor
* `gI` are functors of the same arity. The composition is defined as
* ```
* c(a1,a2,...,aM) := f(g1(a1,a2,..,aM), g2(a1,a2,...,aM),...,gN(a1,a2,...,aM))
* ```
*
* **Requirements:**
* - sizeof...(Gs) == N, with N = arity(F)
* - arity(Gs[0]) == arity(Gs[i]) for i = 1,...,N-1
**/
template <class F, class... Gs> template <class F, class... Gs>
struct Composer struct Composer
{ {
...@@ -48,7 +61,7 @@ namespace AMDiS ...@@ -48,7 +61,7 @@ namespace AMDiS
}; };
#endif #endif
/// Generator function for \ref composer /// Generator function for \ref Composer
template <class F, class... Gs> template <class F, class... Gs>
constexpr auto compose(F&& f, Gs&&... gs) constexpr auto compose(F&& f, Gs&&... gs)
{ {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment