Commit c82e45a3 authored by hrchilds's avatar hrchilds

Update from August 30, 2006

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@722 18c085ea-50e0-402c-830e-de6fd14e8384
parent a3df2721
......@@ -121,8 +121,9 @@ $0 = shift @ARGV;
# Brad Whitlock, Wed Jan 11 17:46:19 PST 2006
# Added help for -nowindowmetrics.
#
# Hank Childs, Mon Aug 28 08:41:22 PDT 2006
# Add tracking of CLI usage for OMB study.
# Jeremy Meredith, Mon Aug 28 17:23:42 EDT 2006
# When launching the engine, choose the serial one if the number of
# processors is 1.
#
###############################################################################
......@@ -791,8 +792,14 @@ if (($exe_name eq "makemili") or ($exe_name eq "visitconvert"))
# Determine the version number of the executable.
if ($exe_name eq "engine")
{
$exe_name .= "_ser" if (!$parallel);
$exe_name .= "_par" if ($parallel);
if (!$parallel || ($procs_set && $procs==1))
{
$exe_name .= "_ser";
}
else
{
$exe_name .= "_par";
}
# if we've designated a parallel launcher, then we are sharing
# one batch job between the mdserver and engine (through the vcl)
......@@ -1034,18 +1041,6 @@ if ($logging and $exe_name eq "mdserver")
print USERINFO "$info";
close(USERINFO);
}
if ($logging and $exe_name eq "cli")
{
chomp ( $user_info = `whoami` );
chomp ( $host_info = `hostname` );
chomp ( $date_info = `date` );
$info = "$user_info"." "."$host_info"." "."$date_info"."\n";
$filename=">>$visitdir/cli_usagelog";
open(USERINFO, $filename);
print USERINFO "$info";
close(USERINFO);
}
# -----------------------------------------------------------------------------
# Run it!
......
......@@ -4,7 +4,7 @@
<Object name="VIEWER">
<Object name="HostProfileList">
<Object name="HostProfile">
<Field name="profileName" type="string">serial</Field>
<Field name="profileName" type="string">serial on batch nodes</Field>
<Field name="host" type="string">hawk.ccs.ornl.gov</Field>
<Field name="hostAliases" type="string">hawk#.ccs.ornl.gov hawk##.ccs.ornl.gov</Field>
<Field name="timeout" type="int">480</Field>
......@@ -48,13 +48,41 @@
<Field name="parallel" type="bool">true</Field>
</Object>
<Object name="HostProfile">
<Field name="profileName" type="string">photon serial</Field>
<Field name="profileName" type="string">serial on login node</Field>
<Field name="host" type="string">hawk.ccs.ornl.gov</Field>
<Field name="hostAliases" type="string">hawk#.ccs.ornl.gov hawk##.ccs.ornl.gov</Field>
<Field name="timeout" type="int">480</Field>
<Field name="numProcessors" type="int">1</Field>
<Field name="numNodesSet" type="bool">false</Field>
<Field name="numNodes" type="int">0</Field>
<Field name="partitionSet" type="bool">false</Field>
<Field name="partition" type="string"></Field>
<Field name="bankSet" type="bool">false</Field>
<Field name="bank" type="string"></Field>
<Field name="timeLimitSet" type="bool">false</Field>
<Field name="timeLimit" type="string"></Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">srun</Field>
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">false</Field>
<Field name="arguments" type="stringVector">"-dir" "/apps/visit"</Field>
<Field name="parallel" type="bool">false</Field>
</Object>
<Object name="HostProfile">
<Field name="profileName" type="string">photon serial on batch nodes</Field>
<Field name="host" type="string">photon01.ornl.gov</Field>
<Field name="hostAliases" type="string">photon##.ornl.gov photon##</Field>
<Field name="active" type="bool">true</Field>
<Field name="numProcessors" type="int">1</Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">srun</Field>
<Field name="parallel" type="bool">true</Field>
</Object>
<Object name="HostProfile">
<Field name="profileName" type="string">photon parallel</Field>
<Field name="host" type="string">photon01.ornl.gov</Field>
<Field name="hostAliases" type="string">photon##.ornl.gov photon##</Field>
<Field name="numProcessors" type="int">2</Field>
<Field name="numNodesSet" type="bool">true</Field>
<Field name="numNodes" type="int">1</Field>
......@@ -65,6 +93,7 @@
<Object name="HostProfile">
<Field name="profileName" type="string">photon parallel render</Field>
<Field name="host" type="string">photon01.ornl.gov</Field>
<Field name="hostAliases" type="string">photon##.ornl.gov photon##</Field>
<Field name="numProcessors" type="int">2</Field>
<Field name="numNodesSet" type="bool">true</Field>
<Field name="numNodes" type="int">2</Field>
......@@ -76,7 +105,12 @@
<Field name="hwAccelPreCommand" type="string">/usr/X11R6/bin/xinit</Field>
<Field name="hwAccelPostCommand" type="string"></Field>
</Object>
<Field name="activeProfile" type="int">1</Field>
<Object name="HostProfile">
<Field name="profileName" type="string">photon serial on login node</Field>
<Field name="host" type="string">photon01.ornl.gov</Field>
<Field name="hostAliases" type="string">photon##.ornl.gov photon##</Field>
</Object>
<Field name="activeProfile" type="int">0</Field>
</Object>
</Object>
</Object>
......@@ -4,7 +4,7 @@
<Object name="VIEWER">
<Object name="HostProfileList">
<Object name="HostProfile">
<Field name="profileName" type="string">serial</Field>
<Field name="profileName" type="string">serial on batch nodes</Field>
<Field name="host" type="string">hawk.ccs.ornl.gov</Field>
<Field name="hostAliases" type="string">hawk#.ccs.ornl.gov hawk##.ccs.ornl.gov</Field>
<Field name="timeout" type="int">480</Field>
......@@ -50,23 +50,55 @@
<Field name="clientHostDetermination" type="string">ParsedFromSSHCLIENT</Field>
</Object>
<Object name="HostProfile">
<Field name="profileName" type="string">photon serial</Field>
<Field name="profileName" type="string">serial on login node</Field>
<Field name="host" type="string">hawk.ccs.ornl.gov</Field>
<Field name="hostAliases" type="string">hawk#.ccs.ornl.gov hawk##.ccs.ornl.gov</Field>
<Field name="timeout" type="int">480</Field>
<Field name="numProcessors" type="int">1</Field>
<Field name="numNodesSet" type="bool">false</Field>
<Field name="numNodes" type="int">0</Field>
<Field name="partitionSet" type="bool">false</Field>
<Field name="partition" type="string"></Field>
<Field name="bankSet" type="bool">false</Field>
<Field name="bank" type="string"></Field>
<Field name="timeLimitSet" type="bool">false</Field>
<Field name="timeLimit" type="string"></Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">srun</Field>
<Field name="forceStatic" type="bool">true</Field>
<Field name="forceDynamic" type="bool">false</Field>
<Field name="active" type="bool">false</Field>
<Field name="arguments" type="stringVector">"-dir" "/apps/visit"</Field>
<Field name="parallel" type="bool">false</Field>
<Field name="clientHostDetermination" type="string">ParsedFromSSHCLIENT</Field>
</Object>
<Object name="HostProfile">
<Field name="profileName" type="string">photon serial on batch nodes</Field>
<Field name="host" type="string">photon01.ornl.gov</Field>
<Field name="hostAliases" type="string">photon##.ornl.gov photon##</Field>
<Field name="active" type="bool">true</Field>
<Field name="numProcessors" type="int">1</Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">srun</Field>
<Field name="parallel" type="bool">true</Field>
<Field name="clientHostDetermination" type="string">ParsedFromSSHCLIENT</Field>
</Object>
<Object name="HostProfile">
<Field name="profileName" type="string">photon parallel</Field>
<Field name="host" type="string">photon01.ornl.gov</Field>
<Field name="hostAliases" type="string">photon##.ornl.gov photon##</Field>
<Field name="numProcessors" type="int">2</Field>
<Field name="numNodesSet" type="bool">true</Field>
<Field name="numNodes" type="int">1</Field>
<Field name="launchMethodSet" type="bool">true</Field>
<Field name="launchMethod" type="string">srun</Field>
<Field name="parallel" type="bool">true</Field>
<Field name="clientHostDetermination" type="string">ParsedFromSSHCLIENT</Field>
</Object>
<Object name="HostProfile">
<Field name="profileName" type="string">photon parallel render</Field>
<Field name="host" type="string">photon01.ornl.gov</Field>
<Field name="hostAliases" type="string">photon##.ornl.gov photon##</Field>
<Field name="numProcessors" type="int">2</Field>
<Field name="numNodesSet" type="bool">true</Field>
<Field name="numNodes" type="int">2</Field>
......@@ -77,8 +109,15 @@
<Field name="havePreCommand" type="bool">true</Field>
<Field name="hwAccelPreCommand" type="string">/usr/X11R6/bin/xinit</Field>
<Field name="hwAccelPostCommand" type="string"></Field>
<Field name="clientHostDetermination" type="string">ParsedFromSSHCLIENT</Field>
</Object>
<Object name="HostProfile">
<Field name="profileName" type="string">photon serial on login node</Field>
<Field name="host" type="string">photon01.ornl.gov</Field>
<Field name="hostAliases" type="string">photon##.ornl.gov photon##</Field>
<Field name="clientHostDetermination" type="string">ParsedFromSSHCLIENT</Field>
</Object>
<Field name="activeProfile" type="int">1</Field>
<Field name="activeProfile" type="int">0</Field>
</Object>
</Object>
</Object>
......@@ -952,9 +952,13 @@ InitializeAtomicPropertyMaps()
// PrintColorTablesFor_avtColorTables();
}
// Modifications:
// Jeremy Meredith, Mon Aug 28 18:04:10 EDT 2006
// Sped up by skipping the map.
//
int ElementNameToAtomicNumber(const char *element)
{
char name[3];
static char name[3];
name[0] = element[0];
name[1] = element[1];
name[2] = '\0';
......@@ -969,16 +973,285 @@ int ElementNameToAtomicNumber(const char *element)
if(name[1] >= 'A' && name[1] <= 'Z')
name[1] += ('a' - 'A');
// Look up the value without accidentally inserting bad values
// into the map.
std::map<std::string, int>::const_iterator it =
elementname_to_atomicnumber.find(name);
switch (name[0])
{
case 'A':
{
switch (name[1])
{
case 'g': return 47;
case 'l': return 13;
case 'r': return 18;
case 's': return 33;
case 't': return 85;
case 'u': return 79;
}
}
case 'B':
{
switch (name[1])
{
case '\0': return 5;
case 'a': return 56;
case 'e': return 4;
case 'i': return 83;
case 'r': return 35;
}
}
case 'C':
{
switch (name[1])
{
case '\0': return 6;
case 'a': return 20;
case 'd': return 48;
case 'e': return 58;
case 'l': return 17;
case 'o': return 27;
case 'r': return 24;
case 's': return 55;
case 'u': return 29;
}
}
case 'D':
{
switch (name[1])
{
case 'y': return 66;
}
}
case 'E':
{
switch (name[1])
{
case 'r': return 68;
case 'u': return 63;
}
}
case 'F':
{
switch (name[1])
{
case '\0': return 9;
case 'e': return 26;
}
}
case 'G':
{
switch (name[1])
{
case 'a': return 31;
case 'd': return 64;
case 'e': return 32;
}
}
case 'H':
{
switch (name[1])
{
case '\0': return 1;
case 'e': return 2;
case 'f': return 72;
case 'g': return 80;
case 'o': return 67;
}
}
case 'I':
{
switch (name[1])
{
case '\0': return 53;
case 'n': return 49;
case 'r': return 77;
}
}
case 'K':
{
switch (name[1])
{
case '\0': return 19;
case 'r': return 36;
}
}
case 'L':
{
switch (name[1])
{
case 'a': return 57;
case 'i': return 3;
case 'u': return 71;
}
}
case 'M':
{
switch (name[1])
{
case 'g': return 12;
case 'n': return 25;
case 'o': return 42;
}
}
case 'N':
{
switch (name[1])
{
case '\0': return 7;
case 'a': return 11;
case 'b': return 41;
case 'd': return 60;
case 'e': return 10;
case 'i': return 28;
}
}
return (it != elementname_to_atomicnumber.end()) ? it->second : -1;
case 'O':
{
switch (name[1])
{
case '\0': return 8;
case 's': return 76;
}
}
case 'P':
{
switch (name[1])
{
case '\0': return 15;
case 'b': return 82;
case 'd': return 46;
case 'm': return 61;
case 'o': return 84;
case 'r': return 59;
case 't': return 78;
}
}
case 'R':
{
switch (name[1])
{
case 'b': return 37;
case 'e': return 75;
case 'h': return 45;
case 'u': return 44;
}
}
case 'S':
{
switch (name[1])
{
case '\0': return 16;
case 'b': return 51;
case 'c': return 21;
case 'e': return 34;
case 'i': return 14;
case 'm': return 62;
case 'n': return 50;
case 'r': return 38;
}
}
case 'T':
{
switch (name[1])
{
case 'a': return 73;
case 'b': return 65;
case 'c': return 43;
case 'e': return 52;
case 'h': return 90;
case 'i': return 22;
case 'l': return 81;
case 'm': return 69;
}
}
case 'U':
{
switch (name[1])
{
case '\0': return 92;
}
}
case 'V':
{
switch (name[1])
{
case '\0': return 23;
}
}
case 'W':
{
switch (name[1])
{
case '\0': return 74;
}
}
case 'X':
{
switch (name[1])
{
case 'e': return 54;
}
}
case 'Y':
{
switch (name[1])
{
case '\0': return 39;
case 'b': return 70;
}
}
case 'Z':
{
switch (name[1])
{
case 'n': return 30;
case 'r': return 40;
}
}
}
return -1;
}
// Modifications:
// Jeremy Meredith, Mon Aug 28 18:04:10 EDT 2006
// Sped up by caching the last lookup, as lookups tend to occur in groups.
//
int ResiduenameToNumber(const char *name)
{
// Try a cache since these numbers are often
// looked up in groups.
static char lastname[10] = "";
static char lastnumber = -1;
if (strcmp(name, lastname) == 0)
{
return lastnumber;
}
// Nope -- cache the name for next time.
snprintf(lastname,10,"%s",name);
InitializeAtomicPropertyMaps();
// Advance past leading spaces.
......@@ -987,7 +1260,12 @@ int ResiduenameToNumber(const char *name)
std::map<std::string, int>::const_iterator it =
residuename_to_number.find(name2);
return (it != residuename_to_number.end()) ? it->second : -1;
int retval = (it != residuename_to_number.end()) ? it->second : -1;
// Cache the result for next time
lastnumber = retval;
return retval;
}
const char *NumberToResiduename(int num)
......
......@@ -108,6 +108,11 @@ using std::vector;
// Added find methods. Renamed existing find to exists. Added
// CallbackDelete specialization.
//
// Jeremy Meredith, Mon Aug 28 18:04:57 EDT 2006
// Newer gcc's won't resolve unqualified members of a dependent base in
// templates. See [temp.dep]/3 in the ANSI C++ Standard. Using explicit
// this-> fixes it (as would adding explicit "using" declaration).
//
// ****************************************************************************
// tags for which kind of delete to call on cache pre-emption
......@@ -230,7 +235,7 @@ class MRUCache<kT,vT,MRUCache_DontDelete,nS> : public MRUCacheBase<kT,vT,MRUCach
{
public:
MRUCache() : MRUCacheBase<kT,vT,MRUCache_DontDelete,nS>() {} ;
~MRUCache() { clear(); };
~MRUCache() { this->clear(); };
private:
void deleteit(vT& item) {} ;
};
......@@ -241,7 +246,7 @@ class MRUCache<kT,vT,MRUCache_Delete,nS> : public MRUCacheBase<kT,vT,MRUCache_De
{
public:
MRUCache() : MRUCacheBase<kT,vT,MRUCache_Delete,nS>() {} ;
~MRUCache() { clear(); };
~MRUCache() { this->clear(); };
private:
void deleteit(vT& item) { delete item; } ;
};
......@@ -252,7 +257,7 @@ class MRUCache<kT,vT,MRUCache_ArrayDelete,nS> : public MRUCacheBase<kT,vT,MRUCac
{
public:
MRUCache() : MRUCacheBase<kT,vT,MRUCache_ArrayDelete,nS>() {} ;
~MRUCache() { clear(); };
~MRUCache() { this->clear(); };
private:
void deleteit(vT& item) { delete [] item; } ;
};
......@@ -263,7 +268,7 @@ class MRUCache<kT,vT,MRUCache_Free,nS> : public MRUCacheBase<kT,vT,MRUCache_Free
{
public:
MRUCache() : MRUCacheBase<kT,vT,MRUCache_Free,nS>() {} ;
~MRUCache() { clear(); };
~MRUCache() { this->clear(); };
private:
void deleteit(vT& item) { free (item); } ;
};
......@@ -274,7 +279,7 @@ class MRUCache<kT,vT,MRUCache_CallbackDelete,nS> : public MRUCacheBase<kT,vT,MRU
{
public:
MRUCache(MRUCache_DeleteCallback cb) : MRUCacheBase<kT,vT,MRUCache_CallbackDelete,nS>(), delCb(cb) {};
~MRUCache() { clear(); };
~MRUCache() { this->clear(); };
private:
MRUCache() : MRUCacheBase<kT,vT,MRUCache_CallbackDelete,nS>(), delCb(0) {};
MRUCache_DeleteCallback delCb;
......
......@@ -72,6 +72,9 @@ class avtSimulationInformation;
// Kathleen Bonnell, Fri Feb 3 10:23:36 PST 2006
// Added meshCoordType.
//
// Jeremy Meredith, Fri Aug 25 17:16:38 EDT 2006
// Added nodesAreCritical and unitCellVectors.
//
//----------------------------------------------------------------------------
struct DBATTS_API avtMeshMetaData : public AttributeSubject
{
......@@ -115,6 +118,8 @@ struct DBATTS_API avtMeshMetaData : public AttributeSubject
bool validVariable;
LoadBalanceScheme loadBalanceScheme;
avtMeshCoordType meshCoordType;
bool nodesAreCritical;
float unitCellVectors[9];
public:
avtMeshMetaData();
......@@ -138,6 +143,9 @@ public:
// Hank Childs, Mon Feb 14 14:11:29 PST 2005
// Added originalName.
//
// Jeremy Meredith, Tue Aug 22 15:21:30 EDT 2006
// Added support for scalars representing enumerations.
//
//----------------------------------------------------------------------------
struct DBATTS_API avtScalarMetaData : public AttributeSubject
{
......@@ -156,6 +164,11 @@ struct DBATTS_API avtScalarMetaData : public AttributeSubject
bool hasUnits;
std::string units;
bool isEnumeration;
stringVector enumNames;
intVector enumValues;
public:
avtScalarMetaData();
avtScalarMetaData(std::string, std::string, avtCentering);
......
......@@ -68,7 +68,8 @@ enum avtSubsetType
AVT_DOMAIN_SUBSET = 0,
AVT_GROUP_SUBSET, /* 1 */
AVT_MATERIAL_SUBSET, /* 2 */
AVT_UNKNOWN_SUBSET /* 3 */
AVT_ENUMSCALAR_SUBSET,/* 3 */
AVT_UNKNOWN_SUBSET /* 4 */
};
......
......@@ -134,6 +134,9 @@ avtSILCollection::GetSubsetList(void) const
// Jeremy Meredith, Fri Dec 14 16:25:54 PST 2001
// Added species.
//
// Jeremy Meredith, Fri Aug 25 17:16:38 EDT 2006
// Added enumerated scalars.
//
// ****************************************************************************
void
......@@ -167,6 +170,9 @@ avtSILCollection::Print(ostream &out) const
case SIL_SPECIES:
roleS = "species";
break;
case SIL_ENUMERATION:
roleS = "enumeration";
break;