| Line 7... |
Line 7... |
#include "src/eps/impls/lapack/lapackp.h"
|
#include "src/eps/impls/lapack/lapackp.h"
|
#include "slepcblaslapack.h"
|
#include "slepcblaslapack.h"
|
|
|
#undef __FUNCT__
|
#undef __FUNCT__
|
#define __FUNCT__ "EPSSetUp_LAPACK"
|
#define __FUNCT__ "EPSSetUp_LAPACK"
|
static int EPSSetUp_LAPACK(EPS eps)
|
PetscErrorCode EPSSetUp_LAPACK(EPS eps)
|
{
|
{
|
int ierr,size,rank,n,N;
|
PetscErrorCode ierr;
|
EPS_LAPACK *la = (EPS_LAPACK *)eps->data;
|
int size,rank,n,N;
|
MPI_Comm comm = eps->comm;
|
EPS_LAPACK *la = (EPS_LAPACK *)eps->data;
|
Mat *T;
|
MPI_Comm comm = eps->comm;
|
IS isrow, iscol;
|
Mat *T;
|
PetscTruth flg;
|
IS isrow, iscol;
|
|
PetscTruth flg;
|
|
|
PetscFunctionBegin;
|
PetscFunctionBegin;
|
ierr = VecGetSize(eps->vec_initial,&N);CHKERRQ(ierr);
|
ierr = VecGetSize(eps->vec_initial,&N);CHKERRQ(ierr);
|
if (eps->nev<1 || eps->nev>N) SETERRQ(1,"Wrong value of nev");
|
if (eps->nev<1 || eps->nev>N) SETERRQ(1,"Wrong value of nev");
|
if (eps->ncv) {
|
if (eps->ncv) {
|
| Line 56... |
Line 57... |
PetscFunctionReturn(0);
|
PetscFunctionReturn(0);
|
}
|
}
|
|
|
#undef __FUNCT__
|
#undef __FUNCT__
|
#define __FUNCT__ "EPSSolve_LAPACK"
|
#define __FUNCT__ "EPSSolve_LAPACK"
|
static int EPSSolve_LAPACK(EPS eps)
|
PetscErrorCode EPSSolve_LAPACK(EPS eps)
|
{
|
{
|
int ierr,n,size,rank,i,low,high;
|
PetscErrorCode ierr;
|
PetscScalar *array,*pV;
|
int n,size,rank,i,low,high;
|
EPS_LAPACK *la = (EPS_LAPACK *)eps->data;
|
PetscScalar *array,*pV;
|
MPI_Comm comm = eps->comm;
|
EPS_LAPACK *la = (EPS_LAPACK *)eps->data;
|
|
MPI_Comm comm = eps->comm;
|
|
|
PetscFunctionBegin;
|
PetscFunctionBegin;
|
ierr = MPI_Comm_size(comm,&size);CHKERRQ(ierr);
|
ierr = MPI_Comm_size(comm,&size);CHKERRQ(ierr);
|
ierr = MPI_Comm_rank(comm,&rank);CHKERRQ(ierr);
|
ierr = MPI_Comm_rank(comm,&rank);CHKERRQ(ierr);
|
|
|
| Line 105... |
Line 107... |
PetscFunctionReturn(0);
|
PetscFunctionReturn(0);
|
}
|
}
|
|
|
#undef __FUNCT__
|
#undef __FUNCT__
|
#define __FUNCT__ "EPSDestroy_LAPACK"
|
#define __FUNCT__ "EPSDestroy_LAPACK"
|
int EPSDestroy_LAPACK(EPS eps)
|
PetscErrorCode EPSDestroy_LAPACK(EPS eps)
|
{
|
{
|
int ierr,size;
|
PetscErrorCode ierr;
|
EPS_LAPACK *la = (EPS_LAPACK *)eps->data;
|
int size;
|
MPI_Comm comm = eps->comm;
|
EPS_LAPACK *la = (EPS_LAPACK *)eps->data;
|
|
MPI_Comm comm = eps->comm;
|
|
|
PetscFunctionBegin;
|
PetscFunctionBegin;
|
PetscValidHeaderSpecific(eps,EPS_COOKIE,1);
|
PetscValidHeaderSpecific(eps,EPS_COOKIE,1);
|
ierr = MPI_Comm_size(comm,&size);CHKERRQ(ierr);
|
ierr = MPI_Comm_size(comm,&size);CHKERRQ(ierr);
|
if (la->BA) { ierr = MatDestroy(la->BA);CHKERRQ(ierr); }
|
if (la->BA) { ierr = MatDestroy(la->BA);CHKERRQ(ierr); }
|
| Line 123... |
Line 126... |
}
|
}
|
|
|
EXTERN_C_BEGIN
|
EXTERN_C_BEGIN
|
#undef __FUNCT__
|
#undef __FUNCT__
|
#define __FUNCT__ "EPSCreate_LAPACK"
|
#define __FUNCT__ "EPSCreate_LAPACK"
|
int EPSCreate_LAPACK(EPS eps)
|
PetscErrorCode EPSCreate_LAPACK(EPS eps)
|
{
|
{
|
EPS_LAPACK *la;
|
PetscErrorCode ierr;
|
int ierr;
|
EPS_LAPACK *la;
|
|
|
PetscFunctionBegin;
|
PetscFunctionBegin;
|
ierr = PetscNew(EPS_LAPACK,&la);CHKERRQ(ierr);
|
ierr = PetscNew(EPS_LAPACK,&la);CHKERRQ(ierr);
|
PetscMemzero(la,sizeof(EPS_LAPACK));
|
PetscMemzero(la,sizeof(EPS_LAPACK));
|
PetscLogObjectMemory(eps,sizeof(EPS_LAPACK));
|
PetscLogObjectMemory(eps,sizeof(EPS_LAPACK));
|