|
Neko 1.99.3
A portable framework for high-order spectral element flow simulations
|
Type encapsulating advection routines with dealiasing. More...


Public Member Functions | |
| procedure, pass(this) | compute (this, vx, vy, vz, fx, fy, fz, xh, coef, n, dt) |
| Add the advection term for the fluid, i.e. \(u \cdot \nabla u \), to the RHS. | |
| procedure, pass(this) | compute_scalar (this, vx, vy, vz, s, fs, xh, coef, n, dt) |
| Add the advection term for a scalar, i.e. \(u \cdot \nabla s \), to the RHS. | |
| procedure, pass(this) | compute_ale (this, vx, vy, vz, wm_x, wm_y, wm_z, fx, fy, fz, xh, coef, n, dt) |
| Add the advection term in ALE framework. | |
| procedure, pass(this) | recompute_metrics (this, coef, moving_boundary) |
| Update any metrics needed for the advection computation in ALE. | |
| procedure, pass(this) | init (this, lxd, coef) |
| Constructor. | |
| procedure, pass(this) | free (this) |
| Destructor. | |
| procedure(compute_adv), deferred, pass | compute (this, vx, vy, vz, fx, fy, fz, xh, coef, n, dt) |
| procedure(compute_scalar_adv), deferred, pass | compute_scalar (this, vx, vy, vz, s, fs, xh, coef, n, dt) |
| procedure(compute_ale_adv), deferred, pass | compute_ale (this, vx, vy, vz, wm_x, wm_y, wm_z, fx, fy, fz, xh, coef, n, dt) |
| procedure(advection_recompute_metrics), deferred, pass | recompute_metrics (this, coef, moving_boundary) |
| procedure(advection_free), deferred, pass | free (this) |
Public Attributes | |
| type(coef_t) | coef_gl |
| Coeffs of the higher-order space. | |
| type(coef_t), pointer | coef_gll |
| Coeffs of the original space in the simulation. | |
| type(interpolator_t) | gll_to_gl |
| Interpolator between the original and higher-order spaces. | |
| type(space_t) | xh_gl |
| The additional higher-order space used in dealiasing. | |
| type(space_t), pointer | xh_gll |
| The original space used in the simulation. | |
| real(kind=rp), dimension(:), allocatable | temp |
| real(kind=rp), dimension(:), allocatable | tbf |
| real(kind=rp), dimension(:), allocatable | tx |
| Temporary arrays. | |
| real(kind=rp), dimension(:), allocatable | ty |
| real(kind=rp), dimension(:), allocatable | tz |
| real(kind=rp), dimension(:), allocatable | vr |
| real(kind=rp), dimension(:), allocatable | vs |
| real(kind=rp), dimension(:), allocatable | vt |
| type(c_ptr) | temp_d = C_NULL_PTR |
Device pointer for temp | |
| type(c_ptr) | tbf_d = C_NULL_PTR |
Device pointer for tbf | |
| type(c_ptr) | tx_d = C_NULL_PTR |
Device pointer for tx | |
| type(c_ptr) | ty_d = C_NULL_PTR |
Device pointer for ty | |
| type(c_ptr) | tz_d = C_NULL_PTR |
Device pointer for tz | |
| type(c_ptr) | vr_d = C_NULL_PTR |
Device pointer for vr | |
| type(c_ptr) | vs_d = C_NULL_PTR |
Device pointer for vs | |
| type(c_ptr) | vt_d = C_NULL_PTR |
Device pointer for vt | |
Definition at line 53 of file adv_dealias.f90.
|
pure virtualinherited |
Definition at line 48 of file advection.f90.
| procedure, pass(this) adv_dealias::adv_dealias_t::compute | ( | class(adv_dealias_t), intent(inout) | this, |
| type(field_t), intent(inout) | vx, | ||
| type(field_t), intent(inout) | vy, | ||
| type(field_t), intent(inout) | vz, | ||
| type(field_t), intent(inout) | fx, | ||
| type(field_t), intent(inout) | fy, | ||
| type(field_t), intent(inout) | fz, | ||
| type(space_t), intent(in) | xh, | ||
| type(coef_t), intent(in) | coef, | ||
| integer, intent(in) | n, | ||
| real(kind=rp), intent(in), optional | dt | ||
| ) |
| vx | The x component of velocity. |
| vy | The y component of velocity. |
| vz | The z component of velocity. |
| fx | The x component of source term. |
| fy | The y component of source term. |
| fz | The z component of source term. |
| Xh | The function space. |
| coef | The coefficients of the (Xh, mesh) pair. |
| n | Typically the size of the mesh. |
| dt | Current time-step, not required for this method. |
Definition at line 88 of file adv_dealias.f90.
|
pure virtualinherited |
Definition at line 50 of file advection.f90.
| procedure, pass(this) adv_dealias::adv_dealias_t::compute_ale | ( | class(adv_dealias_t), intent(inout) | this, |
| type(field_t), intent(inout) | vx, | ||
| type(field_t), intent(inout) | vy, | ||
| type(field_t), intent(inout) | vz, | ||
| type(field_t), intent(inout) | wm_x, | ||
| type(field_t), intent(inout) | wm_y, | ||
| type(field_t), intent(inout) | wm_z, | ||
| type(field_t), intent(inout) | fx, | ||
| type(field_t), intent(inout) | fy, | ||
| type(field_t), intent(inout) | fz, | ||
| type(space_t), intent(in) | xh, | ||
| type(coef_t), intent(in) | coef, | ||
| integer, intent(in) | n, | ||
| real(kind=rp), intent(in), optional | dt | ||
| ) |
Definition at line 93 of file adv_dealias.f90.
|
pure virtualinherited |
Definition at line 49 of file advection.f90.
| procedure, pass(this) adv_dealias::adv_dealias_t::compute_scalar | ( | class(adv_dealias_t), intent(inout) | this, |
| type(field_t), intent(inout) | vx, | ||
| type(field_t), intent(inout) | vy, | ||
| type(field_t), intent(inout) | vz, | ||
| type(field_t), intent(inout) | s, | ||
| type(field_t), intent(inout) | fs, | ||
| type(space_t), intent(in) | xh, | ||
| type(coef_t), intent(in) | coef, | ||
| integer, intent(in) | n, | ||
| real(kind=rp), intent(in), optional | dt | ||
| ) |
| this | The object. |
| vx | The x component of velocity. |
| vy | The y component of velocity. |
| vz | The z component of velocity. |
| s | The scalar. |
| fs | The source term. |
| Xh | The function space. |
| coef | The coefficients of the (Xh, mesh) pair. |
| n | Typically the size of the mesh. |
| dt | Current time-step, not required for this method. |
Definition at line 91 of file adv_dealias.f90.
|
pure virtualinherited |
Definition at line 53 of file advection.f90.
Definition at line 99 of file adv_dealias.f90.
| procedure, pass(this) adv_dealias::adv_dealias_t::init | ( | class(adv_dealias_t), intent(inout), target | this, |
| integer, intent(in) | lxd, | ||
| type(coef_t), intent(inout), target | coef | ||
| ) |
| lxd | The polynomial order of the space used in the dealiasing. |
| coef | The coefficients of the (space, mesh) pair. |
Definition at line 97 of file adv_dealias.f90.
|
pure virtualinherited |
Definition at line 51 of file advection.f90.
| procedure, pass(this) adv_dealias::adv_dealias_t::recompute_metrics | ( | class(adv_dealias_t), intent(inout) | this, |
| type(coef_t), intent(in) | coef, | ||
| logical, intent(in) | moving_boundary | ||
| ) |
Definition at line 95 of file adv_dealias.f90.
| type(coef_t) adv_dealias::adv_dealias_t::coef_gl |
Definition at line 55 of file adv_dealias.f90.
Definition at line 57 of file adv_dealias.f90.
| type(interpolator_t) adv_dealias::adv_dealias_t::gll_to_gl |
Definition at line 59 of file adv_dealias.f90.
| real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::tbf |
Definition at line 64 of file adv_dealias.f90.
| type(c_ptr) adv_dealias::adv_dealias_t::tbf_d = C_NULL_PTR |
Definition at line 71 of file adv_dealias.f90.
| real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::temp |
Definition at line 64 of file adv_dealias.f90.
| type(c_ptr) adv_dealias::adv_dealias_t::temp_d = C_NULL_PTR |
Definition at line 69 of file adv_dealias.f90.
| real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::tx |
Definition at line 66 of file adv_dealias.f90.
| type(c_ptr) adv_dealias::adv_dealias_t::tx_d = C_NULL_PTR |
Definition at line 73 of file adv_dealias.f90.
| real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::ty |
Definition at line 66 of file adv_dealias.f90.
| type(c_ptr) adv_dealias::adv_dealias_t::ty_d = C_NULL_PTR |
Definition at line 75 of file adv_dealias.f90.
| real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::tz |
Definition at line 66 of file adv_dealias.f90.
| type(c_ptr) adv_dealias::adv_dealias_t::tz_d = C_NULL_PTR |
Definition at line 77 of file adv_dealias.f90.
| real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::vr |
Definition at line 67 of file adv_dealias.f90.
| type(c_ptr) adv_dealias::adv_dealias_t::vr_d = C_NULL_PTR |
Definition at line 79 of file adv_dealias.f90.
| real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::vs |
Definition at line 67 of file adv_dealias.f90.
| type(c_ptr) adv_dealias::adv_dealias_t::vs_d = C_NULL_PTR |
Definition at line 81 of file adv_dealias.f90.
| real(kind=rp), dimension(:), allocatable adv_dealias::adv_dealias_t::vt |
Definition at line 67 of file adv_dealias.f90.
| type(c_ptr) adv_dealias::adv_dealias_t::vt_d = C_NULL_PTR |
Definition at line 83 of file adv_dealias.f90.
| type(space_t) adv_dealias::adv_dealias_t::xh_gl |
Definition at line 61 of file adv_dealias.f90.
Definition at line 63 of file adv_dealias.f90.