Hi all,
So I have a working 3D model with a free surface on top and a visco plastic material model using either the ‘single advection, iterated stokes’ or ‘iterated advection and stokes’ (both case use block AMG). Now I want to run parameter test faster so I tried the Block GMG.
My solver scheme looks like this:
set Nonlinear solver scheme = single Advection, iterated defect correction Stokes
set Max nonlinear iterations = 20
set Nonlinear solver tolerance = 1e-5
subsection Solver parameters
subsection Stokes solver parameters
set Stokes solver type = block GMG
set Number of cheap Stokes solver steps = 2000
set Linear solver tolerance = 1e-4
set GMRES solver restart length = 150
set Use full A block as preconditioner = true
end
subsection Newton solver parameters
set Maximum linear Stokes solver tolerance = 1e-4
set Use Eisenstat Walker method for Picard iterations = true
end
subsection Advection solver parameters
set GMRES solver restart length = 100
end
end
However, this model crashed at the beginning and the error message seems to be saying that it is missing the LAPACK library.
Exception 'ExcNeedsLAPACK()' on rank 182 on processing:
--------------------------------------------------------
An error occurred in line <256> of file </work/n03/n03/mazq/modules/candi/tmp/unpack/deal.II-v9.4.2/source/lac/tridiagonal_matrix.cc> in function
void dealii::TridiagonalMatrix<number>::compute_eigenvalues() [with number = double]
The violated condition was:
false
Additional information:
You are attempting to use functionality that is only available if
deal.II was configured to use LAPACK, but cmake did not find a valid
LAPACK library.
Stacktrace:
-----------
#0 /work/n03/n03/mazq/modules/candi/deal.II-v9.4.2/lib/libdeal_II.so.9.4.2: dealii::TridiagonalMatrix<double>::compute_eigenvalues()
#1 /work/n03/n03/mazq/modules/aspect/release/aspect: dealii::SolverCG<dealii::LinearAlgebra::distributed::Vector<double, dealii::MemorySpace::Host> >::compute_eigs_and_cond(std::vector<double, std::allocator<double> > const&, std::vector<double, std::allocator<double> > const&, boost::signals2::signal<void (std::vector<double, std::allocator<double> > const&), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (std::vector<double, std::allocator<double> > const&)>, boost::function<void (boost::signals2::connection const&, std::vector<double, std::allocator<double> > const&)>, boost::signals2::mutex> const&, boost::signals2::signal<void (double), boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (double)>, boost::function<void (boost::signals2::connection const&, double)>, boost::signals2::mutex> const&)
#2 /work/n03/n03/mazq/modules/aspect/release/aspect: void dealii::SolverCG<dealii::LinearAlgebra::distributed::Vector<double, dealii::MemorySpace::Host> >::solve<aspect::MatrixFreeStokesOperators::ABlockOperator<3, 2, double>, dealii::DiagonalMatrix<dealii::LinearAlgebra::distributed::Vector<double, dealii::MemorySpace::Host> > >(aspect::MatrixFreeStokesOperators::ABlockOperator<3, 2, double> const&, dealii::LinearAlgebra::distributed::Vector<double, dealii::MemorySpace::Host>
--------------------------------------------------------
An error occurred in line <256> of file </work/n03/n03/mazq/modules/candi/tmp/unpack/deal.II-v9.4.2/source/lac/tridiagonal_matrix.cc> in function
void dealii::TridiagonalMatrix<number>::compute_eigenvalues() [with number = double]
The violated condition was:
false
Additional information:
You are attempting to use functionality that is only available if
deal.II was configured to use LAPACK, but cmake did not find a valid
LAPACK library.
I would greatly appreciate it if you could help me with this. Do I need to install the LAPACK library and then rebuild deal.II on archer2 where I run my models?
Cheers,
ziqi