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