KASKADE 7 development version
Todo List
Member checkInside (Dune::GeometryType const &gt, LocalCoordinate const &x)
The current implementation is just for cubes and simplices. Pyramids and prisms are not covered.
Class Kaskade::AdditiveMultiGrid< Smoother, Prolongation, CoarsePreconditioner >
: consider inheriting from Kaskade::SymmetricPreconditioner
Class Kaskade::BDDC::Subdomain< m, Scalar_, CoarseScalar, Transfer >
UMFPACK does not provide float factorization. Extract L and U factors and convert to float?
Class Kaskade::BoundaryTangents< dim, Index, ctype >
consider to turn this into a function returning the edge set
Class Kaskade::CacheBase< Functional, Cache, ScalarT >
docme better
Class Kaskade::DirichletNitscheBoundary< GridView, components, ScalarType >
Consider extending to M. Juntunen, R. Stenberg: NITSCHE’S METHOD FOR GENERAL BOUNDARY CONDITIONS, Math. Comp. 78(267):1353-1374, 2009.
Member Kaskade::DynamicMatrix< K >::operator() (RRange const &ridx, CRange const &cidx) const
change the implementation to work with forward ranges
Member Kaskade::EntityNumbering< GridView >::SortOrder
shall this be extendable by deriving from the class, or by policies, or ...?
Member Kaskade::FEFunctionSpace< LocalToGlobalMapper >::gridManager () const
why is this a const function returning a non-const grid manager reference?
Class Kaskade::FunctionViewAdaptor< Space_, Functor >

implement this as derived class of WeakFunctionViewAdaptor

Member Kaskade::GridManagerBase< Grd >::entityNumbering (typename Grid::LeafGridView const &) const
allow to specify the sorting
Member Kaskade::HdivSimplexShapeFunction< ctype, dimension, T >::HdivSimplexShapeFunction ()=default
makes only sense if it is assignable - any real need for default constructibility?
Class Kaskade::LagrangeOperator< NormalStepAssembler, TangentialStepAssembler, stateId, controlId, adjointId >
docme
Class Kaskade::Limex< Eq >
Currently the matrix \( B \) has to be constant.
Member Kaskade::Limex< Eq >::step (State const &x, double dt, int order, std::vector< std::pair< double, double > > const &tolX, std::vector< std::vector< bool > > &refinements)
(i) check for B constant, do not reassemble matrix in this case (ii) implement fixed point iteration instead of new factorization in case B is not constant
Member Kaskade::Limex< Eq >::step (State const &x, double dt, int order, std::vector< std::pair< double, double > > const &tolX)
(i) check for B constant, do not reassemble matrix in this case (ii) implement fixed point iteration instead of new factorization in case B is not constant
Member Kaskade::Limex< Eq >::step (State const &x, double dt, int order)
(i) check for B constant, do not reassemble matrix in this case (ii) implement fixed point iteration instead of new factorization in case B is not constant
Class Kaskade::LocalGeometryInCoarseGridAncestor< Grid >
doc me
Member Kaskade::makeAlgebraicMultigridStack (NumaBCRSMatrix< Entry, Index > &&A, Index n=0, bool onlyLowerTriangle=false)
Currently, the interpolation is just with factor 0.5 from both coarse parents - not really clever for unstructured grids or jumping coefficients. Implement a more clever weighting.
Member Kaskade::makeAuxiliarySpaceMultigridStack (Space const &space, NumaBCRSMatrix< Entry, Index > const &A, double volumeRatio=100)
: implement for general spaces
Class Kaskade::MatrixRepresentedOperator< Matrix_, Domain_, Range_ >
docme: How does this relate to Dune::MatrixAdapter and Dune::AssembledLinearOperator?
Class Kaskade::MultiLevelLocalGeometry< Grid >
: implement pull-back and pull-forward operation for gradients
Member Kaskade::MultiLevelLocalGeometry< Grid >::MultiLevelLocalGeometry (Grid const &grid, Cell const &child_, Cell const &ancestor_, MultiLevelLocalGeometry< Grid >::Direction direction_, bool geometricallyNested_=(dim==dimw), ctype tol_=-100)
: (i) Simplify code by using entity pointer's comparison operator instead of ids (caveat: can ids lead to shorter hierarchies? Remember that entities copied to higher grid levels have the same id. If the comparison operators between entity pointers evaluate to "not equal" in this case, comparing ids may be more efficient. (ii) Check whether spanwidth can be computed as difference of the entity levels instead of using the loop. The same consideration as for (i) applies.
Class Kaskade::Mutex
: design appropriate semantics for move construction/assignment
Member Kaskade::NumaBCRSMatrix< Entry, Index >::frobenius_norm () const
parallelize
Member Kaskade::NumaBCRSMatrix< Entry, Index >::frobenius_norm2 () const
parallelize
Member Kaskade::NumaCRSPatternCreator< Index >::addAllElements ()
This should be statically encoded in a different matrix type.
Member Kaskade::QPALSolver< d, sparsity, Real >::QPALSolver (MatrixA const &A, MatrixB const &B)
write a move constructor
Member Kaskade::QPBoundSolver< R >::QPBoundSolver (Matrix const &A, QPConvexificationStrategy convex=QPConvexificationStrategy::DONOTHING)
write a move constructor
Member Kaskade::QPDirectSparse< R >::QPDirectSparse (SparseMatrix const &A, QPConvexificationStrategy convex=QPConvexificationStrategy::DONOTHING)
write a move constructor
Member Kaskade::QPPenalizedSolver< d, sparsity, Real >::multiplierEstimate (VectorX const &x, VectorX c) const
Check if \( BA^{-1}B^T \lambda = BA + A^{-1}c \) is better or more appropriate, as it minimizes the residual in the problem's energy norm.
Member Kaskade::QPPenalizedSolver< d, sparsity, Real >::QPPenalizedSolver (MatrixA const &A, MatrixB const &B, Real gamma)
write a move constructor
Member Kaskade::QPPenalizedSolver< d, sparsity, Real >::QPPenalizedSolver (MatrixA const &A, MatrixB const &B)
write a move constructor
Member Kaskade::QPSlackSolver< sparsity, R >::QPSlackSolver (Matrix const &A, Matrix const &B, Real gamma, QPConvexificationStrategy convex=QPConvexificationStrategy::DONOTHING)
write a move constructor
Member Kaskade::QPSolver< d, Real >::QPSolver (MatrixA const &A, MatrixB const &B, QPConvexificationStrategy convex=QPConvexificationStrategy::DONOTHING)
write a move constructor
Member Kaskade::QPSolver< d, Real >::solve (VectorX const &c, VectorB const &b, double tol) const
add option to provide an initial guess for \( \lambda \).
Class Kaskade::RestrictedShapeFunctionSet< ShapeFunctionSet_ >
docme: what is is good for? Which ordering? Why "restricted"?
Class Kaskade::ScalarConverter< Cell, Scalar >
: The Hessian depends on the curvature of the grid - this is not taken into account yet.
Class Kaskade::ShapeFunctionCache< G, T, ComponentsEnd >
make shape function cache independent of grid type - only coordinate type and dimension are required
Class Kaskade::ThreadedMatrixDetail::NumaBCRSMatrixConstRowIterator< Entry, Index >
Implement a proper iterator, e.g., using boost::iterator_adaptor
Class Kaskade::Timings
Implement merging of timer statistics
Class Kaskade::TransposedOperator< Operator >
docme
Member Kaskade::twoGridProlongation (FromSpace const &from, ToSpace const &to)
generalize to arbitrary spaces, not only P1?
Member Kaskade::VariationalFunctionalAssembler< F, SparseIndex, BoundaryDetector, QuadRule >::getMatrix () const
check const correctness - why is this method const and returns a mutable matrix?
Class PartialIndexSet< Grid, IndexSet, Part >
recompute internal representation whenever grid changes.
Class RestartedFGMResSolver< X >
F durch rebind erzeugen und nur den field_type für F übergeben
Member two_norm
Currently, the norm is computed inefficiently via the signular value decomposition, and takes \( O(n^3) \) time. Consider implementing a power iteration.