KerMor  0.9
Model order reduction for nonlinear dynamical systems and nonlinear approximation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Todo list

The KerMor ToDo list

Class approx.algorithms.Componentwise
think of new structure on how to combine this with the getDists in AAdaptiveBase (or extract convenience methods further, general concept of "KernelConfig")
Member approx.BaseApprox.TrainDataSelector
MOVE TO BASEFULLMODEL
Class approx.DEIM
think of exporting the jrow, jend, S properties to ACompEvalCoreFun and precompute stuff there; projection happens at that stage
Class data.ApproxTrainData
Make xi,ti,mui private fields and update dependents like Center upon re-setting one of those values! (consistency issue)
Member data.ATrajectoryData.computeManifoldDiameters ()
implement!
Member data.FileData.relocate (char new_root)
Implement multiple-host FileData's with different storage_root folders (per host for example)
Member data.FileDataCollection.getData (rowvec< double > keydata, varargin)
make varargout instead of data struct
Member data.FileDataCollection.getDataNr (nr, varargin)
make varargout instead of data struct
Class data.FileMatrix
add getBlockPos method for block indices and consider removing the idx vector
Member data.FileMatrix.minus (B)
need FileMatrix as result type here
Member data.FileMatrix.test_ScalarMult ()

need implementation for >1 nBlock matrices and scalar values

need separate test for each overridden operator

Member data.FileMatrix.test_Times_MTimes ()

need implementation for >1 nBlock matrices and scalar values

need separate test for each overridden operator

Member data.ModelData.TrajectoryFxiData
write setter
Class data.selection.ASelector
return data.FileMatrix instances from select methods in the first place..
Member data.selection.TimeSelector.select (models.BaseFullModel model)
Adopt to current KerMor model data structure.
Page Default Property Changed Monitoring
write docs
Class Devel
Check class/function name string validity for newClass/newFun
Member Devel.newFun (name, varargin)
check fun name validity!
Class Dictionary
connect to/backup with tree structure for speedup.
Member doxygen_todo ()

readonly-tag: jeder innerhalb eines "Dependent" blocks definierten property einfach einen tag a la

@par "This property is readonly" 

hinzuzufügen. und da es sich in diesem falle eh um Methoden mit "get.<somename>" handelt wäre in einem solchen fall auch der hinweis "Getter is implemented" redundant/überflüssig. done - "See also:" oder "See also" tags: diese sollte man ersetzen durch "@sa". damit ist gewährleistet das die von Matlab selbst erzeugte dokumentation per "doc ." auch noch einigermaßen funktioniert.

Static methods: bei statischen methoden darf der erste parameter nicht weggenommen werden! das ist ja sonst "this", aber z.B. in der Klasse MatUtils gibt es eine static methode aus der der parameter "stencil" entfernt wird; dies gibt bei doxygen später ne fehlermeldung.

events in dokumentation einfügen.

Adding folder to "glob" in mtoc.conf should also add all top-level functions with"" ( )

The file list for each module should contain the full relative path within the project (subfolder/mfilename)

allow detection of nested field parameters , i.e. if a param "model" is given, a reference to model.field1.subfield should be detected and "field1.subfield" be added to the required fields list.

luxus-version: if a field of the param "model" is used like "varname = model.structfield" any statement like "varname.field1" should result in a new entry "model.structfield.field1" in the required fields list (recursively)

if subroutines refer to a fcn param in the outer function's context, the call to any used field should be registered,too and the field added to the "required" list

einfache wiederholung der

für abstract-funktionen noch die kommentare mit einfügen (sollten in der dokumentation oben drüber stehen..

den copydoc-befehl ggf. bei implementierungen von interface-funktionen oder abstracts einfügen und die doku in einen eigenen

einfügen ("Documentation from original declaration:")nice-to-have: aufruf einer überschriebenen superklassen-methode aus
neuer methode fügt kommentare aus superklassenmethode ein? oder zumindest ein hinweis + link auf originalmethode..
Default:
-Tag für properties einführen

mtoc.conf -> möglichkeit für add(returns) wie add(params)?

Bug: kommentare zwischen zwei funktionen in method-blöcken geben nen parse error!

Scheinbar kann der parser zwar mehrfachvererbung, aber nur 2 klassen (ein "&" zeichen). Das können aber mehrere sein! dinge wie "properties(Access=private);" mit ";" am ende geben nen parse error; matlab selbst juckts aber nicht. vielleicht einen hinweis einbauen oder am besten gleich ignorieren?

thismatlabtypesubstitute -> wird falls vorhanden wohl als typ für alle parameter angenommen! einfacher: den parameter einfach verschwinden lassen.

Kommentare zwischen function-blöcken innerhalb von method-blöcken (auskommentierte funktionen) führen zu parse errors

bei mehr als einem sub-package in der klassendeklaration bei vererbung (class1 < pck1.pck2.someclass & pck3.pck4.someotherclass) gibt's nen parse error nach "&"

einen einführen, der bei properties den angegebenen Typ voranfügt

code-umgebung funktioniert nicht in property-descriptions;

<code>some code</code>

geht aber.

new bug: models.beam.DynLinTimoshenkoModel.plot has a dot in between and thus the doxygen compiler does not recognize the class member (warning: no uniquely matching class member found for ...)

File doxygen_todo.m

readonly-tag: jeder innerhalb eines "Dependent" blocks definierten property einfach einen tag a la

@par "This property is readonly" 

hinzuzufügen. und da es sich in diesem falle eh um Methoden mit "get.<somename>" handelt wäre in einem solchen fall auch der hinweis "Getter is implemented" redundant/überflüssig. done - "See also:" oder "See also" tags: diese sollte man ersetzen durch "@sa". damit ist gewährleistet das die von Matlab selbst erzeugte dokumentation per "doc ." auch noch einigermaßen funktioniert.

Static methods: bei statischen methoden darf der erste parameter nicht weggenommen werden! das ist ja sonst "this", aber z.B. in der Klasse MatUtils gibt es eine static methode aus der der parameter "stencil" entfernt wird; dies gibt bei doxygen später ne fehlermeldung.

events in dokumentation einfügen.

Adding folder to "glob" in mtoc.conf should also add all top-level functions with"" ( )

The file list for each module should contain the full relative path within the project (subfolder/mfilename)

allow detection of nested field parameters , i.e. if a param "model" is given, a reference to model.field1.subfield should be detected and "field1.subfield" be added to the required fields list.

luxus-version: if a field of the param "model" is used like "varname = model.structfield" any statement like "varname.field1" should result in a new entry "model.structfield.field1" in the required fields list (recursively)

if subroutines refer to a fcn param in the outer function's context, the call to any used field should be registered,too and the field added to the "required" list

einfache wiederholung der

für abstract-funktionen noch die kommentare mit einfügen (sollten in der dokumentation oben drüber stehen..

Class DPCM
  • Check if it makes sense to "link" properties with other known properties that helps to emphasize dependencies. maybe even a callback that validates a connected pair?
  • include a disable propchange listening flag for use during simulations.
  • maybe move the Text and Short property extractions to the getDPCMReport method? -> speedup
  • include DefaultConfirmed flag into output!
  • Check if it makes sense to "link" properties with other known properties that helps to emphasize dependencies. maybe even a callback that validates a connected pair?
  • include a disable propchange listening flag for use during simulations.
  • maybe move the Text and Short property extractions to the getDPCMReport method? -> speedup
  • include DefaultConfirmed flag into output!
Member dscomponents.ACompEvalCoreFun.evaluateComponentsMulti (pts, ends, idx, self,colvec< double > x,double t,colvec< double > mu)
improve performance!
Class dscomponents.ACoreFun
Add test for non-custom projection (model with \(W'f(x,t,\mu)V\))
Member dscomponents.ACoreFun.JSparsityPattern
maybe move this property to the IJacobian interface? (but: might have sparsity pattern but not actually a analytic jacobian..)
Member dscomponents.IGlobalLipschitz.getGlobalLipschitz (double t,colvec< double > mu)
: what about cases where no lipschitz constants are available? somehow need to tell the error estimator etc.
Class error.BaseCompLemmaEstimator

make listener fields transient and re-register upon loading!

remove old ISimConstants interface implementation prepareConstants, at least rename it somehow

Class error.BaseEstimator
include scaling effects into the error estimator!
Member error.BaseEstimator.getEstimator (models.BaseFullModel model)
overhaul this method of assigning an error estimator to a reduced model. at this method local knowledge of all available error estimators has to be present anyways if going through this in a if then fashion. otherwise, see if reflection may be used here!
Class error.GLEstimator
extend the GlobalLipschitz computation to also depend on t,mu (with check ahead if constant, then efficient one-time eval is possible)
Class error.lipfun.Base
remove old ISimConstants interface implementation prepareConstants, at least rename it somehow
Member error.lipfun.ImprovedLocalSecantLipschitz.UseCachedSecants
make docs, make dependent and re-generate if set to true when not used..
Member FunVis2D (varargin)
  • fix slider display for parameters (not all shown correctly)
  • black dots for centers are not at value of f for center!
Class general.AffParamMatrix
  • implement/override other arithmetic operations
  • add string for coeff method header '@(t,mu)'
Class general.AProjectable
change AProjectable to IProjectable and remove V,W properties (not needed in all components that are projectable)
Class general.DEIM
think of exporting the jrow, jend, S properties to ACompEvalCoreFun and precompute stuff there; projection happens at that stage
Member general.MatrixDEIM.updateOrderData ()
make better split-up of updateOrderData (w.r.t. error matrices)
Class general.POD
- Create fixed random number stream for reproducable results!
  • make Value property dependent and check in setter depending on Mode value!
Class general.regression.BaseScalarSVR
  • Implement hyperparameter estimations from [CM04]!
  • Look into the "pattern search" algorithm from Momma&Bennet 2002
  • Create single MaxIterations property for all SVRs (if applicable)
Class general.regression.KernelLS
add unit test
Member general.regression.KernelLS.regress (fx, ainit)
-why does pcgs pcg not work here? matrix is symmetric!
Member general.regression.ScalarEpsSVR.regress (fxi, ainit)
return correct stop flag
Member general.regression.ScalarNuSVR.regress (fxi, ainit)
return correct stop flag
Class KerMorObject
Extract DPCS into single class and put onto matlab file exchange!
Class kernels.ARBFKernel
: change property to check for interface implementation, implement in other suitable kernels
Member kernels.ARBFKernel.Gamma
check why penalty factor was set here to 1/value! ?!?
Class kernels.BaseKernel
implement HOCT4-Kernels http://onlinelibrary.wiley.com/doi/10.1111/j.1365-2966.2010.16577.x/full
Class kernels.BellFunction

export different estimator strategies into external classes => simulation speedup, separation of concerns..

investigate why the newton iteration sometimes exceeds max iteration limit (example: intermittently test_LinearModelParams is such a case)

Member kernels.CombinationKernel.getGlobalLipschitz ()
implement
Member kernels.CombinationKernel.getNabla (colvec< double > x,matrix< double > y)
implement
Class kernels.InvMultiquadrics
check for what params the inv multiquadrics are a bell function and implement bell function methods!
Member kernels.InvMultiquadrics.getGlobalLipschitz ()
implement
Member kernels.InvMultiquadrics.getNabla (colvec< double > x,matrix< double > y)
implement
Member kernels.ParamTimeKernelExpansion.getGlobalLipschitz (double t,colvec< double > mu)
validate computation
Member kernels.PolyKernel.getGlobalLipschitz ()
implement
Member kernels.SigmoidKernel.getGlobalLipschitz ()
implement
Member kernels.SigmoidKernel.getNabla (colvec< double > x,matrix< double > y)
implement
Class ModelAnalyzer
think of expressive names for methods
Member ModelAnalyzer.plotReductionOverview (pm)
create interface with plot method -> current config gives automatic reduction overview in each component
Class models.BaseFullModel

build in time-tracking for offline phase etc

If enabletrajectorycaching is off, the model complains about no finding file system folders for trajectories etc after re-loading

put addlistener methods for T,dt change into loadobj!

implement callbacks for the ODE solvers that automatically set computed f-values on simulation points if desired

Member models.BaseFullModel.ComputeTrajectoryFxiData
write setter
Member models.BaseFullModel.off5_computeApproximation ()
proper subset selection algorithm/method
Member models.BaseFullModel.preApproximationTrainingCallback
(optional) create class events from this
Member models.BaseModel.G
check for p.d. and symmetric, -> sparsity?
Member models.BaseModel.simulate (colvec< double > mu,integer inputidx)

: fix Input checks (set inidx=1 iff one input is there, otherwise error)

: switch return arguments sec & x + tests

Member models.beam.Material.Material (raw_mat)
q_pkus in effektive dichte umrechnen
Class models.motoneuron.Model

place citations

Motoneuron untersuchen und parameterbereich auf sinnvolle gr��en einschr�nken! dazu eigenes moto-model bauen und parameterbereich abtasten, dann parameterdom�nen-geometrie einbauen.

Class models.ReducedModel
maybe make W dependent and return V if W has not been explicitly set
Member object2str (handle obj,integer maxdepth)
enable argument that omits any properties of a given name
Class PlotManager
register onFigureClose callback to remove figure from handles list
Class PrintTable
replace fprintf by sprintf and build string that can be returned by this.print and if no output argument is collected directly print it.
Class ProcessIndicator
process indicator for arbitrary (percentage/integer) values!
Class solvers.BaseCustomSolver
checkout code at http://www.mymathlib.com/diffeq/embedded_runge_kutta/embedded_prince_dormand_v1_4_5.html
Class solvers.BaseSolver
Write tests for solvers.
Class solvers.Heun
cater for time-constant mass matrices (get LU once before)
Class spacereduction.Krylov
Implementation
Member Utils.removeMargin (f)
tailor this method so that subplots are also supported (so far only one axis!) and change saveFigure again.