5 #ifndef NONLINEARFINITEELEMENTPROBLEM_HPP 6 #define NONLINEARFINITEELEMENTPROBLEM_HPP 22 virtual void get_matrix_and_rhs(Epetra_Vector & x, Epetra_FECrsMatrix & K, Epetra_FEVector & F) = 0;
28 std::cout <<
"Available Amesos solvers: \n";
30 isAvailable = Factory.Query(
"Lapack");
if(isAvailable){ std::cout <<
"Lapack: yes.\n"; }
else{ std::cout <<
"Lapack: no.\n"; }
31 isAvailable = Factory.Query(
"Klu");
if(isAvailable){ std::cout <<
"Klu: yes.\n"; }
else{ std::cout <<
"Klu: no.\n"; }
32 isAvailable = Factory.Query(
"Umfpack");
if(isAvailable){ std::cout <<
"Umfpack: yes.\n"; }
else{ std::cout <<
"Umfpack: no.\n"; }
33 isAvailable = Factory.Query(
"Pardiso");
if(isAvailable){ std::cout <<
"Pardiso: yes.\n"; }
else{ std::cout <<
"Pardiso: no.\n"; }
34 isAvailable = Factory.Query(
"Taucs");
if(isAvailable){ std::cout <<
"Taucs: yes.\n"; }
else{ std::cout <<
"Taucs: no.\n"; }
35 isAvailable = Factory.Query(
"Superlu");
if(isAvailable){ std::cout <<
"Superlu: yes.\n"; }
else{ std::cout <<
"Superlu: no.\n"; }
36 isAvailable = Factory.Query(
"Superludist");
if(isAvailable){ std::cout <<
"Superludist: yes.\n"; }
else{ std::cout <<
"Superludist: no.\n"; }
37 isAvailable = Factory.Query(
"Mumps");
if(isAvailable){ std::cout <<
"Mumps: yes.\n"; }
else{ std::cout <<
"Mumps: no.\n"; }
38 isAvailable = Factory.Query(
"Dscpack");
if(isAvailable){ std::cout <<
"Dscpack: yes.\n"; }
else{ std::cout <<
"Dscpack: no.\n"; }
nonLinearFiniteElementProblem()
void display_amesos_solvers()
virtual void setup_dirichlet_conditions()=0
~nonLinearFiniteElementProblem()
virtual void apply_dirichlet_conditions(Epetra_FECrsMatrix &K, Epetra_FEVector &F, double &displacement)=0
virtual void get_matrix_and_rhs(Epetra_Vector &x, Epetra_FECrsMatrix &K, Epetra_FEVector &F)=0