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_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 *d, 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 524 of file mma.cu.

◆ cuda_add2inv2()

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

Definition at line 749 of file mma.cu.

◆ cuda_bb()

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

Definition at line 497 of file mma.cu.

◆ cuda_custom_solver()

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

Definition at line 128 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 461 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 640 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 574 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 485 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 554 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 564 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 785 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 475 of file mma.cu.

◆ cuda_Hess()

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

Definition at line 223 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 698 of file mma.cu.

◆ cuda_lcsc2()

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

Definition at line 716 of file mma.cu.

◆ cuda_max2()

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

Definition at line 757 of file mma.cu.

◆ cuda_maxcons()

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

Definition at line 708 of file mma.cu.

◆ cuda_maxval()

real cuda_maxval ( void a,
int n 
)

Definition at line 429 of file mma.cu.

◆ cuda_maxval2()

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

Definition at line 649 of file mma.cu.

◆ cuda_maxval3()

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

Definition at line 674 of file mma.cu.

◆ cuda_mma_max()

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

Definition at line 375 of file mma.cu.

◆ cuda_mpisum()

void cuda_mpisum ( void a,
int n 
)

Definition at line 741 of file mma.cu.

◆ cuda_norm()

real cuda_norm ( void a,
int n 
)

Definition at line 615 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 384 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 584 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 596 of file mma.cu.

◆ cuda_sub2cons()

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

Definition at line 607 of file mma.cu.

◆ cuda_sub2cons2()

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

Definition at line 418 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 775 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 765 of file mma.cu.

◆ cuSOLVER_wrapper()

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

Definition at line 149 of file mma.cu.

◆ custom_solve_linear_system()

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

Definition at line 193 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 214 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 273 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 263 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 365 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 352 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 336 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 282 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 253 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 61 of file mma.cu.

◆ mma_prepare_hessian_cuda()

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

Definition at line 76 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.