Commit 833cecb9 authored by hrchilds's avatar hrchilds

Update from May 11, 2005

git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@466 18c085ea-50e0-402c-830e-de6fd14e8384
parent fc1ce106
......@@ -129,6 +129,11 @@
# Mark C. Miller, Tue May 3 21:49:22 PDT 2005
# Modified skipList
#
# Mark C. Miller, Tue May 10 19:53:08 PDT 2005
# Removed HDF5 from nightly. Changed Sunday morning's modes
# Added a pass for an optimized build
# Added calls to clean up ipc resources
#
# ----------------------------------------------------------------------------
# list of users who want email every night with the log file
......@@ -201,6 +206,11 @@ export DISPLAY
PATH=/misc/gapps/mpich/1.2.4/Linux/serial/64/debug/bin:/home/visit/bin:/data_vobs/VisIt/clearcase_bin:/home/visit/clearcase_bin:/usr/atria/bin:/usr/security/bin:/sbin:/usr/sbin:/usr/bsd:/usr/local/bin:/usr/bin:/bin:/etc:/usr/bin/X11:/usr/local/X11:/usr/etc:/usr/lib:/usr/atria/bin:/usr/ccs/bin:/usr/SUNWspro/bin:.
export PATH
# clean up ipc resources
ipcs -m | grep visit | cut -d' ' -f2 | xargs -n 1 ipcrm -m 1> /dev/null 2>&1
ipcs -s | grep visit | cut -d' ' -f2 | xargs -n 1 ipcrm -s 1> /dev/null 2>&1
ipcs -q | grep visit | cut -d' ' -f2 | xargs -n 1 ipcrm -q 1> /dev/null 2>&1
# rebuild visit
cleartool startview visit_VOBowner_test 1> /dev/null 2>&1
cd /view/visit_VOBowner_test/data_vobs/VisIt
......@@ -253,9 +263,9 @@ cd ..
curdate=`date +%Y-%m-%d-%p%I%M`
# set mode to run in
modes="serial parallel scalable,parallel hdf5"
modes="serial parallel scalable,parallel purify"
if test "`date +%A`" = "Sunday"; then
modes="serial,hdf5 parallel,hdf5 scalable,parallel,hdf5 dlb"
modes="hdf5 dlb serial,purify scalable,parallel,purify"
fi
# set list of tests/modes to skip
......@@ -281,6 +291,50 @@ for m in $modes; do
fi
done
# clean up ipc resources
ipcs -m | grep visit | cut -d' ' -f2 | xargs -n 1 ipcrm -m 1> /dev/null 2>&1
ipcs -s | grep visit | cut -d' ' -f2 | xargs -n 1 ipcrm -s 1> /dev/null 2>&1
ipcs -q | grep visit | cut -d' ' -f2 | xargs -n 1 ipcrm -q 1> /dev/null 2>&1
# rebuild an optimized visit
cleartool startview visit_VOBowner_testopt 1> /dev/null 2>&1
cd /view/visit_VOBowner_testopt/data_vobs/VisIt
rm -f config.cache
rm -f buildlog
echo -e "LD_LIBRARY_PATH = $LD_LIBRARY_PATH" 1> buildlog 2>&1
echo -e "Forcing LD_LIBRARY_PATH to /usr/local/lib" 1> buildlog 2>&1
LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH
env CXXFLAGS="-O2" ./configure --enable-parallel 1>> buildlog 2>&1
rm -f plugins/*/*.so
(cd data; clearmake clean 1> /dev/null 2>&1 )
clearmake -J 2 1>> buildlog 2>&1
error=$?
# make sure all needed data files exist
cd data
make test 1> /dev/null 2>&1
# (we should probably check for errors here)
cd ..
# run the test
error=0
cd test
if test "$skipList" = ""; then
./runtest -q -p -m optimized -d "$curdate" -notrackmem -minor-error 5 -major-error 20
else
./runtest -q -s "$skipList" -p -m optimized -d "$curdate" -notrackmem -minor-error 5 -major-error 20
fi
curerror=$?
if test ! "$curerror" = "0"; then
error=1
fi
# clean up ipc resources
ipcs -m | grep visit | cut -d' ' -f2 | xargs -n 1 ipcrm -m 1> /dev/null 2>&1
ipcs -s | grep visit | cut -d' ' -f2 | xargs -n 1 ipcrm -s 1> /dev/null 2>&1
ipcs -q | grep visit | cut -d' ' -f2 | xargs -n 1 ipcrm -q 1> /dev/null 2>&1
# restart the list of modifiers
if test -f "/home/visit/public_html/modifiers"; then
mv /home/visit/public_html/modifiers /home/visit/public_html/current
......
......@@ -504,179 +504,19 @@ avtExpressionEvaluatorFilter::ReleaseData(void)
// Kathleen Bonnell, Fri May 28 18:31:15 PDT 2004
// Account for pick type DomainZone.
//
// Kathleen Bonnell, Wed May 11 17:07:25 PDT 2005
// Removed code that parsed and processed missing expression vars,
// this hasn't been necessary for a long while, since avtPickQuery started
// using an 'Update' so that information that gets retrieved always
// reflect the current SILRestriction. (about March, 2004).
//
// ****************************************************************************
void
avtExpressionEvaluatorFilter::Query(PickAttributes *pa)
{
int i, j, k;
//
// Sanity check.
//
if (*(GetInput()) == NULL)
EXCEPTION0(NoInputException);
//
// We need to identify if there are expression variables that have been
// requested for the pick that are missing. If so, we will have to
// re-execute.
//
const stringVector &orig_vars = pa->GetVariables();
stringVector expr_vars;
std::vector<int> indices;
for (i = 0 ; i < orig_vars.size() ; i++)
{
Expression *exp = ParsingExprList::GetExpression(orig_vars[i]);
if (exp != NULL)
{
expr_vars.push_back(orig_vars[i]);
indices.push_back(i);
}
}
stringVector unmatched_vars;
if (expr_vars.size() > 0)
{
avtDataset_p output = GetTypedOutput();
VarList vl;
avtDatasetExaminer::GetVariableList(output, vl);
for (i = 0 ; i < expr_vars.size() ; i++)
{
bool foundMatch = false;
for (j = 0 ; j < vl.nvars ; j++)
{
if (expr_vars[i] == vl.varnames[j])
foundMatch = true;
}
if (!foundMatch)
{
unmatched_vars.push_back(expr_vars[i]);
}
}
modified = true;
}
if (unmatched_vars.size() > 0)
{
for (i = 0 ; i < unmatched_vars.size() ; i++)
lastUsedSpec->GetDataSpecification()->AddSecondaryVariable(
unmatched_vars[i].c_str());
//
// Force the update.
//
GetOutput()->Update(lastUsedSpec);
}
//
// Start by going to the new queryable source upstream (most likely the
// terminating source corresponding to the database) and ask it to pick
// with our new pick attributes.
//
avtQueryableSource *src = GetInput()->GetQueryableSource();
src->Query(pa);
//
// Now iterate over the expressions and add where possible.
//
if (expr_vars.size() > 0)
{
bool canUseNativeArray =
GetInput()->GetInfo().GetValidity().GetZonesPreserved();
const intVector &incidentElements = pa->GetIncidentElements();
int element = pa->GetElementNumber();
int domain = pa->GetDomain();
bool zonePick = pa->GetPickType() == PickAttributes::Zone ||
pa->GetPickType() == PickAttributes::DomainZone;
avtDataset_p output = GetTypedOutput();
for (i = 0 ; i < expr_vars.size() ; i++)
{
avtCentering cent = AVT_UNKNOWN_CENT;
vtkDataArray *arr = avtDatasetExaminer::GetArray(output,
expr_vars[i].c_str(), domain, cent);
if (arr == NULL)
{
continue;
}
PickVarInfo varInfo;
varInfo.SetVariableName(expr_vars[i]);
int ncomps = arr->GetNumberOfComponents();
if (ncomps == 1)
varInfo.SetVariableType("scalar");
else if (ncomps == 3)
varInfo.SetVariableType("vector");
else if (ncomps == 9)
varInfo.SetVariableType("tensor");
bool zoneCent = (cent == AVT_ZONECENT);
varInfo.SetCentering(zoneCent ? PickVarInfo::Zonal
: PickVarInfo::Nodal);
std::vector<double> vals;
std::vector<std::string> names;
char temp[1024];
if (canUseNativeArray)
{
if (zoneCent != zonePick)
{
for (j = 0 ; j < incidentElements.size() ; j++)
{
sprintf(temp, "(%d)", incidentElements[j]);
names.push_back(temp);
float mag = 0.;
for (k = 0 ; k < arr->GetNumberOfComponents() ; k++)
{
float val=arr->GetComponent(incidentElements[j],k);
mag += val*val;
vals.push_back(val);
}
mag = sqrt(mag);
vals.push_back(mag);
}
}
else
{
// the info we're after is associated with element
sprintf(temp, "(%d)", element);
names.push_back(temp);
float mag = 0.;
for (k = 0 ; k < arr->GetNumberOfComponents() ; k++)
{
float val = arr->GetComponent(element, k);
mag += val*val;
vals.push_back(val);
}
mag = sqrt(mag);
vals.push_back(mag);
}
}
if (!vals.empty())
{
varInfo.SetNames(names);
varInfo.SetValues(vals);
int index = -1;
for (int ii = 0 ; ii < pa->GetNumPickVarInfos() ; ii++)
{
PickVarInfo &vi = pa->GetPickVarInfo(ii);
if (vi.GetVariableName() == varInfo.GetVariableName())
{
index = ii;
break;
}
}
if (index >= 0)
{
PickVarInfo &varInfo2 = pa->GetPickVarInfo(index);
varInfo2 = varInfo;
}
else
{
pa->AddPickVarInfo(varInfo);
}
}
}
}
}
......
......@@ -84,6 +84,9 @@ avtPickByNodeQuery::~avtPickByNodeQuery()
// Hank Childs, Thu Mar 10 10:36:51 PST 2005
// Fix memory leak.
//
// Kathleen Bonnell, Wed May 11 17:14:03 PDT 200
// Convert varnmames to Global names when the DB supplied the ids.
//
// ****************************************************************************
void
......@@ -103,9 +106,9 @@ avtPickByNodeQuery::Execute(vtkDataSet *ds, const int dom)
{
pickAtts.SetDomain(-1);
pickAtts.SetElementNumber(-1);
pickAtts.SetErrorMessage("Pick could not be performed because a global "
"node id was specified for Pick but the mesh "
"does not contain global node information.");
pickAtts.SetErrorMessage("Pick could not be performed because a global"
" node id was specified for Pick but the mesh"
" does not contain global node information.");
pickAtts.SetError(true);
return;
}
......@@ -124,7 +127,8 @@ avtPickByNodeQuery::Execute(vtkDataSet *ds, const int dom)
{
if (pickAtts.GetElementIsGlobal())
{
nodeid = vtkVisItUtility::GetLocalElementForGlobal(ds, nodeid, false);
nodeid = vtkVisItUtility::GetLocalElementForGlobal(ds, nodeid,
false);
if (nodeid == -1)
return;
pickAtts.SetGlobalElement(pickAtts.GetElementNumber());
......@@ -139,7 +143,8 @@ avtPickByNodeQuery::Execute(vtkDataSet *ds, const int dom)
}
else
{
// the incidient zones could not be found, no further processing required.
// the incidient zones could not be found,
// no further processing required.
// SetDomain and ElementNumber to -1 to indicate failure.
pickAtts.SetDomain(-1);
pickAtts.SetElementNumber(-1);
......@@ -159,11 +164,13 @@ avtPickByNodeQuery::Execute(vtkDataSet *ds, const int dom)
//
src->Query(&pickAtts);
if (!pickAtts.GetFulfilled())
return;
if (pickAtts.GetElementIsGlobal() && DBsuppliedNodeId)
{
if (!pickAtts.GetFulfilled())
return;
nodeid = GetCurrentNodeForOriginal(ds, pickAtts.GetElementNumber());
ConvertElNamesToGlobal();
}
if (pickAtts.GetMatSelected())
......@@ -203,8 +210,8 @@ avtPickByNodeQuery::Execute(vtkDataSet *ds, const int dom)
// placed. This should be the actual node coordinates if the plot was
// NOT transformed.
//
// If the plot was transformed && the transform is available, then transform
// the node coordinates.
// If the plot was transformed && the transform is available,
// then transform the node coordinates.
//
// If the plot was transformed && inverseTransform is NOT available,
// there is no way to determine the location of the picked node in
......
......@@ -10,6 +10,7 @@
#include <vtkFieldData.h>
#include <vtkIntArray.h>
#include <vtkVisItUtility.h>
#include <PickVarInfo.h>
#include <avtMatrix.h>
#include <avtTerminatingSource.h>
......@@ -82,6 +83,9 @@ avtPickByZoneQuery::~avtPickByZoneQuery()
// Added test for presence of avtGlobalZoneNumbers array, create error
// message when not available but should be.
//
// Kathleen Bonnell, Wed May 11 17:14:03 PDT 200
// Convert varnmames to Global names when the DB supplied the ids.
//
// ****************************************************************************
void
......@@ -168,6 +172,7 @@ avtPickByZoneQuery::Execute(vtkDataSet *ds, const int dom)
{
zoneid = GetCurrentZoneForOriginal(ds, pickAtts.GetElementNumber());
userZoneId = zoneid;
ConvertElNamesToGlobal();
}
pickAtts.SetElementNumber(userZoneId+cellOrigin);
......
This diff is collapsed.
......@@ -78,6 +78,9 @@ class avtExpressionEvaluatorFilter;
// Kathleen Bonnell, Wed Dec 15 17:16:17 PST 2004
// Add GetCurrentNodeForOriginal.
//
// Kathleen Bonnell, Wed May 11 17:50:53 PDT 2005
// Added ConvertElNamesToGlobal.
//
// ****************************************************************************
class QUERY_API avtPickQuery : public avtDatasetQuery
......@@ -137,6 +140,7 @@ class QUERY_API avtPickQuery : public avtDatasetQuery
const intVector&);
void SetGlobalIds(vtkDataSet *, int);
void ConvertElNamesToGlobal(void);
PickAttributes pickAtts;
avtExpressionEvaluatorFilter *eef;
......
......@@ -158,10 +158,11 @@ typedef struct VisIt_SimulationMetaData
typedef struct VisIt_CurvilinearMesh
{
int ndims;
int dims[3];
int baseIndex[3];
int firstRealZone[3];
int lastRealZone[3];
int minRealIndex[3];
int maxRealIndex[3];
VisIt_DataArray xcoords;
VisIt_DataArray ycoords;
VisIt_DataArray zcoords;
......@@ -169,10 +170,11 @@ typedef struct VisIt_CurvilinearMesh
typedef struct VisIt_RectilinearMesh
{
int ndims;
int dims[3];
int baseIndex[3];
int firstRealZone[3];
int lastRealZone[3];
int minRealIndex[3];
int maxRealIndex[3];
VisIt_DataArray xcoords;
VisIt_DataArray ycoords;
VisIt_DataArray zcoords;
......@@ -225,6 +227,11 @@ typedef struct VisIt_MaterialData
float *mix_vf;
} VisIt_MaterialData;
typedef struct VisIt_SpeciesData
{
/* FILL IN */
} VisIt_SpeciesData;
typedef struct VisIt_CurveData
{
int len;
......@@ -232,14 +239,23 @@ typedef struct VisIt_CurveData
VisIt_DataArray y;
} VisIt_CurveData;
typedef struct VisIt_DomainList
{
int nTotalDomains;
int nMyDomains;
VisIt_DataArray myDomains;
} VisIt_DomainList;
typedef struct VisIt_SimulationCallback
{
VisIt_SimulationMetaData *(*GetMetaData)();
VisIt_MeshData *(*GetMesh)(int,const char*);
VisIt_MaterialData *(*GetMaterial)(int,const char*);
VisIt_SpeciesData *(*GetSpecies)(int,const char*);
VisIt_ScalarData *(*GetScalar)(int,const char*);
VisIt_CurveData *(*GetCurve)(const char*);
VisIt_MixedScalarData *(*GetMixedScalar)(int,const char*);
VisIt_DomainList *(*GetDomainList)();
} VisIt_SimulationCallback;
/* Helper Methods */
......
This diff is collapsed.
......@@ -30,6 +30,9 @@
// Jeremy Meredith, Thu Apr 14 16:47:07 PDT 2005
// Added Curve and Material support.
//
// Jeremy Meredith, Wed May 11 11:02:34 PDT 2005
// Added ghost zone support. Added restricted load balancing support.
//
// ****************************************************************************
class avtSimV1FileFormat : public avtSTMDFileFormat
......@@ -52,6 +55,8 @@ class avtSimV1FileFormat : public avtSTMDFileFormat
const char *type, void *,
DestructorFunction &df);
virtual void PopulateIOInformation(avtIOInformation& ioInfo);
protected:
avtSimulationInformation simInfo;
VisIt_SimulationCallback cb;
......
......@@ -408,6 +408,11 @@ LoadBalancer::CheckDynamicLoadBalancing(avtPipelineSpecification_p input)
// Take more care in setting up unique message tags. These methods may be
// called a different number of times. So use a static.
//
// Jeremy Meredith, Wed May 11 09:12:40 PDT 2005
// Added "restricted" load balancing mode. This is intended for
// non-global filesystems and simulation-mode engines. It occurs when
// each processor can only access a limited subset of the domains.
//
// ****************************************************************************
avtDataSpecification_p
......@@ -511,6 +516,29 @@ LoadBalancer::Reduce(avtPipelineSpecification_p input)
mylist.push_back(list[j]);
}
}
else if (scheme == LOAD_BALANCE_RESTRICTED)
{
LBInfo &lbInfo(pipelineInfo[input->GetPipelineIndex()]);
IOInfo &ioInfo(ioMap[lbInfo.db]);
const HintList &hints(ioInfo.ioInfo.GetHints());
for (int j = 0 ; j < list.size() ; j++)
{
if (hints.size() >= rank)
{
const vector<int> &doms = hints[rank];
int ndoms = doms.size();
for (int h=0; h<ndoms; h++)
{
if (doms[h] == list[j])
{
mylist.push_back(list[j]);
break;
}
}
}
}
}
else if (scheme == LOAD_BALANCE_RANDOM_ASSIGNMENT)
{
// all procs randomly jumble the list of domain ids
......
......@@ -65,7 +65,8 @@ typedef enum
LOAD_BALANCE_CONTIGUOUS_BLOCKS_TOGETHER = 0,
LOAD_BALANCE_STRIDE_ACROSS_BLOCKS, /* 1 */
LOAD_BALANCE_RANDOM_ASSIGNMENT, /* 2 */
LOAD_BALANCE_DBPLUGIN_DYNAMIC /* 3 */
LOAD_BALANCE_DBPLUGIN_DYNAMIC, /* 3 */
LOAD_BALANCE_RESTRICTED /* 4 */
} LoadBalanceScheme;
......@@ -112,6 +113,10 @@ typedef enum
// Hank Childs, Sun Mar 6 08:42:50 PST 2005
// Renamed ForceDynamic to AllowDynamic.
//
// Jeremy Meredith, Wed May 11 09:07:15 PDT 2005
// Added "restricted" load balancing mode. This is intended for
// non-global filesystems and simulation-mode engines.
//
// ****************************************************************************
class LoadBalancer
......
......@@ -2661,6 +2661,11 @@ NetworkManager::StopQueryMode(void)
// the way data specifications are managed inside pipeline specifications
// (they are now copied rather than shared, which was incorrect).
//
// Kathleen Bonnell, Wed May 11 17:14:03 PDT 2005
// Use EEF output instead of DB output for input to Pick Query. Added
// UnifyMaximumValue call to ensure all processors know if they should
// perform an ActualCoords query.
//
// ****************************************************************************
void
......@@ -2860,8 +2865,8 @@ NetworkManager::Pick(const int id, const int winId, PickAttributes *pa)
pQ->SetSILRestriction(silr->MakeAttributes());
}
pQ->SetNeedTransform(queryInputVal.GetPointsWereTransformed());
pQ->SetInput(networkCache[id]->GetNodeList()[0]->GetOutput());
pQ->SetInput(networkCache[id]->GetNetDB()->GetOutput());
pQ->SetPickAtts(pa);
pQ->SetSkippedLocate(skipLocate);
int queryTimer = visitTimer->StartTimer();
......@@ -2876,8 +2881,9 @@ NetworkManager::Pick(const int id, const int winId, PickAttributes *pa)
}
delete pQ;
if (pa->GetNeedActualCoords())
bool doACQuery = (bool)UnifyMaximumValue(
(int)pa->GetNeedActualCoords());
if (doACQuery)
{
avtActualCoordsQuery *acq = NULL;
if (pa->GetPickType() == PickAttributes::DomainNode)
......
......@@ -33,6 +33,9 @@
// Jeremy Meredith, Mon Apr 25 10:00:06 PDT 2005
// Added versioning.
//
// Jeremy Meredith, Wed May 11 09:17:44 PDT 2005
// Forced the RESTRICTED load balancer mode.
//
// ****************************************************************************
void *get_engine()
......@@ -59,6 +62,7 @@ int connect_to_viewer(void *e, int argc, char *argv[])
else
{
engine->SetUpViewerInterface(&argc, &argv);
LoadBalancer::SetScheme(LOAD_BALANCE_RESTRICTED);
return 1;
}
}
......
......@@ -93,6 +93,8 @@ enhancements and bug-fixes that were added to this release.</p>
<li>The Lighting window's brightness spin box does not work well when the plus/minus arrows are held down.</li>
<li>The Enzo file format reader failed on files that had multiple root-level grids.</li>
</ul>
<p>Click the following link to view the release notes for the next version
of VisIt: <a href="relnotes1.4.3.html">VisIt 1.4.3 Release Notes</a>.</p>
<p>Click the following link to view the release notes for the previous version
of VisIt: <a href="relnotes1.4.1.html">VisIt 1.4.1 Release Notes</a>.</p>
</body>
......
<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>VisIt 1.4.3 Release Notes</title>
</head>
<body>
<center><b><font size="6">VisIt 1.4.3 Release Notes</font></b></center>
<p>Welcome to VisIt's release notes page. This page describes the important
enhancements and bug-fixes that were added to this release.</p>
<p><b><font size="4">Features added in version 1.4.3</font></b></p>
<ul>
<li>VisIt can now connect to simulation codes that have been instrumented with the </i>VisIt Engine Wrapper Library</i> (VEWL). The VEWL allows simulation codes to act as VisIt compute engines, responding to commands from VisIt and producing plottable data using the resources and memory allocated by the simulation code. VisIt can connect to simulations, inspect their data, and later disconnect, leaving the simulation to continue. VisIt has a new <i>Simulations</i> window, which is similar in concept to the <i>Compute Engines</i> window but shows information for simulations, which is a superset of the information shown for compute engines. The <i>Simulations</i> window in addition to showing progress can show more detailed metadata about a simulation as well as providing buttons that allow the user to execute simulation-defined actions such as stop, resume, dump a file, etc. For more information about instrumenting your simulation code with the VEWL, contact the VisIt team at <i>visit-help@llnl.gov</i>.</li>
<li>VisIt can now chunk up structured meshes into a collection of structured sub-grids and an unstructured grid to preserve the structured nature of the original dataset as much as possible. Many of VisIt's filters can operate on structured grids much faster than unstructured
grids while also using less memory. Volume rendering especially benefits from structured grid chunking.</li>
<li>VisIt has a new database reader plugin that allows VisIt to plot data from ESRI Shapefile databases, which are a standard in the Geographic Information Systems (GIS) field. ESRI Shapefile databases can be used to add extra levels of detail to climate and environmental visualizations by allowing you to incorporate elements such as roads, road names, lakes, rivers, and other geographical or manmade features.</li>
<li>VisIt now supports Label variables, which are fixed length strings defined on a mesh. The Label plot has been extended so that it can plot Label variables in addition to scalars, and meshes. VisIt's XML tools have been extended to support label variables. The ESRI Shapefile database reader plugin currently uses label variables to serve up names of geographic features.</li>
<li>VisIt's smart file grouping now groups ALE3D abort files with other related files so just one virtual database is produced. You can disable this behavior by reverting from "Smart" file grouping to just regular file grouping using the controls in the File selection window.</li>
<li>VisIt's smart file grouping now groups Flash files that have less related
names, allowing Lasnex databases to be more easily viewable in VisIt.</li>
<li>VisIt's viewer now deletes the encoded VTK data string that is sent from the compute engine in order to
substantially reduce its memory footprint.</li>
<li>VisIt's dynamic load balancing has been repaired so that it works again.</li>
<li>VisIt's Volume plot now supports log and skew variable scaling.</li>
<li>It is now possible to set the individual contour or set colors (including transparency) for the Contour, Boundary, FilledBoundary, and Subset plots in VisIt's CLI.</li>
<li>VisIt's automatic file grouping now supports Diablo's file naming convention.</li>
<li>VisIt's visualization window now features a <i>Lock time</i> icon that allows you to lock the vis window in time. The lock view icon has been removed from the view toolbar and both lock icons have been added to a new <i>Lock</i> toolbar that is always available.</li>
<li>VisIt now ensures that a database correlation for a vis window that is locked in time is correct after replacing databases.</li>
<li>VisIt's Box operator has been modified so that it outputs rectilinear grids when possible, resulting in a large speedup.</li>
<li>VisIt's new <i>visit_writer</i> library has been wrapped in a Python extension module so that it can be used by Python programs after issuing an "import visit_writer" directive.</li>
<li>VisIt now provides a <i>var_skew</i> expression that lets you skew variables.</li>
<li>The BOV database reader plugin has been modified so that it defers more of its work until later, making it open databases faster.</li>
<li>Choosing the 1x1 window layout now ensures that the window whose 1x1 button was clicked is made the active window and is thus visible when the 1x1 window layout is used.</li>
<li>Curves created by dynamic lineout mode observe the original plot unless the reference lines in the original plot's vis window are cleared.</li>
<li>The hosts drop-down list in VisIt's File selection window has been changed so that it is tall enough to display all commonly-used hosts without having to scroll.</li>
<li>Cloning a window now causes any saved views to be copied to the cloned window.</li>
<li>VisIt now displays more information when showing the names for available time sliders.</li>
<li>VisIt now has a host profile for the <i>uv</i> machine on the SCF.</li>
<li>VisIt now has a host profile for the <i>gviz</i> machine on the OCF.</li>
<li>VisIt now has a host profile for the <i>sphere</i> machine on the OCF.</li>
<li>The timeout for VisIt's compute engine has been changed to 10 minutes.</li>
<li>The AddOperator method in VisIt's Java client source code has been overloaded to support a string argument.</li>
<li>The <i>visit_writer</i> library now prints double precision numbers with greater accuracy. </li>
</ul>
<p><b><font size="4">Bugs fixed in version 1.4.3</font></b></p>
<ul>
<li>VisIt cannot restore expressions from session files.</li>
<li>VisIt's compute engine has problem-sized memory leaks.</li>
<li>The spin boxes in the IndexSelect operator attributes window need to allow a higher maximum value.</li>
<li>Copying everything from window 2 to window 1 can crash VisIt's viewer.</li>
<li>The Compute Engine's Interrupt button has been temporarily disabled.</li>
<li>VisIt's <i>convert</i> program does not get installed correctly.</li>
<li>VisIt's Slice operator sometimes returns invalid data that can cause a crash.</li>
<li>VisIt's compute engine crashes when processing Enzo data on a single-grid mesh.</li>
<li>VisIt's viewer crashes when plotting a sliced Label plot.</li>
<li>The time slider does not work when multiple windows are locked in time.</li>
<li>VisIt is unable to look at more than 20 time states of a PF3D database.</li>
<li>VisIt is unable to run client/server because of a new SSH message.</li>
<li>Spheral files cannot be read by VisIt 1.4.2.</li>
<li>Time queries can cause the compute engine to crash when the Curve plots created by the time queries are deleted.</li>
<li>The xml2plugin program is missing from binary distributions.</li>
<li>Uninitialized memory in the Boundary plot is causing extra lines to appear.</li>
<li>Pick sometimes erroneously returns the <i>Chosen pick did not intersect a surface</i> message.</li>
<li>The NumZones and NumNodes queries do not work on expressions.</li>
<li>Calling the Query function after calling QueryOverTime in VisIt's CLI can yield an incorrect result.</li>
<li>The first variable in the Scatter plot legend is sometimes garbled.</li>
<li>The selection in the vis window's popup menu marches down the list of available menu options when the popup menu is visible while VisIt is animating.</li>
<li>The BOV database reader plugin does not return cycle.</li>
<li>VisIt's L2Norm query does not handle repeated points when calculating the L2Norm of a Curve plot.</li>
<li>When a vis window is locked in time, causing an existing database correlation to be modified, VisIt does not make sure that the vis window whose database is joining the database correlation has a suitable time slider.</li>
<li>The Project operator does not save its attributes to the config file or to session files.</li>
<li>The <i>visit -movie</i> script does not honor the save tiled flag, making it impossible to save a movie of tiled images.</li>
<li>Single cells and nodes do not appear in the Label plot if the original data has been sliced.</li>
<li>VisIt cannot plot scalars when a mesh variable name does not quite match the scalar's mesh name. This can happen with Silo files that contain many subdirectories.</li>
<li>VisIt cannot plot Silo files created by dyna3d.</li>
<li>The <i>samples</i> field in the Lineout Query should be removed.</li>
<li>The new Python module <i>visit_writer</i> does not accept empty variable lists.</li>
<li>The <i>DeleteWindow</i> function in VisIt's CLI should complain if you pass it an argument since it does not take any arguments.</li>
<li>The <i>OpenComputeEngine</i> function in Visit's CLI does not issue a warning if it does nothing because a compute engine is already running.</li>
<li>VisIt still provides a host profile for <i>edgewater</i> even though that machine no longer exists.</li>
</ul>
<p>Click the following link to view the release notes for the previous version
of VisIt: <a href="relnotes1.4.2.html">VisIt 1.4.2 Release Notes</a>.</p>
</body>
</html>
......@@ -124,9 +124,10 @@ RPCExecutor<ConnectSimRPC>::Execute(ConnectSimRPC *connect)
<< " Host=" << connect->GetSimHost().c_str()
<< " Port=" << connect->GetSimPort() << endl;
LauncherApplication::Instance()->ConnectSimulation(
connect->GetLaunchArgs(),
connect->GetSimHost(),
connect->GetSimPort());
connect->GetLaunchArgs(),
connect->GetSimHost(),
connect->GetSimPort(),
connect->GetSimSecurityKey());
connect->SendReply();
}