From: David K. <dav...@ak...> - 2016-10-21 20:57:16
Attachments:
systems_of_equations_ex6.C
|
It seems that ExodusII_IO::write_discontinuous_exodusII doesn't handle NodeElems correctly. NodeElems get plotted as ExodusII SPHERE elements, and this works fine with continuous plotting, but seems to be wrong in the discontinuous plotting case. I've attached a modified version of systems_of_equations_ex6 that illustrates this (change write_discontinuous_exodusII to write_equation_systems in the example to see the correct locations). Paraview plots the SPHERE elements as dots, so that is useful for checking the result. John, I thought you may have an idea of where to look to fix this? My first guess is that it might be related to the "FIXME" comment in ExodusII_IO_Helper::write_elements? David P.S. The reason I'm using NodeElems is that they're helpful for enabling dof-coupling using GhostingFunctor (e.g. for node-to-node springs); Roy suggested this approach recently and it works well for me. |
From: John P. <jwp...@gm...> - 2016-10-21 21:23:04
|
On Fri, Oct 21, 2016 at 2:57 PM, David Knezevic <dav...@ak...> wrote: > It seems that ExodusII_IO::write_discontinuous_exodusII doesn't handle > NodeElems correctly. NodeElems get plotted as ExodusII SPHERE elements, and > this works fine with continuous plotting, but seems to be wrong in the > discontinuous plotting case. > > I've attached a modified version of systems_of_equations_ex6 that > illustrates this (change write_discontinuous_exodusII to > write_equation_systems in the example to see the correct locations). > Paraview plots the SPHERE elements as dots, so that is useful for checking > the result. > > John, I thought you may have an idea of where to look to fix this? My > first guess is that it might be related to the "FIXME" comment > in ExodusII_IO_Helper::write_elements? > You're talking about the FIXME on line 1449? That should only be a problem if the mapping between your Mesh's node numbering and Exodus's node numbering, as stored in the libmesh_node_num_to_exodus, is something other than the trivial off-by-one map. I don't know if the presence of NodeElems, which are treated as Elems (?), would have an effect on this, but I suppose it's possible. What is the error message you're getting? -- John |
From: David K. <dav...@ak...> - 2016-10-22 02:46:30
|
On Fri, Oct 21, 2016 at 5:22 PM, John Peterson <jwp...@gm...> wrote: > > > On Fri, Oct 21, 2016 at 2:57 PM, David Knezevic < > dav...@ak...> wrote: > >> It seems that ExodusII_IO::write_discontinuous_exodusII doesn't handle >> NodeElems correctly. NodeElems get plotted as ExodusII SPHERE elements, and >> this works fine with continuous plotting, but seems to be wrong in the >> discontinuous plotting case. >> >> I've attached a modified version of systems_of_equations_ex6 that >> illustrates this (change write_discontinuous_exodusII to >> write_equation_systems in the example to see the correct locations). >> Paraview plots the SPHERE elements as dots, so that is useful for checking >> the result. >> >> John, I thought you may have an idea of where to look to fix this? My >> first guess is that it might be related to the "FIXME" comment >> in ExodusII_IO_Helper::write_elements? >> > > You're talking about the FIXME on line 1449? That should only be a > problem if the mapping between your Mesh's node numbering and Exodus's node > numbering, as stored in the libmesh_node_num_to_exodus, is something > other than the trivial off-by-one map. > > I don't know if the presence of NodeElems, which are treated as Elems (?), > would have an effect on this, but I suppose it's possible. What is the > error message you're getting? > I think I found the issue, see the PR I just made (#1128). Looks like the code previously assumed num_nodes_per_elem was the same for the entire mesh, so that didn't work properly for meshes (like my test case) with different element types. David |