Actual source code: bvmat.h

slepc-3.21.1 2024-04-26
Report Typos and Errors
  1: /*
  2:    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  3:    SLEPc - Scalable Library for Eigenvalue Problem Computations
  4:    Copyright (c) 2002-, Universitat Politecnica de Valencia, Spain

  6:    This file is part of SLEPc.
  7:    SLEPc is distributed under a 2-clause BSD license (see LICENSE).
  8:    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  9: */

 11: #pragma once

 13: typedef struct {
 14:   Mat       A;
 15:   PetscBool mpi;    /* true if either VECMPI or VECMPICUDA */
 16: } BV_MAT;

 18: #if defined(PETSC_HAVE_CUDA)
 19: SLEPC_INTERN PetscErrorCode BVMult_Mat_CUDA(BV,PetscScalar,PetscScalar,BV,Mat);
 20: SLEPC_INTERN PetscErrorCode BVMultVec_Mat_CUDA(BV,PetscScalar,PetscScalar,Vec,PetscScalar*);
 21: SLEPC_INTERN PetscErrorCode BVMultInPlace_Mat_CUDA(BV,Mat,PetscInt,PetscInt);
 22: SLEPC_INTERN PetscErrorCode BVMultInPlaceHermitianTranspose_Mat_CUDA(BV,Mat,PetscInt,PetscInt);
 23: SLEPC_INTERN PetscErrorCode BVDot_Mat_CUDA(BV,BV,Mat);
 24: SLEPC_INTERN PetscErrorCode BVDotVec_Mat_CUDA(BV,Vec,PetscScalar*);
 25: SLEPC_INTERN PetscErrorCode BVDotVec_Local_Mat_CUDA(BV,Vec,PetscScalar*);
 26: SLEPC_INTERN PetscErrorCode BVScale_Mat_CUDA(BV,PetscInt,PetscScalar);
 27: SLEPC_INTERN PetscErrorCode BVNorm_Mat_CUDA(BV,PetscInt,NormType,PetscReal*);
 28: SLEPC_INTERN PetscErrorCode BVNorm_Local_Mat_CUDA(BV,PetscInt,NormType,PetscReal*);
 29: SLEPC_INTERN PetscErrorCode BVNormalize_Mat_CUDA(BV,PetscScalar*);
 30: SLEPC_INTERN PetscErrorCode BVMatMult_Mat_CUDA(BV,Mat,BV);
 31: SLEPC_INTERN PetscErrorCode BVCopy_Mat_CUDA(BV,BV);
 32: SLEPC_INTERN PetscErrorCode BVCopyColumn_Mat_CUDA(BV,PetscInt,PetscInt);
 33: SLEPC_INTERN PetscErrorCode BVResize_Mat_CUDA(BV,PetscInt,PetscBool);
 34: SLEPC_INTERN PetscErrorCode BVGetColumn_Mat_CUDA(BV,PetscInt,Vec*);
 35: SLEPC_INTERN PetscErrorCode BVRestoreColumn_Mat_CUDA(BV,PetscInt,Vec*);
 36: SLEPC_INTERN PetscErrorCode BVRestoreSplit_Mat_CUDA(BV,BV*,BV*);
 37: SLEPC_INTERN PetscErrorCode BVGetMat_Mat_CUDA(BV,Mat*);
 38: SLEPC_INTERN PetscErrorCode BVRestoreMat_Mat_CUDA(BV,Mat*);
 39: #endif