This module contains the different ADAMS-BASHFORTH-MOULTON integrators.
More...
|
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...
|
|
This module contains the different ADAMS-BASHFORTH-MOULTON integrators.
subroutine abm_integrators::abm |
( |
complex*16, dimension(psidim) |
Psi, |
|
|
complex*16, dimension(psidim) |
DtPsi, |
|
|
integer |
PsiDim, |
|
|
real*8 |
IntPeriod, |
|
|
real*8 |
AbsTime, |
|
|
integer |
IntOrder |
|
) |
| |
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 abm_integrators::coeff_ompabm |
( |
complex*16, dimension(psidim) |
Psi, |
|
|
complex*16, dimension(psidim) |
DtPsi, |
|
|
integer |
PsiDim |
|
) |
| |
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().
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 |
|
) |
| |
The documentation for this module was generated from the following file: