Time-dependent AMEn algorithm for solution of the ordinary differential equations in the tensor train format. See the paper "Alternating minimal energy approach to ODEs and conservation laws in tensor product formats", [arXiv:1403.8085].
- Main high-end routines
tamen.m Algorithm 1 (tAMEn) from the above paper, adaptive time propagator in the TT format.
amen_solve.m AMEn for the linear system solution in the TT format.
See [SIAM J. Sci. Comput., 36(5), A2248], and also
[TT-Toolbox/amen_solve2]
- Help and example files
ttdR.m An Introduction to the {d,R} cell array storage of tensor trains and tensor chains.
test_conv.m Test file for the convection example (small space and time grids), TT-Toolbox interface.
test_conv_cell.m Test file for the convection example, cell array storage for compatibility.
test_lyap.m Test file for the Lyapunov equation, a 10000^2 Poisson problem.
test_heat_adap.m Test file for the heat equation and time adaptivity.
- Auxiliary routines (can be also useful besides this project)
chebdiff.m Creates Chebyshev differentiation matrix for tamen.
cheb2_interpolant.m Interpolates between two Chebyshev grids.
extract_snapshot.m Interpolates the global space-time TT solution from tamen at an arbitrary time point.
dot_dR.m Dot product of two TT tensors in {d,R} cell storage.
expand_dR.m Expands a TT tensor in {d,R} storage into full array. Beware of the curse of dimensionality!
- Technical routines (internal/expert use only)
amenany_sweep.m Technical routine with a broad range of inputs and outputs.
The AMEn iteration is actually performed here.
The reason for a separate file is to shorten the interface routines tamen and amen_solve.
grumble_vector.m Checks a TT vector for consistency. Technical routine
grumble_matrix.m Checks a TT matrix for consistency. Technical routine
orthogonalise_block.m Perform orthogonalisation in a pair of TT blocks. Technical routine
- Data
dat_conv.mat Precomputed TT data in cell arrays for test_conv_cell.m
I. Minimal variant
- Download this code (using either GIT or "Download ZIP").
- Run the MATLAB.
- Change to the tamen directory.
- Invoke
test_conv_cell.mand/ortest_lyap.m
II. Maximal variant
- Download the [TT-Toolbox] (using either GIT or "Download ZIP").
- Download this code (using either GIT or "Download ZIP").
- Run the MATLAB.
- Change to the TT-Toolbox directory, invoke
setup.mto initialize paths. - Change to the tamen directory.
- Invoke
test_conv.mandtest_heat_adap.m
III. Grand maximal variant
- Go through the steps in II. Maximal variant.
- Compile MEX files in the TT-Toolbox.
- Compare
amen_solve.mfrom this code andsolve/amen_solve2.mfrom the TT-Toolbox, with and without MEX plug-ins in the latter. - Read
ttdR.m. - Try to refactor
test_lyap.mfor the TT-Toolbox and run it on a laptop. Feel the necessity of the {d,R} format when the MATLAB exhausts the memory.
More specific information is located in particular .m files.
Type e.g. help tamen in MATLAB.