|
Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|
Go to the source code of this file.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Definition in file device_mma_math.f90.
| subroutine, public device_mma_math::device_aa | ( | type(c_ptr) | aa_d, |
| type(c_ptr) | gg_d, | ||
| type(c_ptr) | diagx_d, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
Definition at line 584 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_add2inv2 | ( | type(c_ptr) | a_d, |
| type(c_ptr) | b_d, | ||
| real(kind=rp) | c, | ||
| integer(c_int) | n | ||
| ) |
Definition at line 505 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_bb | ( | type(c_ptr) | bb_d, |
| type(c_ptr) | gg_d, | ||
| type(c_ptr) | delx_d, | ||
| type(c_ptr) | diagx_d, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
Definition at line 555 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_delta_1dbeam | ( | type(c_ptr) | delta_d, |
| real(c_rp) | l_total, | ||
| real(c_rp) | le, | ||
| integer(c_int), value | offset, | ||
| integer(c_int), value | n | ||
| ) |
Definition at line 154 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_delx | ( | type(c_ptr) | delx_d, |
| type(c_ptr) | x_d, | ||
| type(c_ptr) | low_d, | ||
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | pij_d, | ||
| type(c_ptr) | qij_d, | ||
| type(c_ptr) | p0j_d, | ||
| type(c_ptr) | q0j_d, | ||
| type(c_ptr) | alpha_d, | ||
| type(c_ptr) | beta_d, | ||
| type(c_ptr) | lambda_d, | ||
| real(kind=rp) | epsi, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
Definition at line 486 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_deta | ( | type(c_ptr) | deta_d, |
| type(c_ptr) | eta_d, | ||
| type(c_ptr) | dx_d, | ||
| type(c_ptr) | x_d, | ||
| type(c_ptr) | beta_d, | ||
| real(c_rp) | epsi, | ||
| integer(c_int) | n | ||
| ) |
Definition at line 659 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_diagx | ( | type(c_ptr) | diagx_d, |
| type(c_ptr) | x_d, | ||
| type(c_ptr) | xsi_d, | ||
| type(c_ptr) | low_d, | ||
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | p0j_d, | ||
| type(c_ptr) | q0j_d, | ||
| type(c_ptr) | pij_d, | ||
| type(c_ptr) | qij_d, | ||
| type(c_ptr) | alpha_d, | ||
| type(c_ptr) | beta_d, | ||
| type(c_ptr) | eta_d, | ||
| type(c_ptr) | lambda_d, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
Definition at line 535 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_dx | ( | type(c_ptr) | dx_d, |
| type(c_ptr) | delx_d, | ||
| type(c_ptr) | diagx_d, | ||
| type(c_ptr) | gg_d, | ||
| type(c_ptr) | dlambda_d, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
Definition at line 616 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_dxsi | ( | type(c_ptr) | dxsi_d, |
| type(c_ptr) | xsi_d, | ||
| type(c_ptr) | dx_d, | ||
| type(c_ptr) | x_d, | ||
| type(c_ptr) | alpha_d, | ||
| real(c_rp) | epsi, | ||
| integer(c_int) | n | ||
| ) |
Definition at line 644 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_dy | ( | type(c_ptr) | dy_d, |
| type(c_ptr) | dely_d, | ||
| type(c_ptr) | dlambda_d, | ||
| type(c_ptr) | d_d, | ||
| type(c_ptr) | mu_d, | ||
| type(c_ptr) | y_d, | ||
| integer(c_int) | n | ||
| ) |
Definition at line 630 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_gg | ( | type(c_ptr) | gg_d, |
| type(c_ptr) | x_d, | ||
| type(c_ptr) | low_d, | ||
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | pij_d, | ||
| type(c_ptr) | qij_d, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
Definition at line 521 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_hess | ( | type(c_ptr) | hess_d, |
| type(c_ptr) | hijx_d, | ||
| type(c_ptr) | ljjxinv_d, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
Definition at line 170 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_kkt_rex | ( | type(c_ptr) | rex_d, |
| type(c_ptr) | df0dx_d, | ||
| type(c_ptr) | dfdx_d, | ||
| type(c_ptr) | xsi_d, | ||
| type(c_ptr) | eta_d, | ||
| type(c_ptr) | lambda_d, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
Definition at line 713 of file device_mma_math.f90.
| real(kind=rp) function, public device_mma_math::device_lcsc2 | ( | type(c_ptr) | a_d, |
| type(c_ptr) | b_d, | ||
| integer(c_int) | n | ||
| ) |
Definition at line 406 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_mattrans_v_mul | ( | type(c_ptr) | output_d, |
| type(c_ptr) | pij_d, | ||
| type(c_ptr) | lambda_d, | ||
| integer | m, | ||
| integer | n | ||
| ) |
Definition at line 239 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_max2 | ( | type(c_ptr) | a_d, |
| real(c_rp) | b, | ||
| type(c_ptr) | c_d, | ||
| real(c_rp) | d, | ||
| integer | n | ||
| ) |
Definition at line 371 of file device_mma_math.f90.
| real(kind=rp) function, public device_mma_math::device_maxval | ( | type(c_ptr) | rex_d, |
| integer(c_int) | n | ||
| ) |
Definition at line 452 of file device_mma_math.f90.
| real(kind=rp) function, public device_mma_math::device_maxval2 | ( | type(c_ptr) | dxx_d, |
| type(c_ptr) | xx_d, | ||
| real(kind=rp), intent(in) | cons, | ||
| integer | n | ||
| ) |
Definition at line 674 of file device_mma_math.f90.
| real(kind=rp) function, public device_mma_math::device_maxval3 | ( | type(c_ptr) | dx_d, |
| type(c_ptr) | x_d, | ||
| type(c_ptr) | alpha_d, | ||
| real(kind=rp), intent(in) | cons, | ||
| integer(c_int) | n | ||
| ) |
Definition at line 693 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_mma_dip_kkt | ( | type(c_ptr) | res_d, |
| type(c_ptr) | x_d, | ||
| type(c_ptr) | df0dx_d, | ||
| type(c_ptr) | dfdx_d, | ||
| type(c_ptr) | xmin_d, | ||
| type(c_ptr) | xmax_d, | ||
| type(c_ptr) | lambda_d, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
| res_d | Residuals, of size 3n (output). |
| x_d | Current design. |
| df0dx_d | Sensitivities of the objective. |
| dfdx_d | Sensitivities of the constraints, m x n. |
| xmin_d | Lower bounds of the design. |
| xmax_d | Upper bounds of the design. |
| lambda_d | Multipliers of the constraints. |
| n | Number of local design variables. |
| m | Number of constraints. |
Definition at line 742 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_mma_dipsolvesub1 | ( | type(c_ptr) | x_d, |
| type(c_ptr) | pjlambda_d, | ||
| type(c_ptr) | qjlambda_d, | ||
| type(c_ptr) | low_d, | ||
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | alpha_d, | ||
| type(c_ptr) | beta_d, | ||
| integer(c_int) | n | ||
| ) |
Definition at line 216 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_mma_gensub1 | ( | type(c_ptr) | low_d, |
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | x_d, | ||
| type(c_ptr) | xmin_d, | ||
| type(c_ptr) | xmax_d, | ||
| real(c_rp) | asyinit, | ||
| integer | n | ||
| ) |
Definition at line 255 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_mma_gensub2 | ( | type(c_ptr) | low_d, |
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | x_d, | ||
| type(c_ptr) | xold1_d, | ||
| type(c_ptr) | xold2_d, | ||
| type(c_ptr) | xdiff_d, | ||
| real(c_rp) | asydecr, | ||
| real(c_rp) | asyincr, | ||
| integer | n | ||
| ) |
Definition at line 271 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_mma_gensub3 | ( | type(c_ptr) | x_d, |
| type(c_ptr) | df0dx_d, | ||
| type(c_ptr) | dfdx_d, | ||
| type(c_ptr) | low_d, | ||
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | min_d, | ||
| type(c_ptr) | max_d, | ||
| type(c_ptr) | alpha_d, | ||
| type(c_ptr) | beta_d, | ||
| type(c_ptr) | p0j_d, | ||
| type(c_ptr) | q0j_d, | ||
| type(c_ptr) | pij_d, | ||
| type(c_ptr) | qij_d, | ||
| integer | n, | ||
| integer | m | ||
| ) |
Definition at line 289 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_mma_gensub3_dip | ( | type(c_ptr) | x_d, |
| type(c_ptr) | df0dx_d, | ||
| type(c_ptr) | dfdx_d, | ||
| type(c_ptr) | low_d, | ||
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | min_d, | ||
| type(c_ptr) | max_d, | ||
| type(c_ptr) | alpha_d, | ||
| type(c_ptr) | beta_d, | ||
| type(c_ptr) | p0j_d, | ||
| type(c_ptr) | q0j_d, | ||
| type(c_ptr) | pij_d, | ||
| type(c_ptr) | qij_d, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
| x_d | Current design. |
| df0dx_d | Sensitivities of the objective. |
| dfdx_d | Sensitivities of the constraints, m x n. |
| low_d | Lower asymptotes. |
| upp_d | Upper asymptotes. |
| min_d | Lower bounds of the design, with the move limit applied. |
| max_d | Upper bounds of the design, with the move limit applied. |
| alpha_d | Lower bounds of the subproblem (output). |
| beta_d | Upper bounds of the subproblem (output). |
| p0j_d | Coefficients p0j of the objective (output). |
| q0j_d | Coefficients q0j of the objective (output). |
| pij_d | Coefficients pij of the constraints, m x n (output). |
| qij_d | Coefficients qij of the constraints, m x n (output). |
| n | Number of local design variables. |
| m | Number of constraints. |
Definition at line 325 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_mma_gensub4 | ( | type(c_ptr) | x_d, |
| type(c_ptr) | low_d, | ||
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | pij_d, | ||
| type(c_ptr) | qij_d, | ||
| integer | n, | ||
| integer | m, | ||
| type(c_ptr) | bi_d | ||
| ) |
Definition at line 343 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_mma_ljjxinv | ( | type(c_ptr) | ljjxinv_d, |
| type(c_ptr) | pjlambda_d, | ||
| type(c_ptr) | qjlambda_d, | ||
| type(c_ptr) | x_d, | ||
| type(c_ptr) | low_d, | ||
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | alpha_d, | ||
| type(c_ptr) | beta_d, | ||
| integer(c_int) | n | ||
| ) |
And then remove the sensitivity for the active primal constraints Ljjxinv = merge(0.0_rp, Ljjxinv, x - alpha < NEKO_EPS) Ljjxinv = merge(0.0_rp, Ljjxinv, beta - x < NEKO_EPS)
Definition at line 193 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_mma_max | ( | type(c_ptr) | xsi_d, |
| type(c_ptr) | x_d, | ||
| type(c_ptr) | alpha_d, | ||
| integer | n | ||
| ) |
Definition at line 357 of file device_mma_math.f90.
Definition at line 469 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_prepare_aa_matrix | ( | type(c_ptr) | aa_d, |
| type(c_ptr) | s_d, | ||
| type(c_ptr) | lambda_d, | ||
| type(c_ptr) | d_d, | ||
| type(c_ptr) | mu_d, | ||
| type(c_ptr) | y_d, | ||
| type(c_ptr) | a_d, | ||
| real(c_rp) | zeta, | ||
| real(c_rp) | z, | ||
| integer, value | m | ||
| ) |
Definition at line 99 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_prepare_hessian | ( | type(c_ptr) | hess_d, |
| type(c_ptr) | y_d, | ||
| type(c_ptr) | mu_d, | ||
| type(c_ptr) | lambda_d, | ||
| integer, value | m | ||
| ) |
Definition at line 118 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_relambda | ( | type(c_ptr) | relambda_d, |
| type(c_ptr) | x_d, | ||
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | low_d, | ||
| type(c_ptr) | pij_d, | ||
| type(c_ptr) | qij_d, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
Definition at line 423 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_rex | ( | type(c_ptr) | rex_d, |
| type(c_ptr) | x_d, | ||
| type(c_ptr) | low_d, | ||
| type(c_ptr) | upp_d, | ||
| type(c_ptr) | pij_d, | ||
| type(c_ptr) | p0j_d, | ||
| type(c_ptr) | qij_d, | ||
| type(c_ptr) | q0j_d, | ||
| type(c_ptr) | lambda_d, | ||
| type(c_ptr) | xsi_d, | ||
| type(c_ptr) | eta_d, | ||
| integer(c_int) | n, | ||
| integer(c_int) | m | ||
| ) |
Definition at line 388 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_solve_linear_system | ( | type(c_ptr) | a_d, |
| type(c_ptr) | b_d, | ||
| integer(c_int), value | n, | ||
| integer(c_int) | info | ||
| ) |
Definition at line 132 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_sub2cons2 | ( | type(c_ptr) | rexsi_d, |
| type(c_ptr) | xsi_d, | ||
| type(c_ptr) | x_d, | ||
| type(c_ptr) | alpha_d, | ||
| real(kind=rp) | epsi, | ||
| integer(c_int) | n | ||
| ) |
Definition at line 437 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_update_hessian_z | ( | type(c_ptr), intent(in) | hess_d, |
| type(c_ptr), intent(in) | a_d, | ||
| integer, value | m | ||
| ) |
Definition at line 81 of file device_mma_math.f90.
| subroutine, public device_mma_math::device_updateaa | ( | type(c_ptr) | aa_d, |
| type(c_ptr) | globaltmp_mm_d, | ||
| type(c_ptr) | s_d, | ||
| type(c_ptr) | lambda_d, | ||
| type(c_ptr) | d_d, | ||
| type(c_ptr) | mu_d, | ||
| type(c_ptr) | y_d, | ||
| type(c_ptr) | a_d, | ||
| real(c_rp) | zeta, | ||
| real(c_rp) | z, | ||
| integer(c_int) | m | ||
| ) |
Definition at line 598 of file device_mma_math.f90.