BELFEM
0.9.0
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
parpacktools.hpp
Go to the documentation of this file.
1
/*
2
* BELFEM -- The Berkeley Lab Finite Element Framework
3
* Copyright (c) 2026, The Regents of the University of California,
4
* through Lawrence Berkeley National Laboratory (subject to receipt of any required
5
* approvals from the U.S. Dept. of Energy). All rights reserved.
6
*
7
* Developers: Christian Messe, Gregory Giard
8
*
9
* See the top-level LICENSE file for the complete license and disclaimer.
10
*/
11
12
#ifndef PARPACKTOOLS_HPP
13
#define PARPACKTOOLS_HPP
14
15
#include "
typedefs.hpp
"
16
17
// the two drivers share the info layout and therefore the decoders. USE_PARPACK
18
// hard-errors without USE_ARPACK ( config/linalg/config_parpack.cmake ), so
19
// arpacktools is always available here
20
#include "
arpacktools.hpp
"
21
22
namespace
belfem
23
{
24
namespace
parpack
25
{
26
// the info array layout is identical to the serial driver's -- use
27
// arpack::gInfoNaupd, arpack::gInfoNumConverged, ... to index it, and
28
// arpack::check_naupd() / arpack::check_neupd() to decode it
29
30
#ifdef __cplusplus
31
extern
"C"
{
32
#endif
33
69
void
70
parpack_standard_eigen
(
71
const
int_t
* nloc,
// rows owned by this rank
72
const
int_t
* nglobal,
// rows of the whole matrix
73
const
int_t
* nnz,
// nonzeros in the local block
74
const
real
* values,
// local values
75
const
int_t
* indices,
// GLOBAL column indices
76
const
int_t
* pointers,
// LOCAL row pointers
77
const
int_t
* job,
78
const
int_t
* nev,
79
const
int_t
* ncvmin,
// floor for the Krylov subspace
80
const
real
* tol,
81
const
int_t
* maxit,
82
const
real
* sigma,
// 0 for OP = A, else OP = sigma*I - A
83
real
* lambdareal,
84
real
* lambdaimag,
85
int_t
* info ) ;
86
96
void
97
parpack_symmetric_eigen
(
98
const
int_t
* nloc,
// rows owned by this rank
99
const
int_t
* nglobal,
// rows of the whole matrix
100
const
int_t
* nnz,
// nonzeros in the local block
101
const
real
* values,
// local values
102
const
int_t
* indices,
// GLOBAL column indices
103
const
int_t
* pointers,
// LOCAL row pointers
104
const
int_t
* job,
105
const
int_t
* nev,
106
const
int_t
* ncvmin,
// floor for the Krylov subspace
107
const
real
* tol,
108
const
int_t
* maxit,
109
const
real
* sigma,
// 0 for OP = A, else OP = sigma*I - A
110
real
* lambdareal,
111
real
* lambdaimag,
112
int_t
* info ) ;
113
114
#ifdef __cplusplus
115
}
116
#endif
117
118
}
119
120
}
121
#endif
//PARPACKTOOLS_HPP
arpacktools.hpp
belfem::parpack
Definition
parpacktools.hpp:25
belfem::parpack::parpack_symmetric_eigen
void parpack_symmetric_eigen(const int_t *nloc, const int_t *nglobal, const int_t *nnz, const real *values, const int_t *indices, const int_t *pointers, const int_t *job, const int_t *nev, const int_t *ncvmin, const real *tol, const int_t *maxit, const real *sigma, real *lambdareal, real *lambdaimag, int_t *info)
symmetric counterpart of parpack_standard_eigen.
belfem::parpack::parpack_standard_eigen
void parpack_standard_eigen(const int_t *nloc, const int_t *nglobal, const int_t *nnz, const real *values, const int_t *indices, const int_t *pointers, const int_t *job, const int_t *nev, const int_t *ncvmin, const real *tol, const int_t *maxit, const real *sigma, real *lambdareal, real *lambdaimag, int_t *info)
distributed reverse communication driver around pdnaupd / pdneupd.
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
belfem::real
double real
Definition
typedefs.hpp:36
belfem::int_t
int32_t int_t
Definition
typedefs.hpp:51
typedefs.hpp
src
sparse
parpacktools.hpp
Generated by
1.18.0