Skip to content

Splitting methods for semi-classical Hamiltonian dynamics of charge transfer in nonlinear lattices

Notifications You must be signed in to change notification settings

jbajars/SplittingMethods

Repository files navigation

SplittingMethods

MATLAB code for numerical simulation of charge transfer by stationary and moving discrete breathers in nonlinear lattices modeled with semi-classical Hamiltonian dynamics. Using the code and developed explicit and semi-implicit structure-preserving splitting methods, please cite Bajārs, J., Archilla, J.F.R.: Splitting methods for semi-classical Hamiltonian dynamics of charge transfer in nonlinear lattices. Mathematics 10(19), 3460 (2022), DOI:10.3390/math10193460.

File SplittingMethods_PureCode_WithoutData.zip contains pure code without precomputed data and images.

   

This research has been financially supported by the specific support objective activity 1.1.1.2. “Post-doctoral Research Aid” of the Republic of Latvia (Project No. 1.1.1.2/VIAA/4/20/617 “Data-Driven Nonlinear Wave Modelling”), funded by the European Regional Development Fund (project id. N. 1.1.1.2/16/I/001).

Instructions to run the code

  • To perform a numerical simulation, run the file main.m.
  • Initial conditions and the choice of the numerical method are set in the same file main.m.
  • All parameter values are defined in the file Parameter_Values.m.
  • All variables are initialized in the file Define_Variables.m.
  • For convenience, all parameter values and variables are stored in structures: parm and vars, respectively.
  • All functions and numerical methods can be found and are defined in the folder Functions.
  • Optionally, simulation data and figures can be saved in the following folders: SavedData and Figures, respectively.