Commit 294df099 by Müller, Felix

 ... @@ -3,7 +3,7 @@ ... @@ -3,7 +3,7 @@ The class [DOFVector](#class-dofvector) acts as a container for storing the coefficients of the solution discrete function. The class [DOFVector](#class-dofvector) acts as a container for storing the coefficients of the solution discrete function. It is attached to a global basis to give its coefficients a meaning. A [DiscreteFunction](#class-discretefunction) goes It is attached to a global basis to give its coefficients a meaning. A [DiscreteFunction](#class-discretefunction) goes one step further and transforms a DOFVector or subspaces of a DOFVector (with respecto to a sub basis) one step further and transforms a DOFVector or subspaces of a DOFVector (with respecto to a sub basis) into a [GridFunction](/reference/GridFunctions) that allows to use it like a function defined on a grid. into a [GridFunction](../GridFunctions) that allows to use it like a function defined on a grid. Let $\{\phi_i\}$ be the set of basis functions of a finite-element space $V$. A function $u\in V$ can be represented Let $\{\phi_i\}$ be the set of basis functions of a finite-element space $V$. A function $u\in V$ can be represented as as ... @@ -68,21 +68,21 @@ The value_type is often the same as T, but might be just something similar, ... @@ -68,21 +68,21 @@ The value_type is often the same as T, but might be just something similar, [interpolate_noalias](#function-dofvectorinterpolate) | Interpolation of GridFunction to DOFVector assuming no aliasing [interpolate_noalias](#function-dofvectorinterpolate) | Interpolation of GridFunction to DOFVector assuming no aliasing [operator<<](#function-dofvectorinterpolate) | Operator for the interpolation [operator<<](#function-dofvectorinterpolate) | Operator for the interpolation ??? seealso "Functions inherited from [VectorFacade](/reference/MatVecBase/#class-vectorfacade)" ??? seealso "Functions inherited from [VectorFacade](../MatVecBase/#class-vectorfacade)" Function | Descriptions Function | Descriptions --------------------------------|--------------------------------------------- --------------------------------|--------------------------------------------- [basis](/reference/MatVecBase#function-vectorbasebasis) | Return the GlobalBasis associated with the vector [basis](../MatVecBase#function-vectorbasebasis) | Return the GlobalBasis associated with the vector [backend](/reference/MatVecBase#function-vectorbasebackend) | Return the backend vector wrapper implementing the actual algebra [backend](../MatVecBase#function-vectorbasebackend) | Return the backend vector wrapper implementing the actual algebra [localSize,globalSize](/reference/MatVecBase#function-vectorbasesize) | The number of entries in the local part of the vector [localSize,globalSize](../MatVecBase#function-vectorbasesize) | The number of entries in the local part of the vector [resize,resizeZero](/reference/MatVecBase#function-vectorbaseglobalSize)| Resize the vector to the size of the basis [resize,resizeZero](../MatVecBase#function-vectorbaseglobalSize)| Resize the vector to the size of the basis [init](/reference/MatVecBase#function-vectorbaseglobalSize) | Prepare the vector for insertion of values [init](../MatVecBase#function-vectorbaseglobalSize) | Prepare the vector for insertion of values [finish](/reference/MatVecBase#function-vectorbaseglobalSize) | Finish the insertion of values [finish](../MatVecBase#function-vectorbaseglobalSize) | Finish the insertion of values [at](/reference/MatVecBase#function-vectorbaseat) | Return the value of the vector at the given local index [at](../MatVecBase#function-vectorbaseat) | Return the value of the vector at the given local index [insert,set,add](/reference/MatVecBase#function-vectorbaseinsert) | Insert a single value into the matrix [insert,set,add](../MatVecBase#function-vectorbaseinsert) | Insert a single value into the matrix [gather](/reference/MatVecBase#function-vectorbasegather) | Extract values from the vector referring to the given local indices [gather](../MatVecBase#function-vectorbasegather) | Extract values from the vector referring to the given local indices [scatter](/reference/MatVecBase#function-vectorbasescatter) | Insert a block of values into the vector [scatter](../MatVecBase#function-vectorbasescatter) | Insert a block of values into the vector [copy](/reference/MatVecBase#function-vectorbasescatter) | Copies a block of values into the vector [copy](../MatVecBase#function-vectorbasescatter) | Copies a block of values into the vector [forEach](/reference/MatVecBase#function-vectorbasescatter) | Apply a functor to each value at given indices [forEach](../MatVecBase#function-vectorbasescatter) | Apply a functor to each value at given indices ## function DOFVector::DOFVector ## function DOFVector::DOFVector ... ...
 ... @@ -35,7 +35,7 @@ elementary terms. ... @@ -35,7 +35,7 @@ elementary terms. ### Examples of expressions ### Examples of expressions Before we give examples where and how to use GridFunctions, we demonstrate what an Before we give examples where and how to use GridFunctions, we demonstrate what an Expression could be, to create a GridFunction from. In the following examples, Expression could be, to create a GridFunction from. In the following examples, we assume that a [ProblemStat](reference/Problem#class-problemstat) named prob is already we assume that a [ProblemStat](../Problem#class-problemstat) named prob is already created and initialized. created and initialized. #### 1. Discrete Functions #### 1. Discrete Functions ... @@ -95,7 +95,7 @@ prob.addMatrixOperator(opB, Row, Col); ... @@ -95,7 +95,7 @@ prob.addMatrixOperator(opB, Row, Col); auto opL = makeOperator(LinearForm, Expression); auto opL = makeOperator(LinearForm, Expression); prob.addVectorOperator(opL, Row); prob.addVectorOperator(opL, Row);   See also [makeOperator()](reference/Operators#function-makeoperator). See also [makeOperator()](../Operators#function-makeoperator). #### 2. Usage of GridFunctions in BoundaryConditions: #### 2. Usage of GridFunctions in BoundaryConditions: c++ c++ ... ...
 ... @@ -19,9 +19,9 @@ auto makeOperator(Tag tag, Expr&& expr, QuadratureArgs&&... args) ... @@ -19,9 +19,9 @@ auto makeOperator(Tag tag, Expr&& expr, QuadratureArgs&&... args)   Constructs a GridFunctionOperator that can be passed to a Constructs a GridFunctionOperator that can be passed to a [ProblemStat](reference/Problem#class-problemstat) in the member functions [ProblemStat](../Problem#class-problemstat) in the member functions [addMatrixOperator()](reference/Problem#function-problemstataddmatrixoperator) [addMatrixOperator()](../Problem#function-problemstataddmatrixoperator) or [addVectorOperator()](reference/Problem#function-problemstataddvectoroperator). or [addVectorOperator()](../Problem#function-problemstataddvectoroperator). The tag therby identifies which type of operator to create, the expr is used The tag therby identifies which type of operator to create, the expr is used as a coefficient function in the operator and the optional quadrature arguments as a coefficient function in the operator and the optional quadrature arguments are used to determine a quadrature rule for the integration of the operator on an are used to determine a quadrature rule for the integration of the operator on an ... @@ -35,14 +35,14 @@ element. ... @@ -35,14 +35,14 @@ element. zero-order terms, first-order terms, and second-order terms. See the examples below. zero-order terms, first-order terms, and second-order terms. See the examples below. Expr expr Expr expr : An Expression is anything, a [GridFunction](reference/GridFunctions) can : An Expression is anything, a [GridFunction](../GridFunctions) can be created from, sometimes also called PreGridFunction. It includes constants, be created from, sometimes also called PreGridFunction. It includes constants, functors callable with GlobalCoordinates, and any combination of GridFunctions. functors callable with GlobalCoordinates, and any combination of GridFunctions. QuadratureArgs args... QuadratureArgs args... : Arguments that are passed to a quadrature creator. Anything that needs : Arguments that are passed to a quadrature creator. Anything that needs a quadrature formula needs to determine the (approximative) polynomial degree a quadrature formula needs to determine the (approximative) polynomial degree of the GridFunctions. If the [GridFunction](reference/GridFunctions) builds a of the GridFunctions. If the [GridFunction](../GridFunctions) builds a polynomial expression, it can be deduced automatically, i.e. if it includes constants, polynomial expression, it can be deduced automatically, i.e. if it includes constants, DOFVectors, and arithmetic operator operator+, operator-, or operator*. If DOFVectors, and arithmetic operator operator+, operator-, or operator*. If the polynomial order can not be deduced, the compiler gives an error. Then, this the polynomial order can not be deduced, the compiler gives an error. Then, this ... @@ -112,7 +112,7 @@ special basis, like a taylor-hood basis. ... @@ -112,7 +112,7 @@ special basis, like a taylor-hood basis. ### Examples ### Examples #### Tags and expressions #### Tags and expressions The general procedure to describe a PDE is to decompose it into individual terms and add The general procedure to describe a PDE is to decompose it into individual terms and add all of them to a [ProblemStat](reference/Problem#class-problemstat): all of them to a [ProblemStat](../Problem#class-problemstat): c++ c++ using Grid = /* any dune grid type */; using Grid = /* any dune grid type */; using Traits = TaylorHoodBasis; using Traits = TaylorHoodBasis; ... @@ -245,4 +245,4 @@ prob.addMatrixOperator(op, 0, 0); ... @@ -245,4 +245,4 @@ prob.addMatrixOperator(op, 0, 0); prob.addVectorOperator(op, 0); prob.addVectorOperator(op, 0);   See also an example of usage in the examples folder examples/convection_diffusion.cc See also an example of usage in the examples folder examples/convection_diffusion.cc \ No newline at end of file