20int main(
int argc,
char* argv[])
23 SlepcSession::getInstance(argc,argv);
26 cout <<
"=== EVP: complex generalised eigenvalue problem ====\n";
77 SparseLinearEigenSystem<D_complex> system( &a, &b );
82 catch (
const std::runtime_error &error )
84 cout <<
" \033[1;31;48m * FAILED THROUGH EXCEPTION BEING RAISED \033[0m\n";
89 system.set_shift(
D_complex( 3.0, -1.0 ) );
90 system.tag_eigenvalues_disc( + 1, 0.1 );
92 lambdas = system.get_tagged_eigenvalues();
94 const double tol = 1.e-10;
95 if ( std::abs( lambdas[ 0 ] -
D_complex( 3.0, -1.0 ) ) < tol )
97 cout <<
"\033[1;32;48m * PASSED \033[0m\n";
101 cout <<
"\033[1;31;48m * FAILED \033[0m\n";
102 cout.precision( 12 );
103 cout <<
" Final error = " << std::abs( lambdas[ 0 ] -
D_complex( 3.0, -1.0 ) ) <<
"\n";
Specification of the sparse linear eigensystem class.
An DenseVector class – a dense vector object.
void dump() const
Dump to std::cout.
A matrix class that constructs a SPARSE matrix as a row major std::vector of SparseVectors.
A collection of OO numerical routines aimed at simple (typical) applied problems in continuum mechani...
std::complex< double > D_complex
A complex double precision number using std::complex.