1 /****************************************************************************** 2 * Copyright 1998-2019 Lawrence Livermore National Security, LLC and other 3 * HYPRE Project Developers. See the top-level COPYRIGHT file for details. 4 * 5 * SPDX-License-Identifier: (Apache-2.0 OR MIT) 6 ******************************************************************************/ 7 8 #ifndef hypre_AME_HEADER 9 #define hypre_AME_HEADER 10 11 /*-------------------------------------------------------------------------- 12 * Auxiliary space Maxwell Eigensolver 13 *--------------------------------------------------------------------------*/ 14 typedef struct 15 { 16 /* The AMS preconditioner */ 17 hypre_AMSData *precond; 18 19 /* The edge element mass matrix */ 20 hypre_ParCSRMatrix *M; 21 22 /* Discrete gradient matrix with eliminated boundary */ 23 hypre_ParCSRMatrix *G; 24 /* The Laplacian matrix G^t M G */ 25 hypre_ParCSRMatrix *A_G; 26 /* AMG preconditioner for A_G */ 27 HYPRE_Solver B1_G; 28 /* PCG-AMG solver for A_G */ 29 HYPRE_Solver B2_G; 30 31 /* Eigensystem for A x = lambda M x, G^t x = 0 */ 32 HYPRE_Int block_size; 33 void *eigenvectors; 34 HYPRE_Real *eigenvalues; 35 36 /* Eigensolver (LOBPCG) options */ 37 HYPRE_Int maxit; 38 HYPRE_Real atol; 39 HYPRE_Real rtol; 40 HYPRE_Int print_level; 41 42 /* Matrix-vector interface interpreter */ 43 void *interpreter; 44 45 /* Temporary vectors */ 46 hypre_ParVector *t1, *t2, *t3; 47 48 } hypre_AMEData; 49 50 #include "_hypre_lapack.h" 51 52 #endif 53