Skip to content

IdoSchaefer/SemiGlobalMATLAB

Repository files navigation

The content of the folder
--------------------------
The folder contains MATLAB codes for the semi-global propagator, with examples,
the source codes of the paper from 2017, and some additional theoretical details on
the computation of the f_m(z,t) functions.

SemiGlobal.m implements the propagator in the general case.

SemiGlobalArnoldi_xp.m implements the propagator for quantum problems, with a Hamiltonian
which can be split into x dependent term and p dependent term. The Arnoldi approach is
employed for the computation of the function of matrix. This version was used to
obtain the results presented in the paper from 2017.

The other functions in the main folder are called from the main programs mentioned
above.

f_error.pdf contains some additional theoretical explanation on the computation of the
f_m(z,t) functions.


The content of the subfolder article_source_files
--------------------------------------------------
This folder contains the programs which compute the results presented in the paper, and 
additional data files.
The main folder has to be added to the MATLAB path in order that the program
SemiGlobalArnoldi_xp.m will be recognized by the calling functions in this folder.

The main program of the computation of the error decay curves of the semi-global propagator
is getSGdata4.m .

The main program of the computation of the error decay curves of Runge-Kutta of the 4'th 
order is RKerror.m .

Uexact_article.m computes the reference exact solution. The obtained solution is stored 
in the data file Uex_article.mat .

coulomb_optV240.mat is a data file which contains the required unperturbed potential
(Vabs240), the grid (x240), kinetic energy vector in the p domain (K240), the ground state
(fi0240), and the dipole moment which decays to 0 at the absorbing boundaries (xabs240). It
contains some additional data.

Vabs.mat is a data file which contains the optimized complex absorbing potential. This 
potential is added to the boundaries of the variable V0240 from coulomb_optV240.mat in
order to obtain the variable Vabs240 from coulomb_optV240.mat.


The content of the subfolder examples
--------------------------------------
The folder contains several examples for the application of SemiGlobal.m .
The main folder should be added to the MATLAB path in order that the program
SemiGlobal.m will be recognized by the calling functions in this folder.

test_harmonic.m tests the propagator for a forced harmonic oscillator problem.

testBECsg.m is similar to test_harmonic.m, but with the addition of a nonlinear BEC trap 
potential.

test_source_term.m is similar to test_harmonic.m, but with the addition of an arbitrary 
source term.

The subfolder article_results demonstrates the application of SemiGlobal.m
for obtaining the error decay curves presented in the paper. The main
program of the computation of the error decay curves is getSGdataSGcode.m .
The subfolder article_source_files has to be added to the MATLAB path in
order that the required data files will be recognized.

Update (9.9.2024): Version 1
-----------------------------
A new version of the algorithm was added. The main function is SemiGlobal1.m.
The main new features of the new code are the following:
1. Accurate error estimations are available, replacing the old ones, most of which
typically greatly overestimate the error.
2. A new, reliable criterion for stability is used for the instability warnings, based on analysis.
3. The criterion for convergence of the iterative process was replaced, based on the accurate
error estimations of the convergence error.
4. There is a better control of the algorithm options by the user.

Examples for the application of the new version are available in the folder version1/examples.

A short guide for the parameter choice (SGparameter_choice.pdf) has been added to the folder
version1.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages