|
Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|
Type encapsulating advection routines with no dealiasing applied. More...


Public Member Functions | |
| procedure, pass(this) | compute_linear (this, vx, vy, vz, vxb, vyb, vzb, fx, fy, fz, xh, coef, n) |
| Add the linearized advection term for the fluid, i.e. \(u' \cdot \nabla \bar{U} + \bar{U} \cdot \nabla u' \), to the RHS. | |
| procedure, pass(this) | compute_adjoint (this, vx, vy, vz, vxb, vyb, vzb, fx, fy, fz, xh, coef, n) |
| Add the adjoint advection term for the fluid in weak form, i.e. \( \int_\Omega v \cdot u' (\nabla \bar{U})^T u^\dagger d\Omega
+ \int_\Omega \nabla v \cdot (\bar{U} \otimes u^\dagger) d \Omega \) , to the RHS. | |
| procedure, pass(this) | compute_adjoint_scalar (this, vxb, vyb, vzb, s, fs, xh, coef, n, dt) |
| Compute the adjoint passive scalar. | |
| procedure, pass(this) | init (this, coef) |
| Constructor. | |
| procedure, pass(this) | free (this) |
| Destructor. | |
| procedure(compute_adv_lin), deferred, pass | compute_linear (this, vx, vy, vz, vxb, vyb, vzb, fx, fy, fz, xh, coef, n) |
| procedure(compute_adv_lin), deferred, pass | compute_adjoint (this, vx, vy, vz, vxb, vyb, vzb, fx, fy, fz, xh, coef, n) |
| procedure(compute_scalar_adv_lin), deferred, pass | compute_adjoint_scalar (this, vxb, vyb, vzb, s, fs, xh, coef, n, dt) |
| procedure(advection_adjoint_free), deferred, pass | free (this) |
Public Attributes | |
| real(kind=rp), dimension(:), allocatable | temp |
| type(c_ptr) | temp_d = C_NULL_PTR |
Definition at line 55 of file adv_adjoint_no_dealias.f90.
| procedure, pass(this) adv_lin_no_dealias::adv_lin_no_dealias_t::compute_adjoint | ( | class(adv_lin_no_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) | vxb, | ||
| type(field_t), intent(inout) | vyb, | ||
| type(field_t), intent(inout) | vzb, | ||
| type(field_t), intent(inout) | fx, | ||
| type(field_t), intent(inout) | fy, | ||
| type(field_t), intent(inout) | fz, | ||
| type(space_t), intent(inout) | xh, | ||
| type(coef_t), intent(inout) | coef, | ||
| integer, intent(in) | n | ||
| ) |
| this | The object. |
| vx | The x component of adjoint velocity. |
| vy | The y component of adjoint velocity. |
| vz | The z component of adjoint velocity. |
| vxb | The x component of baseflow. |
| vyb | The y component of baseflow. |
| vzb | The z component of baseflow. |
| 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. |
Definition at line 68 of file adv_adjoint_no_dealias.f90.
|
pure virtualinherited |
Definition at line 49 of file advection_adjoint.f90.
| procedure, pass(this) adv_lin_no_dealias::adv_lin_no_dealias_t::compute_adjoint_scalar | ( | class(adv_lin_no_dealias_t), intent(inout) | this, |
| type(field_t), intent(inout) | vxb, | ||
| type(field_t), intent(inout) | vyb, | ||
| type(field_t), intent(inout) | vzb, | ||
| type(field_t), intent(inout) | s, | ||
| type(field_t), intent(inout) | fs, | ||
| type(space_t), intent(inout) | xh, | ||
| type(coef_t), intent(inout) | coef, | ||
| integer, intent(in) | n, | ||
| real(kind=rp), intent(in), optional | dt | ||
| ) |
| this | The object. |
| vxb | The x component of velocity. |
| vyb | The y component of velocity. |
| vzb | The z component of velocity. |
| s | The adjoint 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 73 of file adv_adjoint_no_dealias.f90.
|
pure virtualinherited |
Definition at line 50 of file advection_adjoint.f90.
| procedure, pass(this) adv_lin_no_dealias::adv_lin_no_dealias_t::compute_linear | ( | class(adv_lin_no_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) | vxb, | ||
| type(field_t), intent(inout) | vyb, | ||
| type(field_t), intent(inout) | vzb, | ||
| type(field_t), intent(inout) | fx, | ||
| type(field_t), intent(inout) | fy, | ||
| type(field_t), intent(inout) | fz, | ||
| type(space_t), intent(inout) | xh, | ||
| type(coef_t), intent(inout) | coef, | ||
| integer, intent(in) | n | ||
| ) |
| this | The object. |
| vx | The x component of perturbed velocity. |
| vy | The y component of perturbed velocity. |
| vz | The z component of perturbed velocity. |
| vxb | The x component of baseflow. |
| vyb | The y component of baseflow. |
| vzb | The z component of baseflow. |
| 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. |
Definition at line 62 of file adv_adjoint_no_dealias.f90.
|
pure virtualinherited |
Definition at line 48 of file advection_adjoint.f90.
| procedure, pass(this) adv_lin_no_dealias::adv_lin_no_dealias_t::free | ( | class(adv_lin_no_dealias_t), intent(inout) | this | ) |
Definition at line 82 of file adv_adjoint_no_dealias.f90.
|
pure virtualinherited |
Definition at line 52 of file advection_adjoint.f90.
| procedure, pass(this) adv_lin_no_dealias::adv_lin_no_dealias_t::init | ( | class(adv_lin_no_dealias_t), intent(inout) | this, |
| type(coef_t), intent(in) | coef | ||
| ) |
| this | The object. |
| coef | The coefficients of the (space, mesh) pair. |
Definition at line 80 of file adv_adjoint_no_dealias.f90.
| real(kind=rp), dimension(:), allocatable adv_lin_no_dealias::adv_lin_no_dealias_t::temp |
Definition at line 56 of file adv_adjoint_no_dealias.f90.
| type(c_ptr) adv_lin_no_dealias::adv_lin_no_dealias_t::temp_d = C_NULL_PTR |
Definition at line 57 of file adv_adjoint_no_dealias.f90.