|
Neko 1.99.9
A portable framework for high-order spectral element flow simulations
|
Implements non_normal_aligned_t.
Data Types | |
| type | non_normal_aligned_t |
| Axis-aligned mixed Dirichlet condition in the non-normal direction. More... | |
Functions/Subroutines | |
| subroutine | non_normal_aligned_init (this, coef, json) |
| Construct the boundary condition from JSON. | |
| subroutine | non_normal_aligned_init_from_components (this, coef, value) |
| Construct the boundary condition from a uniform global vector. | |
| subroutine | non_normal_aligned_set_values (this, value_x, value_y, value_z) |
| Set inhomogeneous prescribed global vector components. | |
| subroutine | non_normal_aligned_apply_scalar (this, x, n, time, strong) |
| No-op scalar application. | |
| subroutine | non_normal_aligned_apply_vector (this, x, y, z, n, time, strong) |
| Apply the tangential components of the prescribed vector on the CPU. | |
| subroutine | non_normal_aligned_apply_scalar_dev (this, x_d, time, strong, strm) |
| No-op scalar application on the device. | |
| subroutine | non_normal_aligned_apply_vector_dev (this, x_d, y_d, z_d, time, strong, strm) |
| Apply the tangential components of the prescribed vector on the device. | |
| subroutine | non_normal_aligned_get_normal_axis (this, sx, sy, sz, facet, el) |
| Estimate which global axis is normal to a marked facet. | |
| subroutine | non_normal_aligned_finalize (this) |
| Finalize the boundary condition. | |
| subroutine | non_normal_aligned_free (this) |
| Free the boundary condition and its nested storage. | |
|
private |
| x | Scalar field values. |
| n | Number of entries in x. |
| time | Current time state. |
| strong | Whether to apply the strong form. |
Definition at line 220 of file non_normal_aligned.f90.
|
private |
| x_d | Device pointer to the scalar field. |
| time | Current time state. |
| strong | Whether to apply the strong form. |
| strm | Device stream. |
Definition at line 276 of file non_normal_aligned.f90.
|
private |
Each nested Dirichlet boundary condition contributes only its compact mask. The corresponding component values are stored in the same compact ordering as that mask.
| x | x-component of the field. |
| y | y-component of the field. |
| z | z-component of the field. |
| n | Number of entries in each component array. |
| time | Current time state. |
| strong | Whether to apply the strong form. |
Definition at line 238 of file non_normal_aligned.f90.
|
private |
Uses the compact per-component storage together with the masks of the nested Dirichlet boundary conditions.
| x_d | Device pointer to the x-component. |
| y_d | Device pointer to the y-component. |
| z_d | Device pointer to the z-component. |
| time | Current time state. |
| strong | Whether to apply the strong form. |
| strm | Device stream. |
Definition at line 293 of file non_normal_aligned.f90.

|
private |
Marks the two tangential component conditions for each facet, finalizes the nested Dirichlet masks, allocates compact component-value storage, and populates it for the uniform-value case.
Definition at line 380 of file non_normal_aligned.f90.
|
private |
Definition at line 465 of file non_normal_aligned.f90.
|
private |
| [out] | sx | Deviation from an x-aligned normal. |
| [out] | sy | Deviation from a y-aligned normal. |
| [out] | sz | Deviation from a z-aligned normal. |
| [in] | facet | Facet id on the reference hex. |
| [in] | el | Element id. |
Definition at line 332 of file non_normal_aligned.f90.
| subroutine non_normal_aligned::non_normal_aligned_init | ( | class(non_normal_aligned_t), intent(inout), target | this, |
| type(coef_t), intent(in), target | coef, | ||
| type(json_file), intent(inout) | json | ||
| ) |
| [in] | coef | The SEM coefficients. |
| [in,out] | json | The JSON object configuring the boundary condition. |
Definition at line 114 of file non_normal_aligned.f90.
|
private |
| [in] | coef | The SEM coefficients. |
| [in] | value | Global vector whose tangential components are enforced. |
Definition at line 164 of file non_normal_aligned.f90.
|
private |
The vectors are stored in compact form and must match the component-wise mask sizes of bc_x, bc_y and bc_z. Therefore this routine must be called only after the nested masks have been finalized.
| [in] | value_x | Prescribed x values ordered like bc_xmsk(1:). |
| [in] | value_y | Prescribed y values ordered like bc_ymsk(1:). |
| [in] | value_z | Prescribed z values ordered like bc_zmsk(1:). |
Definition at line 186 of file non_normal_aligned.f90.