MCTDH-X  v2.22
 All Classes Files Functions Variables Pages
abm_integrators Module Reference

This module contains the different ADAMS-BASHFORTH-MOULTON integrators. More...

Public Member Functions

subroutine ompabm (Psi, DtPsi, PsiDim, IntPeriod, AbsTime, IntOrder,
 OPENMP-ADAMS-BASHFORTH-MOULTON *

  • Library module containing an Adams-Bashforth-Moulton predictor- * corrector integrator. *
  • Contains: * ABM: The ABM integration routine. * AbsABMError: Computes the absolute error of the current ABM * integration step. * RelABMError: Computes the relative error of the current ABM * integration step. * WriteABMStep: In the current form WriteABMStep is just a dummy * routine doing absolutely nothing; it is included * here for formal reasons, but can (if desired) be * extended easily such that it writes the size and * error of the current integration step to a file. * ABMErrorMsg: Returns for a given error number a corresponding * error message. *

More...
 
subroutine abm (Psi, DtPsi, PsiDim, IntPeriod, AbsTime, IntOrder,
 Adams-Bashforth-Moulton Predictor-Corrector integration routine of MCTDH. More...
 
subroutine absabmerror (Predicted, Corrected, Psidim, Error)
 Subroutine for the error evaluation in ABM. More...
 
subroutine relabmerror (Predicted, Corrected, Psidim, Error)
 Subroutine for the relative error evaluation in ABM. More...
 
subroutine writeabmstep (Step, Order, Stepsize, Error)
 Writes the ABM steps. More...
 
subroutine abmerrormsg (Error, Msg)
 Writes ABM error messages. More...
 
subroutine coeff_ompabm (Psi, DtPsi, PsiDim,
 Coefficients ABM integrator (not working...). More...
 

Detailed Description

This module contains the different ADAMS-BASHFORTH-MOULTON integrators.

Member Function/Subroutine Documentation

subroutine abm_integrators::abm ( complex*16, dimension(psidim)  Psi,
complex*16, dimension(psidim)  DtPsi,
integer  PsiDim,
real*8  IntPeriod,
real*8  AbsTime,
integer  IntOrder 
)

Adams-Bashforth-Moulton Predictor-Corrector integration routine of MCTDH.

References orbital_equationofmotion::func().

Referenced by integration::integrator_nlevelorb(), integration::integrator_orb(), and cavitybec::propagate_cavityfield().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine abm_integrators::abmerrormsg ( integer  Error,
character*(*)  Msg 
)

Writes ABM error messages.

subroutine abm_integrators::absabmerror ( complex*16, dimension(psidim)  Predicted,
complex*16, dimension(psidim)  Corrected,
integer  Psidim,
real*8  Error 
)

Subroutine for the error evaluation in ABM.

Referenced by integration::integrator_nlevelorb(), integration::integrator_orb(), and cavitybec::propagate_cavityfield().

Here is the caller graph for this function:

subroutine abm_integrators::coeff_ompabm ( complex*16, dimension(psidim)  Psi,
complex*16, dimension(psidim)  DtPsi,
integer  PsiDim 
)

Coefficients ABM integrator (not working...).

References orbital_equationofmotion::func().

Here is the call graph for this function:

subroutine abm_integrators::ompabm ( complex*16, dimension(psidim), save  Psi,
complex*16, dimension(psidim), save  DtPsi,
integer  PsiDim,
real*8  IntPeriod,
real*8  AbsTime,
integer  IntOrder 
)

OPENMP-ADAMS-BASHFORTH-MOULTON *

  • Library module containing an Adams-Bashforth-Moulton predictor- * corrector integrator. *
  • Contains: * ABM: The ABM integration routine. * AbsABMError: Computes the absolute error of the current ABM * integration step. * RelABMError: Computes the relative error of the current ABM * integration step. * WriteABMStep: In the current form WriteABMStep is just a dummy * routine doing absolutely nothing; it is included * here for formal reasons, but can (if desired) be * extended easily such that it writes the size and * error of the current integration step to a file. * ABMErrorMsg: Returns for a given error number a corresponding * error message. *


  • SUBROUTINE OMPABM *
  • Integrates a system of complex first order differential equations * employing the Adams-Bashforth-Moulton predictor-corrector method. * The ABM routine runs with variable step sizes and (except for the * beginning) a fixed integration order. The ODE is of the form * dPsi/dt = Func(AbsTime,Psi) =: DtPsi. All computations are * performed with double precision. The routine allows a previous * integration to be resumed (e. g. after the integration had been * stopped to write Psi to a file), as long as the AuxPsi array * hasn't been overwritten and the integration order and error * tolerance hasn't been changed. To do so simply set the restart * flag "RestartABM" to ".false.". *
  • Input parameters: * Psi: The (complex) initial-value vector. * DtPsi: Time derivative of the initial-value vector (must * be passed to the integrator regardless of the * flag "RestartABM"). * PsiDim Length of Psi and DtPsi vectors. * IntPeriod: Lenght of time interval to be integrated. * AbsTime: Absolute time, i. e. Psi_initial=Psi(AbsTime). * IntOrder: Desired integration order. * InitStep: Size of first integration step. * TolError: Maximum error that is tolerated. * RestartABM: Restart flag; if false, a previous integration is * continued, otherwise a new integration is started * (see comment above for details). *
    • Output parameters: * Psi: Solution of the ODE at time AbsTime+IntPeriod. * DtPsi: DtPsi is undetermined. * Steps: Counter for the overall number of integration * steps. (Note that Steps isn't set to zero at the * beginning.) * RepeatedSteps: Counter for the number of failed and thus * repeated integration steps. (Note that * RepeatedSteps isn't set to zero at the * beginning.) * ErrorCode: Error code having the following meaning: * 0: everything was o. k., * 1: illegal integration order, * 2: stepsize underflow. *
  • Other parameters: * AuxPsi: Auxiliary array of (minimum) size * PsiDim*(IntOrder+1). *
  • External routines: * Func: Computes the time derivative DtPsi of Psi at time * AbsTime. Called as Func(AbsTime,Psi,DtPsi). * CalcError: Determines the error of the current integration * step. Called as CalcError(Predicted_Psi, * Corrected_Psi,PsiDim,Error,). * WriteStep: Writes the stepsize and error to a file. * Called as WriteStep(Step,Order,Stepsize,Error). *
  • V6.0 MB *

References orbital_equationofmotion::func().

Referenced by integration::integrator_nlevelorb(), and integration::integrator_orb().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine abm_integrators::relabmerror ( complex*16, dimension(psidim)  Predicted,
complex*16, dimension(psidim)  Corrected,
integer  Psidim,
real*8  Error 
)

Subroutine for the relative error evaluation in ABM.

subroutine abm_integrators::writeabmstep ( integer  Step,
integer  Order,
real*8  Stepsize,
real*8  Error 
)

Writes the ABM steps.


The documentation for this module was generated from the following file: