hypre/parcsr_ls/ame.h
falgout 46488e8cbc Added HYPRE_Complex and HYPRE_Real types in place of double.
Added an example code to test CG on a 4D HYPRE_SSTRUCT complex problem.
Added regression tests for bigint, maxdim, and complex.
Added a test to make sure double types are not added to the source.
See [Issue995] in the tracker for more details.
2013-10-11 19:48:06 +00:00

65 lines
1.9 KiB
C

/*BHEADER**********************************************************************
* Copyright (c) 2008, Lawrence Livermore National Security, LLC.
* Produced at the Lawrence Livermore National Laboratory.
* This file is part of HYPRE. See file COPYRIGHT for details.
*
* HYPRE is free software; you can redistribute it and/or modify it under the
* terms of the GNU Lesser General Public License (as published by the Free
* Software Foundation) version 2.1 dated February 1999.
*
* $Revision$
***********************************************************************EHEADER*/
#ifndef hypre_AME_HEADER
#define hypre_AME_HEADER
/*--------------------------------------------------------------------------
* Auxiliary space Maxwell Eigensolver
*--------------------------------------------------------------------------*/
typedef struct
{
/* The AMS preconditioner */
hypre_AMSData *precond;
/* The edge element mass matrix */
hypre_ParCSRMatrix *M;
/* Discrete gradient matrix with eliminated boundary */
hypre_ParCSRMatrix *G;
/* The Laplacian matrix G^t M G */
hypre_ParCSRMatrix *A_G;
/* AMG preconditioner for A_G */
HYPRE_Solver B1_G;
/* PCG-AMG solver for A_G */
HYPRE_Solver B2_G;
/* Eigensystem for A x = lambda M x, G^t x = 0 */
HYPRE_Int block_size;
void *eigenvectors;
HYPRE_Real *eigenvalues;
/* Eigensolver (LOBPCG) options */
HYPRE_Int maxit;
HYPRE_Real tol;
HYPRE_Int print_level;
/* Matrix-vector interface interpreter */
void *interpreter;
/* Temporary vectors */
hypre_ParVector *t1, *t2, *t3;
} hypre_AMEData;
#include "fortran.h"
HYPRE_Int hypre_F90_NAME_LAPACK(dpotrf,DPOTRF)(char *, HYPRE_Int *, HYPRE_Real *, HYPRE_Int *, HYPRE_Int *);
HYPRE_Int hypre_F90_NAME_LAPACK(dsygv,DSYGV)(HYPRE_Int *, char *, char *, HYPRE_Int *, HYPRE_Real *, HYPRE_Int *,
HYPRE_Real *, HYPRE_Int *, HYPRE_Real *, HYPRE_Real *, HYPRE_Int *, HYPRE_Int *);
#endif