Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
mma.cu File Reference
#include <stdio.h>
#include <stdlib.h>
#include <cuda_runtime.h>
#include <cusolverDn.h>
#include <neko/device/device_config.h>
#include <neko/device/cuda/check.h>
#include <neko/math/bcknd/device/device_mpi_reduce.h>
#include <neko/math/bcknd/device/device_mpi_op.h>
#include "mma_kernel.h"
Include dependency graph for mma.cu:

Go to the source code of this file.

Functions

void mma_update_hessian_z_cuda (void *Hess, void *a, int *m)
 
void mma_prepare_aa_matrix_cuda (void *AA, void *s, void *lambda, void *d, void *mu, void *y, void *a, real *zeta, real *z, int *m)
 
void mma_prepare_hessian_cuda (void *Hess, void *y, void *mu, void *lambda, int *m)
 
void cuda_custom_solver (void *A, void *b, int n, int *info)
 
void cuSOLVER_wrapper (void *A, void *b, int n, int *jj)
 
void custom_solve_linear_system (void *A, void *b, int n, int *info)
 
void delta_1dbeam_cuda (void *Delta, real *L_total, real *Le, int *offset, int *n)
 
void cuda_Hess (void *Hess, void *hijx, void *Ljjxinv, int *n, int *m)
 
void mma_Ljjxinv_cuda (void *Ljjxinv, void *pjlambda, void *qjlambda, void *x, void *low, void *upp, void *alpha, void *beta, int *n)
 
void mma_dipsolvesub1_cuda (void *x, void *pjlambda, void *qjlambda, void *low, void *upp, void *alpha, void *beta, int *n)
 
void mattrans_v_mul_cuda (void *output, void *pij, void *lambda, int *m, int *n)
 
void mma_gensub4_cuda (const void *x, const void *low, const void *upp, const void *pij, const void *qij, const int *n, const int *m, void *bi)
 
void mma_gensub3_cuda (void *x, void *df0dx, void *dfdx, void *low, void *upp, void *xmin, void *xmax, void *alpha, void *beta, void *p0j, void *q0j, void *pij, void *qij, int *n, int *m)
 
void mma_gensub2_cuda (void *low, void *upp, void *x, void *xold1, void *xold2, void *xdiff, real *asydecr, real *asyincr, int *n)
 
void mma_gensub1_cuda (void *low, void *upp, void *x, void *xmin, void *xmax, real *asyinit, int *n)
 
void cuda_mma_max (void *xsi, void *x, void *alpha, int *n)
 
void cuda_relambda (void *relambda, void *x, void *xupp, void *xlow, void *pij, void *qij, int *n, int *m)
 
void cuda_sub2cons2 (void *a, void *b, void *c, void *d, real *e, int *n)
 
real cuda_maxval (void *a, int *n)
 
void cuda_delx (void *delx, void *x, void *xlow, void *xupp, void *pij, void *qij, void *p0j, void *q0j, void *alpha, void *beta, void *lambda, real *epsi, int *n, int *m)
 
void cuda_GG (void *GG, void *x, void *xlow, void *xupp, void *pij, void *qij, int *n, int *m)
 
void cuda_diagx (void *diagx, void *x, void *xsi, void *xlow, void *xupp, void *p0j, void *q0j, void *pij, void *qij, void *alpha, void *beta, void *eta, void *lambda, int *n, int *m)
 
void cuda_bb (void *bb, void *GG, void *delx, void *diagx, int *n, int *m)
 
void cuda_AA (void *AA, void *GG, void *diagx, int *n, int *m)
 
void cuda_dx (void *dx, void *delx, void *diagx, void *GG, void *dlambda, int *n, int *m)
 
void cuda_dxsi (void *dxsi, void *xsi, void *dx, void *x, void *alpha, real *epsi, int *n)
 
void cuda_deta (void *deta, void *eta, void *dx, void *x, void *beta, real *epsi, int *n)
 
void cuda_rex (void *rex, void *x, void *xlow, void *xupp, void *pij, void *p0j, void *qij, void *q0j, void *lambda, void *xsi, void *eta, int *n, int *m)
 
void cuda_rey (void *rey, void *c, void *d, void *y, void *lambda, void *mu, int *n)
 
void cuda_sub2cons (void *a, void *b, void *c, real *d, int *n)
 
real cuda_norm (void *a, int *n)
 
void cuda_dely (void *dely, void *c, void *d, void *y, void *lambda, real *epsi, int *n)
 
real cuda_maxval2 (void *a, void *b, real *cons, int *n)
 
real cuda_maxval3 (void *a, void *b, void *c, real *cons, int *n)
 
void cuda_kkt_rex (void *rex, void *df0dx, void *dfdx, void *xsi, void *eta, void *lambda, int *n, int *m)
 
void cuda_maxcons (void *a, real *b, real *c, void *d, int *n)
 
real cuda_lcsc2 (void *a, void *b, int *n)
 
void cuda_mpisum (void *a, int *n)
 
void cuda_add2inv2 (void *a, void *b, real *c, int *n)
 
void cuda_max2 (void *a, real *b, void *c, real *d, int *n)
 
void cuda_updatebb (void *bb, void *dellambda, void *dely, void *d, void *mu, void *y, real *delz, int *m)
 
void cuda_updateAA (void *AA, void *globaltmp_mm, void *s, void *lambda, void *d, void *mu, void *y, void *a, real *zeta, real *z, int *m)
 
void cuda_dy (void *dy, void *dely, void *dlambda, void *d, void *mu, void *y, int *n)
 

Variables

int mma_red_s = 0
 
realmma_bufred = NULL
 
realmma_bufred_d = NULL
 

Detailed Description

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of the authors nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

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 mma.cu.

Function Documentation

◆ cuda_AA()

void cuda_AA ( void AA,
void GG,
void diagx,
int n,
int m 
)

Definition at line 538 of file mma.cu.

◆ cuda_add2inv2()

void cuda_add2inv2 ( void a,
void b,
real c,
int n 
)

Definition at line 763 of file mma.cu.

◆ cuda_bb()

void cuda_bb ( void bb,
void GG,
void delx,
void diagx,
int n,
int m 
)

Definition at line 511 of file mma.cu.

◆ cuda_custom_solver()

void cuda_custom_solver ( void A,
void b,
int  n,
int info 
)

Definition at line 142 of file mma.cu.

◆ cuda_delx()

void cuda_delx ( void delx,
void x,
void xlow,
void xupp,
void pij,
void qij,
void p0j,
void q0j,
void alpha,
void beta,
void lambda,
real epsi,
int n,
int m 
)

Definition at line 475 of file mma.cu.

◆ cuda_dely()

void cuda_dely ( void dely,
void c,
void d,
void y,
void lambda,
real epsi,
int n 
)

Definition at line 654 of file mma.cu.

◆ cuda_deta()

void cuda_deta ( void deta,
void eta,
void dx,
void x,
void beta,
real epsi,
int n 
)

Definition at line 588 of file mma.cu.

◆ cuda_diagx()

void cuda_diagx ( void diagx,
void x,
void xsi,
void xlow,
void xupp,
void p0j,
void q0j,
void pij,
void qij,
void alpha,
void beta,
void eta,
void lambda,
int n,
int m 
)

Definition at line 499 of file mma.cu.

◆ cuda_dx()

void cuda_dx ( void dx,
void delx,
void diagx,
void GG,
void dlambda,
int n,
int m 
)

Definition at line 568 of file mma.cu.

◆ cuda_dxsi()

void cuda_dxsi ( void dxsi,
void xsi,
void dx,
void x,
void alpha,
real epsi,
int n 
)

Definition at line 578 of file mma.cu.

◆ cuda_dy()

void cuda_dy ( void dy,
void dely,
void dlambda,
void d,
void mu,
void y,
int n 
)

Definition at line 799 of file mma.cu.

◆ cuda_GG()

void cuda_GG ( void GG,
void x,
void xlow,
void xupp,
void pij,
void qij,
int n,
int m 
)

Definition at line 489 of file mma.cu.

◆ cuda_Hess()

void cuda_Hess ( void Hess,
void hijx,
void Ljjxinv,
int n,
int m 
)

Definition at line 237 of file mma.cu.

◆ cuda_kkt_rex()

void cuda_kkt_rex ( void rex,
void df0dx,
void dfdx,
void xsi,
void eta,
void lambda,
int n,
int m 
)

Definition at line 712 of file mma.cu.

◆ cuda_lcsc2()

real cuda_lcsc2 ( void a,
void b,
int n 
)

Definition at line 730 of file mma.cu.

◆ cuda_max2()

void cuda_max2 ( void a,
real b,
void c,
real d,
int n 
)

Definition at line 771 of file mma.cu.

◆ cuda_maxcons()

void cuda_maxcons ( void a,
real b,
real c,
void d,
int n 
)

Definition at line 722 of file mma.cu.

◆ cuda_maxval()

real cuda_maxval ( void a,
int n 
)

Definition at line 443 of file mma.cu.

◆ cuda_maxval2()

real cuda_maxval2 ( void a,
void b,
real cons,
int n 
)

Definition at line 663 of file mma.cu.

◆ cuda_maxval3()

real cuda_maxval3 ( void a,
void b,
void c,
real cons,
int n 
)

Definition at line 688 of file mma.cu.

◆ cuda_mma_max()

void cuda_mma_max ( void xsi,
void x,
void alpha,
int n 
)

Definition at line 389 of file mma.cu.

◆ cuda_mpisum()

void cuda_mpisum ( void a,
int n 
)

Definition at line 755 of file mma.cu.

◆ cuda_norm()

real cuda_norm ( void a,
int n 
)

Definition at line 629 of file mma.cu.

◆ cuda_relambda()

void cuda_relambda ( void relambda,
void x,
void xupp,
void xlow,
void pij,
void qij,
int n,
int m 
)

Definition at line 398 of file mma.cu.

◆ cuda_rex()

void cuda_rex ( void rex,
void x,
void xlow,
void xupp,
void pij,
void p0j,
void qij,
void q0j,
void lambda,
void xsi,
void eta,
int n,
int m 
)

Definition at line 598 of file mma.cu.

◆ cuda_rey()

void cuda_rey ( void rey,
void c,
void d,
void y,
void lambda,
void mu,
int n 
)

Definition at line 610 of file mma.cu.

◆ cuda_sub2cons()

void cuda_sub2cons ( void a,
void b,
void c,
real d,
int n 
)

Definition at line 621 of file mma.cu.

◆ cuda_sub2cons2()

void cuda_sub2cons2 ( void a,
void b,
void c,
void d,
real e,
int n 
)

Definition at line 432 of file mma.cu.

◆ cuda_updateAA()

void cuda_updateAA ( void AA,
void globaltmp_mm,
void s,
void lambda,
void d,
void mu,
void y,
void a,
real zeta,
real z,
int m 
)

Definition at line 789 of file mma.cu.

◆ cuda_updatebb()

void cuda_updatebb ( void bb,
void dellambda,
void dely,
void d,
void mu,
void y,
real delz,
int m 
)

Definition at line 779 of file mma.cu.

◆ cuSOLVER_wrapper()

void cuSOLVER_wrapper ( void A,
void b,
int  n,
int jj 
)

Definition at line 163 of file mma.cu.

◆ custom_solve_linear_system()

void custom_solve_linear_system ( void A,
void b,
int  n,
int info 
)

Definition at line 207 of file mma.cu.

◆ delta_1dbeam_cuda()

void delta_1dbeam_cuda ( void Delta,
real L_total,
real Le,
int offset,
int n 
)

Definition at line 228 of file mma.cu.

◆ mattrans_v_mul_cuda()

void mattrans_v_mul_cuda ( void output,
void pij,
void lambda,
int m,
int n 
)

Definition at line 287 of file mma.cu.

◆ mma_dipsolvesub1_cuda()

void mma_dipsolvesub1_cuda ( void x,
void pjlambda,
void qjlambda,
void low,
void upp,
void alpha,
void beta,
int n 
)

Definition at line 277 of file mma.cu.

◆ mma_gensub1_cuda()

void mma_gensub1_cuda ( void low,
void upp,
void x,
void xmin,
void xmax,
real asyinit,
int n 
)

Definition at line 379 of file mma.cu.

◆ mma_gensub2_cuda()

void mma_gensub2_cuda ( void low,
void upp,
void x,
void xold1,
void xold2,
void xdiff,
real asydecr,
real asyincr,
int n 
)

Definition at line 366 of file mma.cu.

◆ mma_gensub3_cuda()

void mma_gensub3_cuda ( void x,
void df0dx,
void dfdx,
void low,
void upp,
void xmin,
void xmax,
void alpha,
void beta,
void p0j,
void q0j,
void pij,
void qij,
int n,
int m 
)

Definition at line 350 of file mma.cu.

◆ mma_gensub4_cuda()

void mma_gensub4_cuda ( const void x,
const void low,
const void upp,
const void pij,
const void qij,
const int n,
const int m,
void bi 
)

Definition at line 296 of file mma.cu.

◆ mma_Ljjxinv_cuda()

void mma_Ljjxinv_cuda ( void Ljjxinv,
void pjlambda,
void qjlambda,
void x,
void low,
void upp,
void alpha,
void beta,
int n 
)

Definition at line 267 of file mma.cu.

◆ mma_prepare_aa_matrix_cuda()

void mma_prepare_aa_matrix_cuda ( void AA,
void s,
void lambda,
void d,
void mu,
void y,
void a,
real zeta,
real z,
int m 
)

Definition at line 75 of file mma.cu.

◆ mma_prepare_hessian_cuda()

void mma_prepare_hessian_cuda ( void Hess,
void y,
void mu,
void lambda,
int m 
)

Definition at line 90 of file mma.cu.

◆ mma_update_hessian_z_cuda()

void mma_update_hessian_z_cuda ( void Hess,
void a,
int m 
)

Definition at line 61 of file mma.cu.

Variable Documentation

◆ mma_bufred

real* mma_bufred = NULL

Definition at line 58 of file mma.cu.

◆ mma_bufred_d

real* mma_bufred_d = NULL

Definition at line 59 of file mma.cu.

◆ mma_red_s

int mma_red_s = 0

Definition at line 57 of file mma.cu.