Commit f1a89476 authored by hrchilds's avatar hrchilds

Update from January 17, 2007

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@796 18c085ea-50e0-402c-830e-de6fd14e8384
parent 06deef0c
......@@ -146,6 +146,10 @@ $0 = shift @ARGV;
# Modified the psub arguments to pass both -np and -g to indicate the
# number of processors.
#
# Jeremy Meredith, Wed Jan 17 15:53:46 EST 2007
# Made GDB only set paths to the main program source directory
# for the executable being launched.
#
###############################################################################
......@@ -1469,20 +1473,38 @@ else
print GDBFILE "directory $ENV{VISITHOME}/components/VisWindow/Proxies\n";
print GDBFILE "directory $ENV{VISITHOME}/components/VisWindow/Tools\n";
print GDBFILE "directory $ENV{VISITHOME}/components/VisWindow/VisWindow\n";
print GDBFILE "directory $ENV{VISITHOME}/engine/main\n";
if ($exe_name eq "engine_ser" or $exe_name eq "engine_par")
{
print GDBFILE "directory $ENV{VISITHOME}/engine/main\n";
}
print GDBFILE "directory $ENV{VISITHOME}/engine/proxy\n";
print GDBFILE "directory $ENV{VISITHOME}/engine/rpc\n";
print GDBFILE "directory $ENV{VISITHOME}/gui\n";
print GDBFILE "directory $ENV{VISITHOME}/launcher/main\n";
if ($exe_name eq "gui")
{
print GDBFILE "directory $ENV{VISITHOME}/gui\n";
}
if ($exe_name eq "vcl")
{
print GDBFILE "directory $ENV{VISITHOME}/launcher/main\n";
}
print GDBFILE "directory $ENV{VISITHOME}/launcher/proxy\n";
print GDBFILE "directory $ENV{VISITHOME}/launcher/rpc\n";
print GDBFILE "directory $ENV{VISITHOME}/mdserver/main\n";
if ($exe_name eq "mdserver")
{
print GDBFILE "directory $ENV{VISITHOME}/mdserver/main\n";
}
print GDBFILE "directory $ENV{VISITHOME}/mdserver/proxy\n";
print GDBFILE "directory $ENV{VISITHOME}/mdserver/rpc\n";
print GDBFILE "directory $ENV{VISITHOME}/viewer/main\n";
if ($exe_name eq "viewer")
{
print GDBFILE "directory $ENV{VISITHOME}/viewer/main\n";
}
print GDBFILE "directory $ENV{VISITHOME}/viewer/proxy\n";
print GDBFILE "directory $ENV{VISITHOME}/viewer/rpc\n";
print GDBFILE "directory $ENV{VISITHOME}/visitpy\n";
if ($exe_name eq "cli")
{
print GDBFILE "directory $ENV{VISITHOME}/visitpy\n";
}
print GDBFILE "directory $ENV{VISITHOME}/visit_vtk/full\n";
print GDBFILE "directory $ENV{VISITHOME}/visit_vtk/lightweight\n";
print GDBFILE "directory $ENV{VISITHOME}/vtkqt\n";
......
......@@ -8,7 +8,7 @@
# Date: October 26, 1996
#
# Usage
# visit-install [-c open | closed] [-g group] [-gw] [-l] [-r]
# visit-install [-c open | closed | nersc | ornl] [-g group] [-gw] [-l] [-r]
# [-beta | -private] version platform directory
#
# The default is to install this version as the current version.
......@@ -117,6 +117,9 @@
# I made it use mpeg2encode. I also made it install visit_composite
# and visit_transition.
#
# Sean Ahern, Wed Jan 17 14:20:07 EST 2007
# Added documentation for "-c ornl" or "-c nersc".
#
#-----------------------------------------------------------------------
set Compress = COMPRESS
......@@ -184,8 +187,9 @@ while ($option_found == true)
end
if ($#argv != 3) then
echo "Usage: visit-install [-c open | closed] [-g group] [-b bank] [-gw] [-l]"
echo " [-r] [-beta | -private] version platform directory"
echo "Usage: visit-install [-c open | closed | ornl | nersc] [-g group] [-b bank]"
echo " [-gw] [-l] [-r] [-beta | -private] version"
echo " platform directory"
exit (1)
endif
......
......@@ -341,7 +341,8 @@ CGetNumberOfZones(avtDataRepresentation &data, void *sum, bool &)
// Converts unstructured grids to poly data.
//
// Arguments:
// data The data from which to calculate number of cells.
// data The data which may be an unstructured grid, but should be
// a poly data.
// <unused>
// <unused>
//
......@@ -394,6 +395,44 @@ CConvertUnstructuredGridToPolyData(avtDataRepresentation &data, void *, bool &)
}
// ****************************************************************************
// Method: CBreakVTKPipelineConnections
//
// Purpose:
// Breaks all VTK pipeline connections by creating shallow copies.
//
// Arguments:
// data The data from which to calculate number of cells.
// <unused>
// <unused>
//
// Notes:
// This method is designed to be used as the function parameter of
// avtDataTree::Iterate.
//
// Programmer: Hank Childs
// Creation: January 16, 2007
//
// ****************************************************************************
void
CBreakVTKPipelineConnections(avtDataRepresentation &data, void *, bool &)
{
if (!data.Valid())
{
return; // This is a problem, but no need to flag it for this...
}
vtkDataSet *ds = data.GetDataVTK();
vtkDataSet *newDS = (vtkDataSet *) ds->NewInstance();
newDS->ShallowCopy(ds);
avtDataRepresentation new_data(newDS, data.GetDomain(),
data.GetLabel());
data = new_data;
newDS->Delete();
}
// ****************************************************************************
// Method: CGetVariableList
//
......
......@@ -99,6 +99,9 @@ class vtkDataArray;
// Mark C. Miller, Wed Nov 16 14:17:01 PST 2005
// Added compression support functions
//
// Hank Childs, Tue Jan 16 15:58:02 PST 2007
// Added CBreakVTKPipelineConnections.
//
// ****************************************************************************
//
......@@ -109,6 +112,8 @@ PIPELINE_API void CGetSpatialExtents(avtDataRepresentation &, void *, bool &);
PIPELINE_API void CGetDataExtents(avtDataRepresentation &, void *, bool &);
PIPELINE_API void CUpdateData(avtDataRepresentation &, void *, bool &);
PIPELINE_API void CAddInputToAppendFilter(avtDataRepresentation &, void *, bool &);
PIPELINE_API void CBreakVTKPipelineConnections(avtDataRepresentation &,
void *, bool &);
PIPELINE_API void CGetAllDatasets(avtDataRepresentation &, void *, bool &);
PIPELINE_API void CGetNumberOfZones(avtDataRepresentation &, void *, bool &);
PIPELINE_API void CGetChunkByDomain(avtDataRepresentation &, void *, bool &);
......
......@@ -44,6 +44,7 @@
#include <avtDataObjectSource.h>
#include <avtQueryableSource.h>
#include <avtTerminatingSource.h>
#include <avtWebpage.h>
#include <DebugStream.h>
#include <ImproperUseException.h>
......@@ -59,11 +60,17 @@
// Programmer: Hank Childs
// Creation: May 23, 2001
//
// Modifications:
//
// Hank Childs, Thu May 25 16:45:41 PDT 2006
// Initialize transient.
//
// ****************************************************************************
avtDataObject::avtDataObject(avtDataObjectSource *src)
{
source = src;
transient = true;
}
......@@ -417,11 +424,29 @@ avtDataObject::ReleaseData(void)
// Programmer: Hank Childs
// Creation: December 21, 2006
//
// Modifications:
//
// Hank Childs, Wed Jan 17 09:50:11 PST 2007
// Add transient to dump.
//
// ****************************************************************************
void
avtDataObject::DebugDump(avtWebpage *webpage, const char *prefix)
{
if (transient)
{
webpage->AddHeading("This data object is transient");
webpage->AddSubheading("(It will be deleted after the "
"filter is executed.)");
}
else
{
webpage->AddHeading("This data object is not transient");
webpage->AddSubheading("(It will not be deleted after the "
"filter is executed ... probably so that "
"queries can be performed against it.)");
}
info.DebugDump(webpage);
}
......
......@@ -76,6 +76,9 @@ class avtWebpage;
// Hank Childs, Sat Feb 19 14:49:17 PST 2005
// Added method to get the source of the data object.
//
// Hank Childs, Thu May 25 16:40:20 PDT 2006
// Add support for releasing data in the middle of a pipeline execution.
//
// Hank Childs, Thu Dec 21 09:58:57 PST 2006
// Added method for debug dumps.
//
......@@ -109,12 +112,23 @@ class PIPELINE_API avtDataObject
virtual avtDataObjectWriter *InstantiateWriter(void);
void SetTransientStatus(bool b)
{ transient = b; };
bool IsTransient(void) { return transient; };
virtual void DebugDump(avtWebpage *, const char *);
protected:
avtDataObjectInformation info;
avtDataObjectSource *source;
// "Transient" implies that this object is only needed so that a filter
// can process it and calculate its output. Almost all data objects are
// "transient". An example of a non-transient data object is the
// "intermediate data object" of a plot, which must not be deleted,
// because we need it for queries.
bool transient;
virtual void DerivedCopy(avtDataObject *);
virtual void DerivedMerge(avtDataObject *);
void CompatibleTypes(avtDataObject *);
......
......@@ -493,17 +493,27 @@ avtDataset::SetActiveVariable(const char *name)
// Programmer: Hank Childs
// Creation: December 21, 2006
//
// Modifications:
//
// Hank Childs, Wed Jan 17 11:02:43 PST 2007
// Add support for bad data trees.
//
// ****************************************************************************
void
avtDataset::DebugDump(avtWebpage *webpage, const char *prefix)
{
avtDataObject::DebugDump(webpage, prefix);
webpage->AddSubheading("Data tree");
webpage->StartTable();
webpage->AddTableHeader4("Node ID", "Parent ID", "Type", "Description");
dataTree->DebugDump(webpage, prefix, 0, -1);
webpage->EndTable();
if (*dataTree != NULL)
{
webpage->AddSubheading("Data tree");
webpage->StartTable();
webpage->AddTableHeader4("Node ID", "Parent ID", "Type", "Description");
dataTree->DebugDump(webpage, prefix, 0, -1);
webpage->EndTable();
}
else
webpage->AddSubheading("NULL data tree ... very bad");
}
......@@ -718,15 +718,15 @@ avtIntervalTree::GetElementsListFromRange(const double *min_vec,
// Method: avtIntervalTree::GetElementsFromAxiallySymmetricLineIntersection
//
// Purpose:
// This test will only work with 2D items (called domains) and
// intersections with a 3D line. The idea is that the "domains" are
// revolved into 3D and we need to figure out which domains intersect
// This test will only work with 2D items and
// intersections with a 3D line. The idea is that the terms are
// revolved into 3D and we need to figure out which items intersect
// with a line when revolved into 3D.
//
// Arguments:
// P1 A point on the line.
// D1 The direction of the line.
// list The list of domains that satisfy the linear equation.
// list The list of items that satisfy the linear equation.
//
// Programmer: Hank Childs
// Creation: July 28, 2006
......@@ -974,8 +974,8 @@ AxiallySymmetricLineIntersection(const double *P1, const double *D1,
double B = 2*P1[0]*D1[0] + 2*P1[1]*D1[1];
double C0 = P1[0]*P1[0] + P1[1]*P1[1];
double C = C0-Rmin*Rmin;
double det = B*B - 4*A*C;
if (det < 0)
double discriminant = B*B - 4*A*C;
if (A == 0 || discriminant < 0)
{
// There are no roots, so the inequality is either always true
// or always false (for all t). So evaluate it and see which one.
......@@ -991,7 +991,7 @@ AxiallySymmetricLineIntersection(const double *P1, const double *D1,
}
else
{
double root = sqrt(det);
double root = sqrt(discriminant);
double soln1 = (-B + root) / (2*A);
double soln2 = (-B - root) / (2*A);
if (soln1 == soln2)
......@@ -1041,8 +1041,8 @@ AxiallySymmetricLineIntersection(const double *P1, const double *D1,
double r2_int1[2] = { 10e30, -10e30 };
double r2_int2[2] = { 10e30, -10e30 };
C = C0-Rmax*Rmax;
det = B*B - 4*A*C;
if (det < 0)
discriminant = B*B - 4*A*C;
if (A == 0 || discriminant < 0)
{
// There are no roots, so the inequality is either always true
// or always false (for all t). So evaluate it and see which one.
......@@ -1058,7 +1058,7 @@ AxiallySymmetricLineIntersection(const double *P1, const double *D1,
}
else
{
double root = sqrt(det);
double root = sqrt(discriminant);
double soln1 = (-B + root) / (2*A);
double soln2 = (-B - root) / (2*A);
if (soln1 == soln2)
......@@ -1424,7 +1424,7 @@ avtIntervalTree::GetElementsList(double origin[3], double rayDir[3],
// Method: avtIntervalTree::GetElementsListFromRay
//
// Purpose:
// Takes in a ray origin and direction, and determines which elements
// Takes in a ray origin and direction, and determines which elements
// are intersected by the ray.
//
// Notes: Copied from GetElementsLists for an equation, just changed the
......
......@@ -142,19 +142,27 @@ avtDataObjectToDatasetFilter::OutputSetActiveVariable(const char *varname)
// Programmer: Hank Childs
// Creation: July 27, 2004
//
// Modifications:
//
// Hank Childs, Tue Jan 16 11:24:53 PST 2007
// Break all VTK pipeline connections.
//
// ****************************************************************************
void
avtDataObjectToDatasetFilter::PostExecute(void)
{
avtDataTree_p tree = GetDataTree();
bool dummy;
avtDataAttributes &atts = GetOutput()->GetInfo().GetAttributes();
if ((atts.GetSpatialDimension()==3 && atts.GetTopologicalDimension()<3) ||
(atts.GetSpatialDimension()==2 && atts.GetTopologicalDimension()<2))
{
avtDataTree_p tree = GetDataTree();
bool dummy;
tree->Traverse(CConvertUnstructuredGridToPolyData, NULL, dummy);
}
tree->Traverse(CBreakVTKPipelineConnections, NULL, dummy);
}
......@@ -184,6 +184,10 @@ avtFilter::UpdateProgress(int current, int total)
// Moved timings code from avtDataTreeStreamer to this routine so that
// all filters are timed.
//
// Hank Childs, Thu May 25 16:45:41 PDT 2006
// Release data for all transient data when we are done executing,
// regardless of whether or not we're streaming.
//
// Hank Childs, Thu Dec 21 09:15:00 PST 2006
// Add support for the "-dump" option.
//
......@@ -262,7 +266,8 @@ avtFilter::Update(avtPipelineSpecification_p spec)
//
// If we are doing dynamic load balancing, clean up as we go.
//
if (GetInput()->GetInfo().GetValidity().GetIsThisDynamic())
if (GetInput()->GetInfo().GetValidity().GetIsThisDynamic() ||
GetInput()->IsTransient())
{
if (GetInput()->GetSource() != NULL)
GetInput()->GetSource()->ReleaseData();
......@@ -1090,6 +1095,9 @@ avtFilter::ExamineSpecification(avtPipelineSpecification_p)
// class's method. Left this one in place so that the debug statement
// would stick around (very useful for debugging).
//
// Hank Childs, Wed Jan 17 11:14:17 PST 2007
// Tell the filter that it has been modified when it releases its data.
//
// ****************************************************************************
void
......@@ -1097,6 +1105,7 @@ avtFilter::ReleaseData(void)
{
debug3 << "Filter " << GetType() << " releasing its data" << endl;
avtDataObjectSource::ReleaseData();
modified = true;
}
......
......@@ -446,6 +446,10 @@ avtPlot::Execute(avtDataObject_p input, avtPipelineSpecification_p spec,
// Hank Childs, Wed Mar 2 11:11:59 PST 2005
// Pass a pipeline specification to the sink, not a data specification.
//
// Hank Childs, Thu May 25 16:45:41 PDT 2006
// Tell the intermediate data object that it is not transient (we need it
// for queries).
//
// ****************************************************************************
avtDataObjectWriter_p
......@@ -468,6 +472,7 @@ avtPlot::Execute(avtDataObject_p input, avtPipelineSpecification_p spec,
//
avtDataObject_p dob = ApplyOperators(input);
CopyTo(intermediateDataObject, dob);
intermediateDataObject->SetTransientStatus(false);
dob = ApplyRenderingTransformation(dob);
if (strcmp(dob->GetType(), "avtDataset") == 0)
......
......@@ -12,7 +12,7 @@ MESA=$VISITHOME/mesa/5.0/linux-x86_64
## Specify the location of the vtk include files and libraries.
##
#VTK=$VISITHOME/vtk/2003.10.28c/linux-x86_64
VTK=$VISITHOME/vtk/5.0.0b/linux-x86_64
VTK=$VISITHOME/vtk/5.0.0a/linux-x86_64
##
## Specify the location of the qt include files and libraries.
......@@ -37,11 +37,9 @@ CXXFLAGS="-fPIC -Wno-deprecated $CXXFLAGS"
## Add parallel arguments.
##
MPIHOME=/usr/local/ibg2/mpi/gcc/mvapich-0.9.5-mlx2.0.1/
LDFLAGS="-L/usr/local/ibg2/lib64 -L$MPIHOME/lib $LDFLAGS"
CPPFLAGS="-I$MPIHOME/include $CPPFLAGS"
MPI_LIBS="-lmpich -libverbs"
# use mpich for parallel
CPPFLAGS="-DMPICH_SKIP_MPICXX -I/usr/local/include $CPPFLAGS"
MPI_LIBS="-L/usr/local/lib -lmpich"
##
## Database reader plugin support libraries
......
......@@ -668,6 +668,11 @@ NetworkManager::GetDBFromCache(const string &filename, int time,
//
// Mark C. Miller, Sun Dec 3 12:20:11 PST 2006
// Added setting of flatness tolerance to data spec for CSG stuff
//
// Hank Childs, Wed Jan 17 10:42:21 PST 2007
// Tell the output of the expression evaluator filter that it is *not*
// transient, since picks sometimes like to look at these.
//
// ****************************************************************************
void
......@@ -699,6 +704,7 @@ NetworkManager::StartNetwork(const string &format,
avtExpressionEvaluatorFilter *f = new avtExpressionEvaluatorFilter();
NetnodeFilter *filt = new NetnodeFilter(f, "ExpressionEvaluator");
filt->GetInputNodes().push_back(netDB);
f->GetOutput()->SetTransientStatus(false);
// Push the ExpressionEvaluator onto the working list.
workingNetnodeList.push_back(filt);
......
......@@ -350,6 +350,9 @@ ViewerSubject::ViewerSubject() : xfer(), clients(), viewerRPC(),
// Kathleen Bonnell, Tue Jun 20 16:02:38 PDT 2006
// Add plotInfoAtts.
//
// Mark C. Miller, Wed Jan 10 11:50:51 PST 2007
// Fixed mismatched delete for configFileName
//
// ****************************************************************************
ViewerSubject::~ViewerSubject()
......@@ -369,7 +372,7 @@ ViewerSubject::~ViewerSubject()
delete appearanceAtts;
delete syncAtts;
delete syncObserver;
delete configFileName;
delete [] configFileName;
delete metaData;
delete silAtts;
delete procAtts;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment