From: <li...@si...> - 2018-05-16 12:53:16
|
Dear developers, I tried using the MONOMIAL/XYZ FE_type as in the miscellaneous_ex5 example. After simplification under the choice of some parameters, my problem reduces to a Laplace equation with Dirichlet boundary condition. If a default FE_type is used (system.add_variable ("p", FIRST);), the Laplace problem outputs a right result, but if a MONOMIAL/XYZ FE_type is used instead (i.e. system.add_variable ("p", FIRST, XYZ)), the interior part is wrong, it isn't changed from its initial solution value (I set zero for the initial value), only the boundary is right due to the impose of Dirichlet condition. I have implemented the contribution of each element boundary flux as that in the miscellaneous_ex5 example. I don't know why it fails in the interior part. 2. Another question is, if I want to couple two variables into one system, one with a default FE_type and the other with the MONOMIAL/XYZ FE_type, is that possible? I tried and found that when inserting the contribution of neighbor values into the matrix (as "Ken, Kne" in miscellaneous_ex5), PETSc error reports that --------------------------------------------------------------- Argument out of range! New nonzero at (13,33164) caused a malloc! MatSetValues_MPIAIJ() line 572 in src/mat/impls/aij/mpi/mpiaij.c MatSetValues() line 1106 in src/mat/interface/matrix.c add_matrix() line 699 in "unknowndirectory/"petsc_matrix.C --------------------------------------------------------------- It seems that different FE_types lead to different matrix preallocations, the MONOMIAL/XYZ FE_type allows the insert of Ken, Kne but the default FE_type does not. Can I use the same matrix preallocation for the two variables to allow such inserting? Thank you! Regards, Li Luo |