number_of_arnoldi_vectors(number_of_arnoldi_vectors),
eigenvalue_of_interest(eigenvalue_of_interest),
symmetric(symmetric)
-{}
+{
+ //Check for possible options for symmetric problems
+ if (symmetric)
+ {
+ Assert(eigenvalue_of_interest!=largest_real_part,
+ ExcMessage("'largest real part' can only be used for non-symmetric problems!"));
+ Assert(eigenvalue_of_interest!=smallest_real_part,
+ ExcMessage("'smallest real part' can only be used for non-symmetric problems!"));
+ Assert(eigenvalue_of_interest!=largest_imaginary_part,
+ ExcMessage("'largest imaginary part' can only be used for non-symmetric problems!"));
+ Assert(eigenvalue_of_interest!=smallest_imaginary_part,
+ ExcMessage("'smallest imaginary part' can only be used for non-symmetric problems!"));
+ }
+}
inline
number_of_arnoldi_vectors(number_of_arnoldi_vectors),
eigenvalue_of_interest(eigenvalue_of_interest),
symmetric(symmetric)
-{}
+{
+ //Check for possible options for symmetric problems
+ if (symmetric)
+ {
+ Assert(eigenvalue_of_interest!=largest_real_part,
+ ExcMessage("'largest real part' can only be used for non-symmetric problems!"));
+ Assert(eigenvalue_of_interest!=smallest_real_part,
+ ExcMessage("'smallest real part' can only be used for non-symmetric problems!"));
+ Assert(eigenvalue_of_interest!=largest_imaginary_part,
+ ExcMessage("'largest imaginary part' can only be used for non-symmetric problems!"));
+ Assert(eigenvalue_of_interest!=smallest_imaginary_part,
+ ExcMessage("'smallest imaginary part' can only be used for non-symmetric problems!"));
+ }
+}
template <typename VectorType>
PArpackSolver<VectorType>::PArpackSolver (SolverControl &control,
// "LI" largest imaginary part
// "SI" smallest imaginary part
// "BE" both ends of spectrum simultaneous
-
char which[3];
switch (additional_data.eigenvalue_of_interest)
{