Commit 729eb4c0 authored by hrchilds's avatar hrchilds

Update from October 7, 2005

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@552 18c085ea-50e0-402c-830e-de6fd14e8384
parent b88a0d69
......@@ -18,8 +18,44 @@
# Brad Whitlock, Fri Jun 18 10:21:12 PDT 2004
# I added a new chapter to the manual and some that were missing.
#
# Brad Whitlock, Fri Oct 7 13:26:46 PST 2005
# I added an argument that converts the files to MIF but does not convert
# the MIF files into HTML.
#
###############################################################################
set MIFOnly = "FALSE"
set Help = "FALSE"
#
# Parse the argument list.
#
while ($#argv >= 1)
switch ($1)
case -mifonly:
set MIFOnly = TRUE
breaksw
case -h:
case -help:
set Help = TRUE
breaksw
default:
echo " "
echo ">>>>>>>>>> Illegal option $1 <<<<<<<<<<"
echo " "
breaksw
endsw
shift
end
if ($Help == TRUE) then
echo "Usage: makehelp [-mifonly] [-h | -help]"
echo ""
echo " -mifonly Just convert the frame documents to MIF files."
echo " -h Print this message."
exit (1)
endif
# Keep this until we get our sysadmins to add fmbatch to the path.
if(`hostname` == "sunspot.llnl.gov" || `hostname` == "sunburn.llnl.gov") then
set path = (/usr/local/framemaker/bin $path)
......@@ -89,23 +125,26 @@ Quit" > $fmCommands
endif
end
# If the tool is built then proceed.
if(-e mif2help) then
# Create a list of MIF files to pass to mif2help.
set mifargs = " "
foreach input ($inputFiles)
set mifName = "$outputPath/$input.mif"
set tmpvar = "$mifargs $mifName"
set mifargs = "$tmpvar"
end
# If we're doing more than converting then run mif2help.
if ("$MIFOnly" == "FALSE") then
# If the tool is built then proceed.
if(-e mif2help) then
# Create a list of MIF files to pass to mif2help.
set mifargs = " "
foreach input ($inputFiles)
set mifName = "$outputPath/$input.mif"
set tmpvar = "$mifargs $mifName"
set mifargs = "$tmpvar"
end
mif2help $mifargs
else
echo "The mif2help tool failed to build."
endif
mif2help $mifargs
else
echo "The mif2help tool failed to build."
endif
# Remove the temp directory
rm -rf $outputPath
# Remove the temp directory
rm -rf $outputPath
endif
# Go back to the starting directory.
cd $startDir
......@@ -209,6 +209,9 @@
# Jeremy Meredith, Wed Jul 6 14:46:56 PDT 2005
# Added xlc compiler-specific support.
#
# Brad Whitlock, Fri Oct 7 13:16:49 PST 2005
# Copy dbA00.pdb and dbB00.pdb to the distribution.
#
#------------------------------------------------------------------------------
set DataFiles = "TRUE"
......@@ -503,6 +506,10 @@ if ($DataFiles == "TRUE") then
./tire
rm multi_point* multi_rect* multi_curv* poly3d.silo
cp *.silo $pwd/distribution/visit/data
if (-e ./correlationtest) then
./correlationtest
cp db{A,B}00.pdb $pwd/distribution/visit/data
endif
cd $pwd/distribution/visit/data
cd $pwd
endif
......
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
/* XPM */
static const char * correlation_xpm[] = {
"17 17 8 1",
" c None",
". c #727272",
"+ c #000000",
"@ c #C0C0C0",
"# c #D60000",
"$ c #FF0000",
"% c #007FFF",
"& c #009DFF",
".+++++++++++++++.",
"+@@@@@@@@@@@@@@@+",
"+@#$$@@#$$@@#$$@+",
"+@#$$@@#$$@@#$$@+",
"+@###@@###@@###@+",
"+@@@@@@@@@@@@@@@+",
".+++++++++++++++.",
"@@@.+@@@.+@@@.+@@",
"@@@.+@@@.+@@@.+@@",
"@@@.+@@@.+@@@.+@@",
".+++++++++++++++.",
"+@@@@@@@@@@@@@@@+",
"+@%&&@@%&&@@%&&@+",
"+@%&&@@%&&@@%&&@+",
"+@%%%@@%%%@@%%%@+",
"+@@@@@@@@@@@@@@@+",
".+++++++++++++++."};
/* XPM */
static const char * globallineout_xpm[] = {
"17 17 121 2",
" c None",
". c #C0C0C0",
"+ c #B974BB",
"@ c #A443B3",
"# c #92A0AE",
"$ c #8EB1B1",
"% c #86B0B0",
"& c #7EAEAE",
"* c #77A8A8",
"= c #71A7A8",
"- c #69A2A3",
"; c #649FA0",
"> c #77A3A4",
", c #8CACAD",
"' c #9FB3B3",
") c #B0BBBB",
"! c #BFBFBF",
"~ c #B738B8",
"{ c #8B22AC",
"] c #5B809B",
"^ c #5FA4A5",
"/ c #5FA1A2",
"( c #5E9D9E",
"_ c #5D989A",
": c #609C9D",
"< c #65A0A1",
"[ c #6AA5A6",
"} c #80B0B0",
"| c #AEBDBD",
"1 c #99A2B2",
"2 c #6086A3",
"3 c #5DA5A9",
"4 c #6575A8",
"5 c #646DA2",
"6 c #5DA3A6",
"7 c #5FA9AA",
"8 c #5FAAAB",
"9 c #5EB1B1",
"0 c #5EAFAF",
"a c #5EAEAE",
"b c #5EB0B1",
"c c #5EB2B2",
"d c #5EB3B3",
"e c #5EB5B5",
"f c #60B6B6",
"g c #A1BBBB",
"h c #A0BBBB",
"i c #60AFAF",
"j c #5B9EA8",
"k c #7D3BAC",
"l c #7A3CAA",
"m c #5A9FA8",
"n c #5EBEBE",
"o c #5EC2C2",
"p c #5EB8B8",
"q c #5EB6B6",
"r c #62B6B6",
"s c #AEBCBC",
"t c #A8BBBB",
"u c #000000",
"v c #5EADAD",
"w c #5F86A1",
"x c #5D8BA4",
"y c #5CA4AA",
"z c #6085AD",
"A c #5DA5B6",
"B c #63B6B6",
"C c #B6BEBE",
"D c #5F8BA6",
"E c #8E3CC7",
"F c #6769AB",
"G c #FF0000",
"H c #BEBFBF",
"I c #B2BDBD",
"J c #5EA8AD",
"K c #6586B2",
"L c #5DA8B5",
"M c #5BAEB7",
"N c #5D87A9",
"O c #5DB1B4",
"P c #6FB6B6",
"Q c #B9BEBE",
"R c #5B8DA8",
"S c #78B7B7",
"T c #5EBFBF",
"U c #5BA3B0",
"V c #5D91AA",
"W c #84B8B8",
"X c #5EA6A7",
"Y c #5EB0B0",
"Z c #5BA2AB",
"` c #8049BC",
" . c #7952B8",
".. c #5BABB0",
"+. c #8FBABA",
"@. c #5D999B",
"#. c #5EA9AA",
"$. c #5DACAD",
"%. c #6183AA",
"&. c #5F8AAA",
"*. c #5BA4AB",
"=. c #6081A7",
"-. c #9BAABA",
";. c #5E989A",
">. c #5EA9A9",
",. c #5D7EA4",
"'. c #A720C5",
"). c #B46BBC",
"!. c #7AA4A4",
"~. c #67B0B0",
"{. c #7AA6B2",
"]. c #AA70B7",
"^. c #B7A3B8",
"/. c #B6BCBC",
"(. c #7AA3A4",
"_. c #5E9A9C",
":. c #63AFAF",
"<. c #70B1B1",
"[. c #93B7B7",
"}. c #A3B9B9",
"|. c #BBBFBF",
". . . . . . . . . . . . . . . . . ",
"+ @ # $ % & * = - ; > , ' ) ! . . ",
"~ { ] ^ / / / / / ( _ _ : < [ } | ",
"1 2 3 4 5 6 7 8 9 0 a b c d e f g ",
"h i j k l m n o o p q q q q q r s ",
"t u v w x y z A o q q q q q q B C ",
"s u a a a D E F o q q q q q G G H ",
"I u a a a J K L M N O q q G G P . ",
"Q u a a a G G G G G R G G G q S . ",
"H u a a G G n T U G G G V e q W . ",
". u a G G X Y 0 0 a Z ` ...q +.. ",
". u G G @.@.#.a a a $.%.&.*.=.-.. ",
". u G ;._ @.>.a a a a a a ,.'.).. ",
". u G !.;.@.#.a a a a a ~.{.].^.. ",
". u G /.(._.#.a a :.<.[.s ! . . . ",
". u u u u u u u u u u u u u u u . ",
". . . . . Q }.|.. . . . . . . . . "};
/* XPM */
static const char * keyframe_xpm[] = {
"17 17 6 1",
". c None",
"+ c #A5A5A5",
"@ c #000000",
"# c #EFEFEF",
"$ c #FFFFFF",
"% c #898989",
".................",
"....+@@@+........",
"....@#$#@........",
".@@@@$$$@@@@@@@@.",
".%%%@#$#@%%%%%%%.",
"....+@@@+........",
"..........+@@@+..",
"..........@#$#@..",
".@@@@@@@@@@$$$@@.",
".%%%%%%%%%@#$#@%.",
"..........+@@@+..",
"....+@@@+........",
"....@#$#@........",
".@@@@$$$@@@@@@@@.",
".%%%@#$#@%%%%%%%.",
"....+@@@+........",
"................."};
/* XPM */
static const char * matoptions_xpm[] = {
"17 17 8 1",
". c None",
"+ c #000000",
"@ c #FF0000",
"# c #E70053",
"$ c #717DFF",
"% c #DB0000",
"& c #82CA00",
"* c #00FF00",
".................",
".+++++++++++++++.",
".+@@@@@#+$$$$$$+.",
".+@@@@@%+#$$$$$+.",
".+@@@@@%+##$$$$+.",
".+@@@@@%+@##$$$+.",
".+@@@@@%+@@##$$+.",
".+&%%%%%+@@@##$+.",
".+++++++++++++++.",
".+*&&@@@+%%%%%#+.",
".+**&&@@+%@@@@@+.",
".+***&&@+%@@@@@+.",
".+****&&+%@@@@@+.",
".+*****&+%@@@@@+.",
".+******+&@@@@@+.",
".+++++++++++++++.",
"................."};
......@@ -320,6 +320,9 @@ avtDatabase::GetOutput(const char *var, int ts)
// Jeremy Meredith, Thu Aug 25 11:06:06 PDT 2005
// Added group origin.
//
// Hank Childs, Fri Oct 7 08:21:03 PDT 2005
// Added fullDBName.
//
// ****************************************************************************
void
......@@ -334,6 +337,7 @@ avtDatabase::PopulateDataObjectInformation(avtDataObject_p &dob,
int timerHandle = visitTimer->StartTimer();
avtDataAttributes &atts = dob->GetInfo().GetAttributes();
atts.SetFullDBName(fullDBName);
avtDataValidity &validity = dob->GetInfo().GetValidity();
string mesh = GetMetaData(ts)->MeshForVar(var);
......
......@@ -221,6 +221,9 @@ typedef struct {
// Hank Childs, Tue Jul 19 15:52:47 PDT 2005
// Add QueryArray.
//
// Hank Childs, Fri Oct 7 08:21:03 PDT 2005
// Added fullDBName.
//
// ****************************************************************************
class DATABASE_API avtDatabase
......@@ -230,6 +233,10 @@ class DATABASE_API avtDatabase
virtual ~avtDatabase();
virtual const char *GetFilename(int) { return NULL; };
const std::string &GetFullDBName(void) { return fullDBName; };
void SetFullDBName(const std::string &f)
{ fullDBName = f; };
avtDataObject_p GetOutput(const char *, int);
virtual void GetAuxiliaryData(avtDataSpecification_p,
......@@ -291,6 +298,7 @@ class DATABASE_API avtDatabase
bool gotIOInfo;
static bool onlyServeUpMetaData;
std::string fileFormat;
std::string fullDBName;
static int mdCacheSize;
static int silCacheSize;
......
......@@ -103,6 +103,9 @@ avtCMFEExpression::PreExecute(void)
// Hank Childs, Fri Sep 9 09:38:08 PDT 2005
// Add suport for expressions in first argument.
//
// Hank Childs, Fri Oct 7 08:31:30 PDT 2005
// Add support for implied database names.
//
// ****************************************************************************
void
......@@ -169,7 +172,9 @@ avtCMFEExpression::ProcessArguments(ArgsExpr *args,
"The first argument of the database comparison "
"expression must be a database.");
}
db = db_expr->GetFile()->GetFullpath();
db = "";
if (db_expr->GetFile() != NULL)
db = db_expr->GetFile()->GetFullpath();
TimeExpr *time_expr = db_expr->GetTime();
if (time_expr == NULL)
......@@ -258,11 +263,17 @@ avtCMFEExpression::ProcessArguments(ArgsExpr *args,
// Hank Childs, Thu Sep 8 13:50:17 PDT 2005
// Add handling for expressions.
//
// Hank Childs, Fri Oct 7 08:31:30 PDT 2005
// Add support for implied database names. Also use the same SIL
// restriction if the derived type thinks we should.
//
// ****************************************************************************
void
avtCMFEExpression::Execute()
{
if (db == "")
db = GetInput()->GetInfo().GetAttributes().GetFullDBName();
ref_ptr<avtDatabase> dbp = avtCallback::GetDatabase(db, 0, NULL);
if (*dbp == NULL)
EXCEPTION1(InvalidFilesException, db.c_str());
......@@ -287,6 +298,11 @@ avtCMFEExpression::Execute()
expr_var.c_str());
avtPipelineSpecification_p spec =
new avtPipelineSpecification(ds, 1);
if (UseIdenticalSIL())
{
ds = new avtDataSpecification(ds, firstDBSIL);
spec = new avtPipelineSpecification(spec, ds);
}
spec->GetDataSpecification()->SetTimestep(actualTimestep);
avtExpressionEvaluatorFilter *eef = new avtExpressionEvaluatorFilter;
......@@ -484,6 +500,11 @@ avtCMFEExpression::GetTimestate(ref_ptr<avtDatabase> dbp)
// Programmer: Hank Childs
// Creation: September 1, 2005
//
// Modifications:
//
// Hank Childs, Fri Oct 7 10:33:20 PDT 2005
// Cache the SIL restriction as well.
//
// ****************************************************************************
void
......@@ -492,6 +513,7 @@ avtCMFEExpression::ExamineSpecification(avtPipelineSpecification_p spec)
avtExpressionFilter::ExamineSpecification(spec);
firstDBTime = spec->GetDataSpecification()->GetTimestep();
firstDBSIL = spec->GetDataSpecification()->GetRestriction();
}
......@@ -6,6 +6,7 @@
#define AVT_CMFE_EXPRESSION_H
#include <avtExpressionFilter.h>
#include <avtSILRestriction.h>
#include <ExprNode.h>
class vtkDataArray;
......@@ -54,6 +55,7 @@ class EXPRESSION_API avtCMFEExpression : public avtExpressionFilter
double dtime;
bool isDelta;
int firstDBTime;
avtSILRestriction_p firstDBSIL;
std::string argument_expression;
int varDim;
......@@ -64,6 +66,7 @@ class EXPRESSION_API avtCMFEExpression : public avtExpressionFilter
const std::string &,
const std::string &) = 0;
virtual void ExamineSpecification(avtPipelineSpecification_p);
virtual bool UseIdenticalSIL(void) { return false; };
int GetTimestate(ref_ptr<avtDatabase>);
};
......
......@@ -11,6 +11,8 @@
#include <vtkDataSet.h>
#include <vtkPointData.h>
#include <avtSILRestrictionTraverser.h>
#include <DebugStream.h>
#include <InvalidMergeException.h>
......@@ -82,6 +84,11 @@ avtConnCMFEExpression::PerformCMFE(avtDataTree_p in1, avtDataTree_p in2,
// Programmer: Hank Childs
// Creation: August 26, 2005
//
// Modifications:
//
// Hank Childs, Fri Oct 7 11:07:33 PDT 2005
// Modify warning message to account for material selection.
//
// ****************************************************************************
avtDataTree_p
......@@ -134,22 +141,56 @@ avtConnCMFEExpression::ExecuteTree(avtDataTree_p in1, avtDataTree_p in2,
char msg[1024];
if (in_ds1->GetNumberOfCells() != in_ds2->GetNumberOfCells())
{
sprintf(msg, "The databases cannot be compared because they have "
" a different number of cells for domain %d. The "
" cell counts are %d and %d.",
in1->GetDataRepresentation().GetDomain(),
in_ds1->GetNumberOfCells(),
in_ds2->GetNumberOfCells());
avtSILRestrictionTraverser trav(firstDBSIL);
if (trav.UsesAllMaterials())
{
sprintf(msg, "The databases cannot be compared because they "
"have a different number of cells for domain %d."
" The cell counts are %d and %d.",
in1->GetDataRepresentation().GetDomain(),
in_ds1->GetNumberOfCells(),
in_ds2->GetNumberOfCells());
}
else
{
sprintf(msg, "The databases cannot be compared because they"
" have a different number of cells for domain %d."
" The cell counts are %d and %d. It appears that"
" you have removed some materials. Databases "
"cannot be compared in this manner when materials"
" have been removed (and the simulation is "
"Eulerian).",
in1->GetDataRepresentation().GetDomain(),
in_ds1->GetNumberOfCells(),
in_ds2->GetNumberOfCells());
}
EXCEPTION1(InvalidMergeException, msg);
}
if (in_ds1->GetNumberOfPoints() != in_ds2->GetNumberOfPoints())
{
sprintf(msg, "The databases cannot be compared because they have "
" a different number of points for domain %d. The "
" point counts are %d and %d.",
avtSILRestrictionTraverser trav(firstDBSIL);
if (trav.UsesAllMaterials())
{
sprintf(msg, "The databases cannot be compared because they "
"have a different number of points for domain %d."
" The point counts are %d and %d.",
in1->GetDataRepresentation().GetDomain(),
in_ds1->GetNumberOfPoints(),
in_ds2->GetNumberOfPoints());
}
if (trav.UsesAllMaterials())
{
sprintf(msg, "The databases cannot be compared because they "
"have a different number of points for domain %d."
" The point counts are %d and %d. It appears ",
"that you have removed some materials. Databases"
" cannot be compared in this manner when materials"
" have been removed (and the simulation is "
"Eulerian).",
in1->GetDataRepresentation().GetDomain(),
in_ds1->GetNumberOfPoints(),
in_ds2->GetNumberOfPoints());
}
EXCEPTION1(InvalidMergeException, msg);
}
......
......@@ -39,6 +39,7 @@ class EXPRESSION_API avtConnCMFEExpression : public avtCMFEExpression
virtual avtDataTree_p ExecuteTree(avtDataTree_p, avtDataTree_p,
const std::string &,
const std::string &);
virtual bool UseIdenticalSIL(void) { return true; };
};
......
......@@ -72,6 +72,9 @@ avtBinaryDivideFilter::~avtBinaryDivideFilter()
// Hank Childs, Thu Aug 14 11:18:07 PDT 2003
// Add support for vector and scalar types mixing.
//
// Hank Childs, Fri Oct 7 10:43:28 PDT 2005
// Add support for dividing by zero.
//
// ****************************************************************************
void
......@@ -87,11 +90,16 @@ avtBinaryDivideFilter::DoOperation(vtkDataArray *in1, vtkDataArray *in2,
{
float val1 = in1->GetTuple1(i);
float val2 = in2->GetTuple1(i);
if (val2 == 0.)
if (val1 == 0. && val2 == 0.)
{
out->SetTuple1(i, 1.);
}
else if (val2 == 0. && val1 != 0.)
{
EXCEPTION1(ExpressionException, "You can't divide by zero");
}
out->SetTuple1(i, val1 / val2);
else
out->SetTuple1(i, val1 / val2);
}
}
else if (in1ncomps > 1 && in2ncomps == 1)
......
......@@ -87,6 +87,9 @@ using std::sort;
// Jeremy Meredith, Thu Aug 25 11:07:00 PDT 2005
// Added groupOrigin.
//
// Hank Childs, Fri Oct 7 08:31:30 PDT 2005
// Added fullDBName.
//
// ****************************************************************************