I'm trying to get into libMesh, so i tried to convert an existing project.
So far i could reproduce the lid driven cavity case for the Stokes
equations like in
example examples/systems_of_equations/systems_of_equations_ex1.
Now i'm trying to build a mass matrix so i can solve the generalized
eigenproblem in order to retrieve the physical eigenvalues in the following
domain:
build_square (mesh,
16, 16,
-1., 1.,
-1., 1.,
TRI6);
So the eigenvalues should be (rounded to int) [13, 23, 23, 32, 38, 41...].
My approach is that i add a matrix
system.add_matrix("mass");
in the assemble loop i add:
DenseMatrix<Number> Me;
Me.resize (n_dofs, n_dofs);
and to the integration parts:
Me(i,j) += JxW[qp]*(phi[i][qp]*phi[j][qp]);
then i close the matrices
system.get_matrix("mass").close();
and convert them to PETSc so i can use my own SLEPc object
Mat A = (static_cast<PetscMatrix<Number> *>(system.matrix))->mat();
Mat M = (static_cast<PetscMatrix<Number>
&>(system.get_matrix("mass"))).mat();
The problem is, the calculated eigenvalues are not the ones i expect (so
they're wrong).
This method worked for me for the poisson equation.
Do i miss something?
Oh and here is the commandline option string
./foo -st_type sinvert -st_target 10 -st_pc_type lu
-st_pc_factor_mat_solver_package mumps -eps_nev 10
------------------------------------------------------------------------------
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users