[go: up one dir, main page]

Menu

[r19]: / coco / toolbox / todo.txt  Maximize  Restore  History

Download this file

146 lines (127 with data), 6.3 kB

  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
There seem no urgent changes left. The toolbox can be sent as a preliminary
version to some developers. The toolboxes should be published one after the
other.
Changes before publication (summaries of detailed lists below):
coco:
- clean up finite state machine, separate into continuation and manifold
parts
- allow user-defined conditions
- allow test functions
- provide slightly more complete example toolbox for algebraic problems
(test function for branch points + branch-switching)
mpbvp:
- include rescaling factors, parameters and possibly time (??) as
variables
- write functions for remeshing and further manipulations so that a full
set of function is available for other developers.
- adaptation, bandwidth reduction and computation of Floquet multipliers
in a forthcoming publication?
===========================================================================
general:
- introduce a uniform naming convention for variables, for example,
for filenames such as FName, mfname, etc.
- associate sol with func and xsol with xfunc; better: add pointers to
dictionary entry of solution structures
- clean up state machine functions: group code by task and to which
object it belongs to make replacements easier
- error tests in functions, in particular, check in and out arguments
- create correct data dependency tree to help clean up dependencies
and code
print_data, print_headline:
- make principle solution measure and hedline names for
parameter and principle solution measure user-definable
coll_linsolve:
- develop and use bandwidth reduction
mpbvp:
- allow restarts from previous solution
- allow parameters as variables (tori, Arnol'd tongues), introduce
appropriate index, which may be empty, and substitute and expand
list of parameters correctly
- stable computation of Floquet multipliers with generalised EVP
- compute interpolation error (on standard element)
- hybrid bvps: treat last boundary condition differently so that general
two-point hybrid bvps can be treated (last bc may depend on whole x,
not just boundary points like, for example, the periodicity condition),
specify as cell-array: {'hybrid', 'periodic'}; generalise periodic to
multi-segments but use only the very first and last boundary point;
initialisation in a loop over boundary conditions! compute bc in a loop
over boundary conditions
- save both time meshes plus x at the base points, save solution segments
separately
- compute proper L2-norm transforming the whole solution to [0 1],
such that the norm is independent of the number of segments
- allow mixing of internal and external parameters in continuation;
see matlab/continuation/ODEQPFOFM/tor_*.m as example
- allow parameters as additional variables (when more boundary
conditions than necessary are provided)? (OR: as user conditions)
- include amplitude as internal parameter in 'periodic'
- support all variants of vectorised/non-vectorised RHS and provided
derivatives
- include remeshing strategy:
NTST = [ [INIT MIN MAX] ; ... ]
- pmap and dmap sparse (?)
coco:
- store solutions in sol and xsol, provide index vectors for x and p
in u = [x ; p], allow for dim(p)>1 in a transparent way
- handle cases with one-sided continuation of just Newton iteration:
ItMX = 0 | [0 0] | [n 0] | [], or par_int = [p0 p0] | [p p0]
- assign user functions to an additional parameter set upar
- adjoin user equations only if user function is active in
continuation and 'just evaluate' if inactive
- allow adjoint conditions on this level in a way that is transparent
to subtoolboxes
- indicate for each user function if bandwidth reduction is required
- event functions operate on x, par and upar (and opts):
[val dflag aflag msg] = event_func(opts, x, par, upar)
val : current value of event function
dflag : detect event for increasing (=1), decreasing (=-1)
or both (=0) crossings of zero
aflag : if set return to caller with message msg
msg : data passed to caller for identifying the event
- weight vector for norms and scalar products,
for example, NWTN: norm(w.*d)<TOL
- is it possible to write a check-settings function to validate
arguments for coco_set?
- introduce states for intermediate Newton iteration in
check_solution and compute_events
- try to split coco_print_data into save and print functions
coco:
- allow function handle for equation
step-size control:
- make step-size control an independent object that a predictor
may or may not use
predictor:
- use external step-size control if heuristic necessary;
point to current step-size method by dictionary entry
- reformulate predictor to use an internal point list;
this would make boundary handling much easier and consistent
with multi-dimensional continuation
- use automatic adaptation with additional constraint
0 = exp( arc(u(0)-u(-1), u(1)-u(0)) - arc_max ) - 1
+ exp( ||u(1)-u(0)|| - h ) - 1
- use quadratic predictor with three-point formula
linsolve:
- introduce simple scaling method
- introduce linsolve options for generating index-mappings
for bandwidth-reduction of bordered matricies, may be ignored
by linear solvers (should be transparent to continuation method)
bd:
- get rid of duplicate entry for first continuation step
- default functions should be coded for 'bddat_usr_init' and
'bddat_usr_data'. The latter functions should be renamed to apply to the
algebra toolbox. The default construction will eliminate the need for
'if' statements in 'bddat_init', 'bddat_append' and 'bddat_prepend'.
A more versatile construction for the continuation of internal boundary
points, rather than relying on the branch idea will also simplify the
'bddat_insert', 'bddat_append', and 'bddat_prepend' functions.
I think this is worthwhile to consider at this point. What is the
appropriate structure in which the bifurcation data should be saved in
this case?
EP, MPBVP:
- flag for including variational equation in continuation, otherwise
allow evaluation after correction only
xfunc:
- should xfunc have an update function?
gcont_nwtn_step:
- in MaxStep test allow ga>1 if ga0>1 (include ga in test!)
- use residuum in convergence test