AQUAgpusph 5.0.4
Loading...
Searching...
No Matches
adam_bashforth.cl File Reference

Improved Euler time integration scheme. More...

Include dependency graph for adam_bashforth.cl:

Macros

#define TSCHEME_ADAMS_BASHFORTH_STEPS   5u
#define DYDT_1(dydt_0)
#define DYDT_2(dydt_0, dydt_1)
#define DYDT_3(dydt_0, dydt_1, dydt_2)
#define DYDT_4(dydt_0, dydt_1, dydt_2, dydt_3)
#define DYDT_5(dydt_0, dydt_1, dydt_2, dydt_3, dydt_4)

Functions

__kernel void predictor (__global vec *r, __global vec *u, __global vec *dudt, __global float *rho, __global float *drhodt, __global vec *r_in, __global vec *u_in, __global vec *dudt_in, __global float *rho_in, __global float *drhodt_in, usize N)
 Adams-Bashforth time integration scheme predictor stage.
__kernel void sort (const __global vec *dudt_as1_in, __global vec *dudt_as1, const __global vec *dudt_as2_in, __global vec *dudt_as2, const __global vec *dudt_as3_in, __global vec *dudt_as3, const __global vec *dudt_as4_in, __global vec *dudt_as4, const __global float *drhodt_as1_in, __global float *drhodt_as1, const __global float *drhodt_as2_in, __global float *drhodt_as2, const __global float *drhodt_as3_in, __global float *drhodt_as3, const __global float *drhodt_as4_in, __global float *drhodt_as4, const __global usize *id_sorted, usize N)
 Sort the stored Adams-Bashforth stored variation rates.
__kernel void corrector (__global int *imove, __global unsigned int *iset, __global vec *r, __global vec *u, __global vec *dudt, __global float *rho, __global float *drhodt, __global vec *dudt_as1, __global float *drhodt_as1, __global vec *dudt_as2, __global float *drhodt_as2, __global vec *dudt_as3, __global float *drhodt_as3, __global vec *dudt_as4, __global float *drhodt_as4, usize N, float dt, unsigned int iter)
 Improved Euler time integration scheme corrector stage.
__kernel void postcorrector (const __global vec *dudt_as1, const __global float *drhodt_as1, const __global vec *dudt_as2, const __global float *drhodt_as2, const __global vec *dudt_as3, const __global float *drhodt_as3, const __global vec *dudt, const __global float *drhodt, __global vec *dudt_as1_in, __global float *drhodt_as1_in, __global vec *dudt_as2_in, __global float *drhodt_as2_in, __global vec *dudt_as3_in, __global float *drhodt_as3_in, __global vec *dudt_as4_in, __global float *drhodt_as4_in, usize N)
 Backup de data for the sorting algorithm.

Detailed Description

Improved Euler time integration scheme.

Time integration is based in the following quasi-second order Predictor-Corrector integration scheme:

  • \( \mathbf{u}_{n+1} = \mathbf{u}_{n} + \frac{\Delta t}{2} \left( \left. \frac{\mathrm{d}\mathbf{u}}{\mathrm{d}t} \right\vert_{n+1/2} + \left. \frac{\mathrm{d}\mathbf{u}}{\mathrm{d}t} \right\vert_{n-1/2} \right) \)
  • \( \mathbf{r}_{n+1} = \mathbf{r}_{n} + \Delta t \, \mathbf{u}_{n} + \frac{\Delta t^2}{4} \left( \left. \frac{\mathrm{d}\mathbf{u}}{\mathrm{d}t} \right\vert_{n+1/2} + \left. \frac{\mathrm{d}\mathbf{u}}{\mathrm{d}t} \right\vert_{n-1/2} \right) \)
  • \( \rho_{n+1} = \rho_{n} + \frac{\Delta t}{2} \left( \left. \frac{\mathrm{d}\rho}{\mathrm{d}t} \right\vert_{n+1/2} + \left. \frac{\mathrm{d}\rho}{\mathrm{d}t} \right\vert_{n-1/2} \right) \)