[Paraview] paraviw + discontinuous/non-linear functions
within cells
David C Thompson
dcthomp at sandia.gov
Thu Oct 5 15:52:52 EDT 2006
> We have engineers using a numerical method that doesn't uniquely define values
> at vertices. For example, if five cells all share a common vertex, then
> generally you can expect five different values at the common vertex. The
> data is represented as polynomials of arbitrary order. The data is
> discontinuous across cell faces and edges (a.k.a. discontinuous galerkin
> method). This is probably very similar to some FE codes so perhaps someone
> already has experience with this type of problem.
I've only seen DG techniques that have discontinuities at element
boundaries. Techniques that have interior discontinuities (xFEM) usually
model the discontuity as a sheet of some implicit function over the
interior, correct? If so, then using this sheet to divide each element
into pieces and rendering the results seems like a good way to proceed
with the analysis.
> The question is if it becomes necessary to accurately visualize the data, what
> is the best way of doing this? You could have multiple vertices at the same
> location, one for each cell, but this doesn't take care of the problem of the
> non-linear functions within each cell. There is a paper (Sandia?) outlining
> a metnod of recursively subdividing each cell by searching for critical
> points first in the interior, then the faces, edges, .etc. The method has
> already been implemented in VTK. However, it's not clear that this would
> work in this case. The opinion of the engineers who use this code is that it
> will not work.
That is correct. The search for critical points assumes the function is
a smooth polynomial over the domain's interior; discontinuities are only
allowed on element boundaries and would be modeled as you stated above
(i.e., separate vertices and higher-order degrees-of-freedom for each
element).
> My thinking is that using programmable shaders (and adding the functionality
> to PV) would be the best solution. Any opinions? How much time/effort/$$$
> would it take to implement this.
As far as visualization, that seems the best route. If you are looking
to do other post-processing/analysis, then maybe not. ParaView already
has the option to use custom shaders but there is not a way to specify
per-cell constants to the shader (the last time I looked, anyway). So,
it would involve writing a new painter class that loaded per-cell
information about the polynomial interpolant just before each cell is
rendered. The time/effort/money involved depends on the complexity of
the interpolant and how the discontinuities are defined. This is
something I plan on doing at some point but don't have time to
currently.
David
More information about the ParaView
mailing list