|
Neko 1.99.9
A portable framework for high-order spectral element flow simulations
|
CPU matrix-vector product for a Helmholtz problem, reading the geometric factors \( G_{ij} \) from their compressed form in coef_t. More...


Public Member Functions | |
| procedure, pass(this) | compute (this, w, u, coef, msh, xh) |
| Compute the product. | |
| procedure, pass(this) | compute_vector ax_helm_compr_compute_vector |
| Compute the product (vector version). | |
| procedure, pass(this) | compute (this, w, u, coef, msh, xh) |
| Compute the product. | |
| procedure(ax_compute), deferred, pass | compute (this, w, u, coef, msh, xh) |
| procedure, pass(this) | compute_vector (this, au, av, aw, u, v, w, coef, msh, xh) |
| procedure(ax_compute_vector), deferred, pass | compute_vector (this, au, av, aw, u, v, w, coef, msh, xh) |
| procedure, pass(this) | free (this) |
| Release resources held by a matrix-vector product. | |
Elements with the same geometric factors share one copy of them, coefG11_compr etc., and element e reads the copy coefcompression_inds(e). On a mesh of repeated element shapes this takes most of the six factors, 48 of the 80 bytes per point in double precision, out of the memory traffic of the product. Without compressed factors, see coef_t::enable_geo_compression, the product is the one of ax_helm_cpu_t.
Definition at line 55 of file ax_helm_compr_cpu.f90.
|
pure virtualinherited |
| procedure, pass(this) ax_helm_compr_cpu::ax_helm_compr_cpu_t::compute | ( | class(ax_helm_compr_cpu_t), intent(in) | this, |
| real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(inout) | w, | ||
| real(kind=rp), dimension(xh%lx, xh%ly, xh%lz, msh%nelv), intent(in) | u, | ||
| type(coef_t), intent(in) | coef, | ||
| type(mesh_t), intent(in) | msh, | ||
| type(space_t), intent(in) | xh | ||
| ) |
| au | Result for the first component of the vector. |
| av | Result for the first component of the vector. |
| aw | Result for the first component of the vector. |
| u | The first component of the vector. |
| v | The second component of the vector. |
| w | The third component of the vector. |
| coef | Coefficients. |
| msh | Mesh. |
| Xh | Function space \( X_h \). Compute the product. |
| w | Vector of size (lx,ly,lz,nelv). |
| u | Vector of size (lx,ly,lz,nelv). |
| coef | Coefficients. |
| msh | Mesh. |
| Xh | Function space \( X_h \). |
Definition at line 58 of file ax_helm_compr_cpu.f90.
|
inherited |
| au | Result for the first component of the vector. |
| av | Result for the first component of the vector. |
| aw | Result for the first component of the vector. |
| u | The first component of the vector. |
| v | The second component of the vector. |
| w | The third component of the vector. |
| coef | Coefficients. |
| msh | Mesh. |
| Xh | Function space \( X_h \). Compute the product. |
| w | Vector of size (lx,ly,lz,nelv). |
| u | Vector of size (lx,ly,lz,nelv). |
| coef | Coefficients. |
| msh | Mesh. |
| Xh | Function space \( X_h \). |
Definition at line 46 of file ax_helm_cpu.f90.
|
pure virtualinherited |
|
inherited |
Definition at line 47 of file ax_helm.f90.
Definition at line 60 of file ax_helm_compr_cpu.f90.