From: John P. <jwp...@gm...> - 2018-05-16 16:20:10
|
On Wed, May 16, 2018 at 6:53 AM, <li...@si...> wrote: > 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. > I'm not sure why XYZ would not work. It's possible that the solution is actually OK but the error arises in the ExodusII::write_discontinuous_exodusII() output? I don't think we have much testing of the XYZ FEType in libmesh or in apps which use libmesh, so it's possible that i regressed. > 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? > And you are using libmesh master? This is interesting, as we are discussing a similar error right now over on https://github.com/libMesh/libmesh/issues/1697 that might be related, although I suspect yours might have more to do with DG sparsity patterns. -- John |