Re: Questions about Streamlines, FlowControl, and FlatField.resample()

Thanks for your answer Bill,


Bill Hibbard wrote:
Hi Olav,

Thank you for the stack dumps with line numbers for your
three Exceptions. It is interesting that all three occur
at line 2357 of ShadowType.java. I think Tom Rink will
take a look at these and get back to you.


. . .
This error does not occur if the wrong vector components are used. This
means, if one vector is perpendicular to the plane (no streamlines can
be generated). The question is, should this work or is it impossible?


I assume your 3-D data are on an Irregular3DSet and you
resample to a Gridded3DSet with manifold dimension = 2?
When you say 'wrong vector components' do you mean that
you are mapping a RealType to Flow that does not occur in
the MathType of your cut plane, or that does occur but
whose values are always 0? If the latter, then you should
see flow vectors or streamlines that are always aligned with
the axis of the non-zero flow (i.e., the non-zero RealType
mapped to Flow). If the former, then there should probably
be no flow rendering.

You are right. It is a Irregular3DSet resampled to a Griided3DSet with manifolg dimension = 2. Your first assumption for the 'wrong vector component' is right. I use simple testcases for this where i change all things by hand. One time i have changed the cutplane from the y-z plane to the x-z plane and forgot to change the DisplayRealType from Flow1Y to Flow1X. In this wrong configuration vectors are drawn. Streamlines are impossible while all vectors are more or less perpendicular to the plane. I have mentioned this only, while the error doesn't occur in this configuration. May be while the method makeStreamline will never run in this case, i don't know.

A general question is, are there any ranges for the different options of
FlowControl? Next i want to know, if there are any plans to extend the
streamline capabilities of VisAD? If not, then i have to implement it by
myself.


There are no plans to extend the streamline capabilities of
VisAD. All such plans are driven by our funding sources.


At least i have a little different question. The 3D example uses
FlatField.resample() to get the cutplane. If you look at
error_in_cutplane.png, there is a region left from the colored ball in
the middle with no vectors. To clarify the problem, i have to say
something about the data. This is a dataset from a CFD computation. The
flow arround a ball. within the ball are no points defined. Look at
Grid_of_cutplane_through_Ball.png. It shows a cut through the original
grid (unstructured hexahedra). The error with the missing regions only
occur if the cutplane goes through the empty region and is not the same
at every time. Sometimes this error is not there. Near the surface it is
different. There is always an error, regardless of the number of points
used for the plane (max. tryed 1000x1000). I have tryed all possible
options for resample(). No changes in output. The question is, if it is
a general problem of the resample algorithm with this kind of data.


The question is whether this is a problem with resample()
or with flow rendering. If you do the same resample() but
map values to RGB rather than Flow, do you still see the
missing region?

This is no problem with flow rendering. With the Ball data this error in the far field occurs only one time. I have used the picture only for clarification. There are two problems. The cutplane arround the surface shows always errors (see error_in_cutplane_rgb.png).The other problem (errors in the far field like in the picture error_in_cutplane.png) comes in place if the geometry becomes more complex. Look at simple_domain_description.png (it should show a configuration similiar to the Space Shuttle), it shows exemplary what kind of data produce this errors in the far field. If the cutplane lies in x-z over the vertical finn, sometimes the red rectangle is not shown. The red rectangle here is only an example. The error could be bigger or smaller and is not rectangular all the time. Look at original_vs_cutplane-grid.png (In the program the original grid is decomposed into tetrahedra or tiangle) to see how the grids ,involved in this example, looks like in principle. This is may be the problem.


The resample() method has been tested by lots of applications
over the years. There may still be a problem like this, but
I'd need a test case that I can run and that demonstrates
the problem.


I can send you the test program. That is no problem. Problem is the data file. The file with the ball is also now problem (i have send it to you several month ago "Sphere.plt"), but their you can see normally only the error near the surface. With the data for the complex geometries it is different. I am not allowed to send out this data. Let me hnow, if you are interested in the test case with the ball. If you don't have the data file anymore then i will send this also (arround 4MB compressed) to you. One last question. Due to the problems with the cutplane i thought about a resample method that uses an analytic plane to cut through the volume. The output grid then will have the intersection points between the analytic plane and the grid edges as it's domain. Where do you think is the best place to do this? Generating the cutplane grid in a preprocessing tasks and then use FlatField.resample() or should it be better to overide the resample method.

Thanks

Olav
Cheers,
Bill



PNG image

PNG image

PNG image