Commit 4a305684 authored by hrchilds's avatar hrchilds

Update from May 19, 2004

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@244 18c085ea-50e0-402c-830e-de6fd14e8384
parent a57a6110
......@@ -456,9 +456,9 @@ env command for configure.
#
# Build and install it in the visit directory.
#
gunzip visit040419.tar.gz
tar xf visit040419.tar
cd visit040419/config-site
gunzip visit040517.tar.gz
tar xf visit040517.tar
cd visit040517/config-site
echo VISITHOME=`cat ../../visitpath` > `hostname`.conf
cat Template.conf >> `hostname`.conf
cd ..
......@@ -467,11 +467,11 @@ make
clearcase_bin/visit-bin-dist
# Use the appropriate install command based on the operating system on
# which you built VisIt.
clearcase_bin/visit-install 1.3 aix `cat ../visitpath`
clearcase_bin/visit-install 1.3 irix6 `cat ../visitpath`
clearcase_bin/visit-install 1.3 linux `cat ../visitpath`
clearcase_bin/visit-install 1.3 osf1 `cat ../visitpath`
clearcase_bin/visit-install 1.3 sunos5 `cat ../visitpath`
clearcase_bin/visit-install 1.3.1 aix `cat ../visitpath`
clearcase_bin/visit-install 1.3.1 irix6 `cat ../visitpath`
clearcase_bin/visit-install 1.3.1 linux `cat ../visitpath`
clearcase_bin/visit-install 1.3.1 osf1 `cat ../visitpath`
clearcase_bin/visit-install 1.3.1 sunos5 `cat ../visitpath`
When running the configure script you can enable or disable certain dependent
packages. All the configure options are listed at the beginning of the
......
......@@ -17,7 +17,7 @@ Unix and Mac OS X:
where
"version" will be 1.3 for the current distribution.
"version" will be 1.3.1 for the current distribution.
"platform" will be one of the following: aix, darwin, irix6, linux,
osf1, or sunos5 depending on the machine. The one you use should
......@@ -28,17 +28,17 @@ Unix and Mac OS X:
For example
visit-install 1.3 irix6 /usr/local/visit
visit-install 1.3.1 irix6 /usr/local/visit
will install the irix6, 1.3 version of visit in the directory
will install the irix6, 1.3.1 version of visit in the directory
"/usr/local/visit". Note that you will need to have the file
"visit1_3.irix6.tar.gz" present in the current directory for this
"visit1_3_1.irix6.tar.gz" present in the current directory for this
to function properly. You can install multiple binaries into the
same directory. For example, you could then execute
visit-install -a 1.3 linux /usr/local/visit
visit-install -a 1.3.1 linux /usr/local/visit
to add a linux, 1.3 version of visit to the same directory.
to add a linux, 1.3.1 version of visit to the same directory.
2. Add the bin directory below the installation directory
(/usr/local/visit/bin in our example) to each user's search path.
......@@ -76,8 +76,8 @@ Unix and Mac OS X:
Windows:
1. Copy the file visit1.3.exe to your desktop.
1. Copy the file visit1.3.1.exe to your desktop.
2. Double click on the visit1.3.exe icon to run the installer.
2. Double click on the visit1.3.1.exe icon to run the installer.
3. Follow the directions provided by the installer.
......@@ -73,6 +73,9 @@
# Mark C. Miller, Thu Apr 22 22:35:17 PDT 2004
# Made clearmake parallel since we're already running tests in parallel
#
# Kathleen Bonnell, Wed May 19 16:31:04 PDT 2004
# Added queryMultiWindow.py to skipList for parallel and scalable,parallel.
#
# ----------------------------------------------------------------------------
# list of users who want email every night with the log file
......@@ -202,7 +205,9 @@ modes="serial parallel scalable,parallel"
# set list of tests/modes to skip
skipList="parallel:tests/rendering/volume.py \
scalable,parallel:tests/hybrid/lineout.py \
scalable,parallel:tests/rendering/volume.py"
scalable,parallel:tests/rendering/volume.py \
parallel:tests/queries/queryMultiWindow.py \
scalable,parallel:tests/queries/queryMultiWindow.py"
# run the test(s)
error=0
......
......@@ -6,11 +6,11 @@
<Field name="cloneWindowOnFirstRef" type="bool">true</Field>
</Object>
<Object name="PluginManagerAttributes" childObjects="0">
<Field name="name" type="stringVector">Streamline Displace InverseGhostZone </Field>
<Field name="type" type="stringVector">plot operator operator </Field>
<Field name="version" type="stringVector">1.0 1.0 1.0 </Field>
<Field name="id" type="stringVector">Streamline_1.0 Displace_1.0 InverseGhostZone_1.0 </Field>
<Field name="enabled" type="intVector">0 0 0 </Field>
<Field name="name" type="stringVector">Streamline InverseGhostZone </Field>
<Field name="type" type="stringVector">plot operator </Field>
<Field name="version" type="stringVector">1.0 1.0 </Field>
<Field name="id" type="stringVector">Streamline_1.0 InverseGhostZone_1.0 </Field>
<Field name="enabled" type="intVector">0 0 </Field>
</Object>
<Object name="HostProfileList" childObjects="31">
<Object name="HostProfile" childObjects="0">
......
......@@ -6,11 +6,11 @@
<Field name="cloneWindowOnFirstRef" type="bool">true</Field>
</Object>
<Object name="PluginManagerAttributes" childObjects="0">
<Field name="name" type="stringVector">Streamline Displace InverseGhostZone </Field>
<Field name="type" type="stringVector">plot operator operator </Field>
<Field name="version" type="stringVector">1.0 1.0 1.0 </Field>
<Field name="id" type="stringVector">Streamline_1.0 Displace_1.0 InverseGhostZone_1.0 </Field>
<Field name="enabled" type="intVector">0 0 0 </Field>
<Field name="name" type="stringVector">Streamline InverseGhostZone </Field>
<Field name="type" type="stringVector">plot operator </Field>
<Field name="version" type="stringVector">1.0 1.0 </Field>
<Field name="id" type="stringVector">Streamline_1.0 InverseGhostZone_1.0 </Field>
<Field name="enabled" type="intVector">0 0 </Field>
</Object>
<Object name="HostProfileList" childObjects="21">
<Object name="HostProfile" childObjects="0">
......
......@@ -19,7 +19,8 @@ const char *AUXILIARY_DATA_DOMAIN_NESTING_INFORMATION
static const char *avtExtentType_strings[] = { "AVT_ORIGINAL_EXTENTS",
"AVT_ACTUAL_EXTENTS", "AVT_SPECIFIED_EXTENTS", "AVT_UNKNOWN_EXTENT_TYPE"};
// **************************************************************************** // Function: avtExtentType_ToString
// ****************************************************************************
// Function: avtExtentType_ToString
//
// Purpose:
// Returns a string version of avtExtentType.
......@@ -75,3 +76,42 @@ avtExtentType_FromString(const std::string &s, avtExtentType &m)
return false;
}
// ****************************************************************************
// Function: GuessVarTypeFromNumDimsAndComps
//
// Purpose:
// Guesses the avt variable type from spatial dimensions and component count
//
// Programmer: Mark C. Miller
// Creation: Tue May 18 15:31:37 PDT 2004
//
// ****************************************************************************
avtVarType
GuessVarTypeFromNumDimsAndComps(int numSpatialDims, int componentCount)
{
avtVarType retval = AVT_UNKNOWN_TYPE;
if (componentCount == 1)
retval = AVT_SCALAR_VAR;
else if (numSpatialDims == 2)
{
if (componentCount == 2)
retval = AVT_VECTOR_VAR;
else if (componentCount == 3)
retval = AVT_SYMMETRIC_TENSOR_VAR;
else if (componentCount == 4)
retval = AVT_TENSOR_VAR;
}
else if (numSpatialDims == 3)
{
if (componentCount == 3)
retval = AVT_VECTOR_VAR;
else if (componentCount == 6)
retval = AVT_SYMMETRIC_TENSOR_VAR;
else if (componentCount == 9)
retval = AVT_TENSOR_VAR;
}
return retval;
}
......@@ -96,6 +96,9 @@ DBATTS_API std::string avtExtentType_ToString(avtExtentType);
DBATTS_API std::string avtExtentType_ToString(int);
DBATTS_API bool avtExtentType_FromString(const std::string &, avtExtentType &);
DBATTS_API avtVarType GuessVarTypeFromNumDimsAndComps(int numSpatialDims,
int componentCount);
#endif
......@@ -3,6 +3,7 @@
// ************************************************************************* //
#include <avtMaterial.h>
#include <map>
#include <snprintf.h>
......@@ -427,6 +428,10 @@ avtMaterial::avtMaterial(int nMats, const vector<string> &mats, int nzon,
// Programmer: Mark C. Miller
// Creation: April 28, 2004
//
// Modifications:
// Mark C. Miller, Wed May 19 21:31:28 PDT 2004
// corrected off by one error in mixed traversals
//
// ****************************************************************************
avtMaterial::avtMaterial(int nTotMats, const int *mats, const char **names,
......@@ -611,11 +616,15 @@ avtMaterial::avtMaterial(int nTotMats, const int *mats, const char **names,
// walk forward through the list for this zone
//
int k = -(ml[zoneNum]+1);
while (mixn[k] != 0)
k = mixn[k];
while (true)
{
if (mixn[k] == 0)
break;
k = mixn[k]-1;
}
// link up last entry in list with the new entry
mixn[k] = mlindex;
mixn[k] = mlindex+1;
// put in the new entry
mixm[mlindex] = matno;
......@@ -722,6 +731,10 @@ avtMaterial::avtMaterial(int nTotMats, const int *mats, const char **names,
// Programmer: Mark C. Miller
// Creation: April 28, 2004
//
// Modifications:
// Mark C. Miller, Wed May 19 21:31:28 PDT 2004
// corrected off by one error in mixed traversals
//
// ****************************************************************************
avtMaterial::avtMaterial(int nTotMats, const int *mats, char **names,
......@@ -865,11 +878,15 @@ avtMaterial::avtMaterial(int nTotMats, const int *mats, char **names,
// walk forward through the list for this zone
int j = -(ml[z]+1);
while (mixn[j] != 0)
j = mixn[j];
while (true)
{
if (mixn[j] == 0)
break;
j = mixn[j]-1;
}
// link up last entry in list with the new entry
mixn[j] = mixl;
mixn[j] = mixl+1;
// put in the new entry
mixm[mixl] = mats[m];
......@@ -1369,6 +1386,63 @@ avtMaterial::ExtractCellMatInfo(int c) const
}
// ****************************************************************************
// Method: Print material list and mix info passed in
//
// Programmer: Mark C. Miller
// Creation: May 19, 2004
//
// ****************************************************************************
void
avtMaterial::Print(ostream& out, int nzones , const int *matlist, int mixlen,
const int *mix_mat, const int *mix_zone, const float *mix_vf,
const int *mix_next)
{
std::map<int,bool> matNumsUsed;
int i;
for (i = 0; i < nzones; i++)
{
if (matlist[i] >= 0)
{
out << "Zone " << i << " is clean in material " << matlist[i] << endl;
matNumsUsed[matlist[i]] = true;
}
else
{
out << "Zone " << i << " is mixing as follows" << endl;
int mixidx = -(matlist[i]+1);
float vfsum = 0.0;
while (true)
{
out << mix_mat[mixidx] << " (" << (int) (100*mix_vf[mixidx]) << "%), ";
matNumsUsed[mix_mat[mixidx]] = true;
vfsum += mix_vf[mixidx];
if (mix_next[mixidx] == 0)
break;
mixidx = mix_next[mixidx]-1;
}
out << " vfrac sum = " << vfsum;
if ((vfsum > 1 + 0.01) || (vfsum < 1 - 0.01))
out << " *** NOT ~1.0 ***" << endl;
else
out << " OK" << endl;
}
}
out << "In traversing the clean and mixed arrays, encountered the following "
"material numbers" << endl;
std::map<int,bool>::const_iterator pos;
for (pos = matNumsUsed.begin(); pos != matNumsUsed.end(); pos++)
out << ", " << pos->first;
out << endl;
}
// ****************************************************************************
// Method: avtMultiMaterial constructor
//
......
......@@ -7,6 +7,8 @@
#include <pipeline_exports.h>
#include <iostream.h>
#include <string>
#include <vector>
......@@ -157,8 +159,15 @@ class PIPELINE_API avtMaterial
std::vector<int> GetMapUsedMatToMat() { return mapUsedMatToMat; }
std::vector<int> GetMapMatToUsedMat() { return mapMatToUsedMat; }
static void Print(ostream &out, int numZones,
const int *matlist,
int mixlen,
const int *mix_mat,
const int *mix_zone,
const float *mix_vf,
const int *mix_next);
protected:
int nMaterials;
std::vector<std::string> materials;
......
......@@ -682,6 +682,10 @@ avtSAMRAIFileFormat::GetVectorVar(int patch, const char *visit_var_name)
// Brad Whitlock, Fri Mar 5 10:19:32 PDT 2004
// Changed for Windows compiler.
//
// Mark C. Miller, Wed May 19 10:56:11 PDT 2004
// Re-factored code having to do with guessing variable type to avtTypes
// function GuessVarTypeFromNumDimsAndComps
//
// ****************************************************************************
vtkDataArray *
avtSAMRAIFileFormat::ReadVar(int patch,
......@@ -739,27 +743,7 @@ avtSAMRAIFileFormat::ReadVar(int patch,
}
// guess var_type from problem dimensions and number of components
avtVarType var_type = AVT_UNKNOWN_TYPE;
if (num_components == 1)
var_type = AVT_SCALAR_VAR;
else if (num_dim_problem == 2)
{
if (num_components == 2)
var_type = AVT_VECTOR_VAR;
else if (num_components == 3)
var_type = AVT_SYMMETRIC_TENSOR_VAR;
else if (num_components == 4)
var_type = AVT_TENSOR_VAR;
}
else if (num_dim_problem == 3)
{
if (num_components == 3)
var_type = AVT_VECTOR_VAR;
else if (num_components == 6)
var_type = AVT_SYMMETRIC_TENSOR_VAR;
else if (num_components == 9)
var_type = AVT_TENSOR_VAR;
}
avtVarType var_type = GuessVarTypeFromNumDimsAndComps(num_dim_problem, num_components);
if (var_type == AVT_UNKNOWN_TYPE)
{
EXCEPTION1(InvalidVariableException, visit_var_name);
......@@ -1001,6 +985,10 @@ avtSAMRAIFileFormat::ReadMatSpecFractions(int patch, string mat_name,
// Mark C. Miller, Thu May 6 22:07:32 PDT 2004
// Used new material constructors
//
// Eric Brugger, Wed May 12 13:37:29 PDT 2004
// Modify the allocation of an array of float pointers so that it
// compiles on all platforms.
//
// ****************************************************************************
avtMaterial *
......@@ -1128,9 +1116,7 @@ avtSAMRAIFileFormat::GetMaterial(int patch, const char *matObjName)
}
else
{
// for some reason, the initialization to zero in the 'new' call
// doesn't take effect...
float **vfracs = new (float*)[num_mats](0);
float **vfracs = new float*[num_mats];
for (i = 0; i < num_mats; i++)
vfracs[i] = 0;
......@@ -1609,6 +1595,9 @@ avtSAMRAIFileFormat::GetSpecies(int patch, const char *specObjName)
// Mark C. Miller, Wed Jan 7 11:35:37 PST 2004
// Added stuff to compute unique species vectors for compression
//
// Mark C. Miller, Wed May 19 21:31:28 PDT 2004
// Corrected off by one error in mixed mat traversal
//
// ****************************************************************************
void
......@@ -1664,11 +1653,8 @@ avtSAMRAIFileFormat::ConvertMassFractionFields(vector<int> matIds,
else // mixed zone
{
speclist[i] = -INT_MAX;
bool first = true;
int mixidx = -(matlist[i]+1);
while (first || mixidx != 0)
while (true)
{
matNum = mix_mat[mixidx];
......@@ -1690,8 +1676,9 @@ avtSAMRAIFileFormat::ConvertMassFractionFields(vector<int> matIds,
aaspecies_mf[nspecies_mf++] = matSpecFracs[matNum][j][i];
#endif
first = false;
mixidx = mix_next[mixidx];
if (mix_next[mixidx] == 0)
break;
mixidx = mix_next[mixidx]-1;
}
}
}
......
......@@ -11,6 +11,9 @@ using std::vector;
static string IGNORE_CHARS = StringHelpers::NON_RELEVANT_CHARS;
const int STATIC_BUF_SIZE = 4096;
static char StaticStringBuf[STATIC_BUF_SIZE];
string RelevantString(string inStr)
{
string outStr;
......@@ -44,6 +47,9 @@ StringHelpers::GroupStrings(vector<string> stringList,
int i;
int nStrings = stringList.size();
if (nStrings == 0)
return;
// prime the input to the compare functions
IGNORE_CHARS = nonRelevantChars;
......@@ -116,3 +122,109 @@ StringHelpers::FindRE(const char *strToSearch, const char *re)
return (int) pm.rm_so;
}
static const char *
basename(const char *path, int& start)
{
start = -1;
if (path == 0)
{
strcpy(StaticStringBuf, ".");
return StaticStringBuf;
}
else if (*path == '\0')
{
strcpy(StaticStringBuf, ".");
return StaticStringBuf;
}
else
{
// find end of path string
int n = 0;
while ((path[n] != '\0') && (n < STATIC_BUF_SIZE))
n++;
// deal with string too large
if (n == STATIC_BUF_SIZE)
{
strcpy(StaticStringBuf, ".");
return StaticStringBuf;
}
// backup, skipping over all trailing '/' chars
int j = n-1;
while ((j >= 0) && (path[j] == '/'))
j--;
// deal with string consisting of all '/' chars
if (j == -1)
{
strcpy(StaticStringBuf, "/");
return StaticStringBuf;
}
// backup to just after next '/' char
int i = j-1;
while ((i >= 0) && (path[i] != '/'))
i--;
i++;
start = i;
// build the return string
int k;
for (k = 0; k < j - i + 1; k++)
StaticStringBuf[k] = path[i+k];
StaticStringBuf[k] = '\0';
return StaticStringBuf;
}
}
const char *
StringHelpers::Basename(const char *path)
{
int dummy1;
return basename(path, dummy1);
}
const char *
StringHelpers::Dirname(const char *path)
{
int start;
// deal with special cases first
if ((path == 0) || // null path
(path[0] == '\0') || // ""
((path[0] == '.') && (path[1] == '\0')) || // "."
((path[0] == '.') && (path[1] == '.') && // ".."
(path[2] == '\0')))
{
strcpy(StaticStringBuf, ".");
return StaticStringBuf;
}
else if ((path[0] == '/') && (path[1] == '\0'))
{
strcpy(StaticStringBuf, "/");
return StaticStringBuf;
}
// ok, figure out the basename
basename(path, start);
if (start == -1)
{
strcpy(StaticStringBuf, "/");
return StaticStringBuf;
}
else
{
int i;
for (i = 0; i < start; i++)
StaticStringBuf[i] = path[i];
if (StaticStringBuf[i-1] == '/')
StaticStringBuf[i-1] = '\0';
else
StaticStringBuf[i] = '\0';
return StaticStringBuf;
}
}
......@@ -14,15 +14,19 @@ using std::vector;
namespace StringHelpers
{
const string NON_RELEVANT_CHARS = "`~!@#$%^&*()-_=+{[}]|\\:;\"'<,>.?/0123456789";
enum FindResult {FindNone = -1, FindError = -2};
const string NON_RELEVANT_CHARS = "`~!@#$%^&*()-_=+{[}]|\\:;\"'<,>.?/0123456789";
void GroupStrings(vector<string> stringList,
vector<vector<string> > &stringGroups,
vector<string> &groupNames,
int numLeadingVals = 3,
string nonRelevantChars = NON_RELEVANT_CHARS);
int FindRE(const char *stringToSearch, const char *re);
const char * Basename(const char *path);
const char * Dirname(const char *path);
}
#endif
......@@ -405,7 +405,10 @@ const Node *VisitGetNodeFromPath(const Node *start, const char *path)
for (i=0; i<root->numChild; ++i) {
int len = strlen(root->child[i]->text) ;
if (strncmp(path, root->child[i]->text, len) == 0) {
int plen = strlen(path);
if ((strncmp(path, root->child[i]->text, len) == 0) &&
(len <= plen) && ((path[len] == '/') || (path[len] == '\0')))
{
root = root->child[i] ;
path += len ;
found = true ;
......
This diff is collapsed.
......@@ -11,6 +11,7 @@
#include <avtSTMDFileFormat.h>
#include <string>
#include <vector>
#include <silo.h>
#include <hdf5.h>
......@@ -37,6 +38,7 @@ class IMVal {
class vtkFloatArray;
using std::string;
using std::vector;
// ****************************************************************************
// Class: avtVistaFileFormat
......@@ -59,6 +61,12 @@ using std::string;
// Added GetAuxiliaryData method
// Added GetFileNameForRead method
//
// Eric Brugger, Wed May 12 13:42:01 PDT 2004
// Prefixed some uses of "vector" with "std::".
//
// Mark C. Miller, Wed May 19 10:56:11 PDT 2004
// Added spatialDim data member
//
// ****************************************************************************
class avtVistaFileFormat : public avtSTMDFileFormat
......@@ -139,9 +147,11 @@ class avtVistaFileFormat : public avtSTMDFileFormat
int numPieces;
Node **pieceNodes;
int spatialDim;
int numMaterials;
vector<int> materialNumbers;
vector<string> materialNames;
std::vector<int> materialNumbers;
std::vector<string> materialNames;
int *materialNumbersArray;
const char **materialNamesArray;
......
<?xml version="1.0"?>
<Plugin name="Displace" label="Displace" type="operator" version="1.0">
<Attribute name="DisplaceAttributes" purpose="This class contains attributes for the displace operator.">
<Field name="factor" label="Displacement multiplier " type="double">1.</Field>
<Field name="variable" type="string">"DISPL"</Field>
<Plugin name="Displace" type="operator" label="Displace" version="1.0" enabled="true" iconFile="Displace.xpm">
<Attribute name="DisplaceAttributes" purpose="This class contains attributes for the displace operator." persistent="true">
<Field name="factor" label="Displacement multiplier " type="double">
1.000000
</Field>
<Field name="variable" label="variable" type="string">
DISPL
</Field>
</Attribute>
</Plugin>
/* XPM */
static const char * Displace_xpm[] = {
"32 32 21 1",
" c None",
". c #4BA8FE",
"+ c #65B4FE",
"@ c #2F9AFE",
"# c #0083FE",
"$ c #77BDFE",
"% c #0067C7",
"& c #0057A9",
"* c #05B200",
"= c #037200",
"- c #07E000",
"; c #025100",
"> c #048900",
", c #025400",
"' c #C6AC83",
") c #CEB895",
"! c #BD9F70",
"~ c #AE894F",
"{ c #D4C0A1",
"] c #896C3E",
"^ c #745C35",
" ..++ ",
" @##$$+ ",
"#####$$+ ",
"%######. ",
"&######. ",
"&%#####@ ",
" &%#### ",
" &&&% *** ",
" ==-*** ",
" ;=>>-**** ",
" ;=>>>-*** ",
" ;=>>>>>> ",
" ;==>>>> ",
" ;=>>>>* ",
" ;==>=>>* ",
" ;== ,=>>* ",
" ; ,=>>* ",
" ,=>>* ",
" ,=>>* ",
" ,=>>* ",
" ,=>>* ",
" ,=>>* ",
" ,=>> ",
" ,=> '')) ",
" !~~{{) ",
" ~~~~~{{)",
" ]~~~~~~'",
" ^~~~~~~'",
" ^]~~~~~!",
" ^]~~~~ ",
" ^^^] ",
" "};
......@@ -13,8 +13,8 @@
//
// Returns: A pointer to the newly allocated attribute subject.
//
// Programmer: childs -- generated by xml2info