-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdocumentation.dox
187 lines (151 loc) · 5.97 KB
/
documentation.dox
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
#error Documentation only.
/** MODULES **/
/**
* @defgroup AdapterGroup Adapters
* @brief Adapters to third-party libraries.
*/
/**
* @defgroup dealIIGroup deal.II
* @ingroup AdapterGroup
* @brief %Vector spaces, functionals and operators for <a href="http://www.dealii.org">deal.II</a>.
*/
/**
* @defgroup FenicsGroup FEniCS
* @ingroup AdapterGroup
* @brief %Vector spaces, functionals and operators for <a href="http://www.fenicsproject.org">FEniCS</a>.
*/
/**
* @defgroup KaskadeGroup Kaskade7
* @ingroup AdapterGroup
* @brief %Vector spaces, functionals and operators for <a href="http://www.zib.de/projects/kaskade7-finite-element-toolbox">Kaskade7</a>.
*/
/**
* @defgroup EigenGroup Eigen
* @ingroup AdapterGroup
* @brief %Vector spaces, functionals and operators for <a href="http://eigen.tuxfamily.org">Eigen</a>.
*/
/**
* @defgroup GenericGroup Generic
* @ingroup AdapterGroup
* @brief Generic implementations for vector spaces to simplify the implementation of adapters.
*/
/**
* @defgroup VectorSpaceGroup Vector Spaces
*
* @brief Collection of available vector spaces.
*
* Contains models for one-dimensional and product spaces as well as vector spaces for FEnics and Kaskade 7.
*/
/**
* @defgroup ScalarGroup Scalar
* @ingroup VectorSpaceGroup, AdapterGroup
* @brief Everything required for one-dimensional problems.
*
* Contains:
* - Real numbers
* - a one-dimensional vector space
* - linear and nonlinear operators, functionals and solvers
*/
/**
* @defgroup ProductSpaceGroup Product Space
* @ingroup VectorSpaceGroup
* @brief A product space that supports distinction between primal and dual variables.
*/
/**
* @defgroup AlgorithmGroup Algorithms
* @brief Contains different algorithms that can be formulated in vector spaces.
*
* Contains different variants of conjugate gradient methods for convex and nonconvex problems, different newton methods and an affine covariant composite step method.
*/
/**
* @defgroup NewtonGroup Newton Methods
* @ingroup AlgorithmGroup
* @brief %Newton methods, largely following @cite Deuflhard2004.
*
* Contains a local %Newton method, an affine covariant %Newton method, an affine contravariant %Newton method as well as a generic implementation that admits the implementation of further termination
* criteria and damping strategies.
*/
/**
* @defgroup CGGroup Conjugate Gradient Methods
* @ingroup AlgorithmGroup
* @brief Conjugate gradient methods for convex and nonconvex problems (%CG, Truncated %CG, Regularized %CG and Truncated Regularized %CG).
*/
/**
* @defgroup CSGroup Composite Step Methods
* @ingroup AlgorithmGroup
* @brief Contains the affine covariant composite step method of \cite Lubkoll2015, \cite Lubkoll2015a.
*/
/** NAMESPACES **/
/**
* @namespace Spacy
* @brief Main namespace of the %Spacy library.
*/
/**
* @namespace Spacy::CG
* @ingroup CGGroup
* @brief Conjugate gradient methods for convex and nonconvex problems (%CG, Truncated %CG, Regularized %CG and Truncated Regularized %CG).
*/
/**
* @namespace Spacy::CG::Termination
* @brief %Termination criteria for conjugate gradient methods.
*/
/**
* @namespace Spacy::Newton
* @brief %Newton methods, largely following @cite Deuflhard2004.
*
* Contains a local %Newton method, an affine covariant %Newton method, an affine contravariant %Newton method as well as a generic implementation that admits the implementation of further termination
* criteria and damping strategies.
*/
/**
* @namespace Spacy::Newton::Damping
* @brief %Damping strategies for %Newton's method.
*/
/**
* @namespace Spacy::Newton::Termination
* @brief %Termination criteria for %Newton's method.
*/
/**
* @namespace Spacy::CompositeStep
* @brief Contains the affine covariant composite step method of \cite Lubkoll2015, \cite Lubkoll2015a.
*/
/**
* @namespace Spacy::ProductSpace
* @brief A product space that supports distinction between primal and dual variables.
*/
/**
* @namespace Spacy::dealII
* @brief Contains vector spaces, functionals and operators for <a href="www.deal.org">deal.II</a>.
*/
/**
* @namespace Spacy::FEniCS
* @brief Contains vector spaces, functionals and operators for <a href="www.fenicsproject.org">FEniCS</a>.
*/
/**
* @namespace Spacy::Kaskade
* @brief Contains vector spaces, functionals and operators for <a href="http://www.zib.de/projects/kaskade7-finite-element-toolbox">Kaskade7</a>.
*/
/**
* @namespace Spacy::Scalar
* @brief Contains functionals and operators for scalar problems.
*/
/**
* @namespace Spacy::Rn
* @brief Contains functionals and operators for finite dimensional vector space problems, based on <a href="http://eigen.tuxfamily.org">Eigen</a>.
*/
/**
* @namespace Spacy::Generic
* @brief Contains generic implementations for easier definitions of vectors and a generic scalar product implementation.
* @see VectorBase, AddArithmeticOperators, OperatorBase, FunctionalBase
*/
/**
* @namespace Spacy::Mixin
* @brief Contains small independent components that are frequently used and can be added to classes via (multiple) inheritance.
*
* Among the mixin components are
* - components for different accuracy requirements (Mixin::RelativeAccuracy, Mixin::AbsoluteAccuracy, Mixin::MinimalAccuracy, Mixin::DampingAccuracy)
* - a component for the maximal attainable accuracy (Mixin::Eps)
* - a component for the maximal number of steps/iterations (Mixin::MaxSteps)
* - components for elementary algorithmic decisions (Mixin::ContractionRate, Mixin::DecreaseCondition, Mixin::RegularityTest)
* - indices for variables in optimization and optimal control problems
* ...
*/