Updates will be applied April 15th at 12pm EDT (UTC-0400). GitLab could be a little slow between 12 - 12:45pm EDT.

Commit 35dfb22c authored by Aron Helser's avatar Aron Helser

Merge branch 'libsim_ucdmesh_particles' into 'master'

Libsim handling ucdmesh and particles

See merge request !118
parents 645b030d dc4c4386
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
......@@ -3,20 +3,21 @@
<sensei>
<!-- Custom Analyses-->
<analysis type="PosthocIO"
output_dir="./" file_name="output" mode="visit" enabled="1">
<mesh name="mesh">
<cell_arrays> data </cell_arrays>
output_dir="./" file_name="output" mode="visit"
enabled="0">
<mesh name="mesh" structure_only="0" ghost_cells="1" ghost_nodes="0">
<cell_arrays>data</cell_arrays>
</mesh>
</analysis>
<analysis type="histogram" mesh="mesh" array="data" association="cell"
bins="10" enabled="1" />
bins="10" enabled="0" />
<analysis type="autocorrelation" mesh="mesh" array="data" association="cell" window="10"
k-max="3" enabled="1" />
k-max="3" enabled="0" />
<!-- VTK-m Analyses -->
<analysis type="vtkmcontour" array="data" value="0.3" enabled="0" write_output="0"/>
<analysis type="vtkmcontour" mesh="mesh" array="data" association="cell" value="0.3" enabled="0" write_output="0"/>
<!-- Catalyst Analyses -->
<analysis type="catalyst"
......@@ -26,14 +27,59 @@
color-range="0.0001,1.5" color-log="1"
enabled="0" />
<!-- Libsim Batch Analysis using session file -->
<analysis type="libsim" visitdir="/Users/bjw/Development/MAIN/trunk/install"
mode="batch"
frequency="10"
<!-- Libsim Analysis Notes
Locating VisIt:
* The "visitdir" attribute tells SENSEI where to find the VisIt
installation, which is required to pick up the Libsim runtime
libraries (when VisIt is not built statically)
The "mode" attribute can be "batch", "interactive", or "interactive,paused."
* batch - Executes the analysis prescribed be the slice or session file.
* interactive - Lets VisIt connect interactively.
* interactive,paused - Lets VisIt connect interactively. Blocks until
VisIt connects. From there, the "run" button
in VisIt's Simulations window can let it proceed.
It is possible to have multiple Libsim analyses but for timings, it is best
to have them enabled one by one.
For debugging, additional attributes can be added to the analysis block:
options="-debug 5 -clobber_vlogs -timings" trace="trace"
-->
<!-- Libsim Slice, render -->
<analysis type="libsim"
frequency="1"
visitdir="/Users/bjw/Development/MAIN/trunk/release" mode="batch"
plots="Pseudocolor,Mesh" plotvars="ucdmesh/data,ucdmesh" slice-origin="0,0,0" slice-normal="0,0,1"
image-filename="slice%ts" image-width="800" image-height="800" image-format="png"
slice-origin="0,0,0" slice-normal="0,0,1" slice-project="1"
enabled="0"/>
<!-- Libsim Iso mesh, render -->
<analysis type="libsim"
frequency="1"
visitdir="/Users/bjw/Development/MAIN/trunk/release" mode="batch"
session="oscillator.session"
image-filename="a%ts.png" image-width="800" image-height="800" image-format="png"
image-filename="iso%ts" image-width="800" image-height="800" image-format="png"
enabled="0"/>
<!-- Libsim Iso ucdmesh, render -->
<analysis type="libsim"
frequency="1"
visitdir="/Users/bjw/Development/MAIN/trunk/release" mode="batch"
session="oscillator-ucdmesh.session"
image-filename="iso-ucdmesh%ts" image-width="800" image-height="800" image-format="png"
enabled="0"/>
<!-- Libsim particles, render -->
<analysis type="libsim"
frequency="1"
visitdir="/Users/bjw/Development/MAIN/trunk/release" mode="batch"
session="oscillator-particles.session"
image-filename="particles%ts" image-width="800" image-height="800" image-format="png"
enabled="1"/>
<!-- ADIOS Analyses -->
<analysis type="adios" filename="oscillators.bp" method="MPI" enabled="0" />
</sensei>
# CTest Regression Dashboard
A number of systems have been confiugured for nightly testing and continuous integration.
A number of systems have been configured for nightly testing and continuous integration.
To view the results of these runs navigate your web browser to [http://cdash.hpcvis.com/index.php?project=SENSEI]().
# Running the tests
To enable the regression tests one must configure the build with tetsing enabeld.
To enable the regression tests one must configure the build with testing enabled.
```bash
cmake -DBUILD_TESTING=ON ...
```
......@@ -14,7 +14,7 @@ To run the regression tests locally, from the build directory issue ctest comman
cd build_dir
ctest
```
To run the tests and submit the results to the web dashboard add the ctest track option. Note, that it is case sensative.
To run the tests and submit the results to the web dashboard add the ctest track option. Note, that it is case sensitive.
```bash
ctest -DExperimental
```
......@@ -27,7 +27,7 @@ Tests are added by calling the CMake function *senseiAddTest*. This function
encapsulates the common scenarios needed to compile, link, and run tests in
serial, and parallel; and configures CTest to flag absolute test failures
(those retrurning non-zero exit code) as well as tests that print the word
`ERROR` (case insensative). Given that not all tests require a compile/link
`ERROR` (case insensitive). Given that not all tests require a compile/link
step(eg Python based tests) arguments related to these steps are optional.
```CMake
function senseiAddTest(<test name>
......@@ -55,7 +55,7 @@ senseiAddTest(testHistogramSerial
COMMAND testHistogram EXEC_NAME testHistogram
SOURCES testHistogram.cpp LIBS sensei)
```
Now the parallel version of the test. Note that it makes use of the above test's executable and therefore comnpiles nothing.
Now the parallel version of the test. Note that it makes use of the above test's executable and therefore compiles nothing.
```CMake
senseiAddTest(testHistogramParallel
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG}
......
......@@ -546,9 +546,9 @@ DataAdaptor::CreateGhostCellsArray(int cc) const
//----------------------------------------------------------------------------
int DataAdaptor::AddGhostCellsArray(vtkDataObject *mesh, const std::string &meshName)
{
if (meshName != "mesh" && meshName != "ucdmesh")
if (meshName != "mesh" && meshName != "ucdmesh" && meshName != "particles")
{
SENSEI_ERROR("the miniapp provides meshes \"mesh\" and \"ucdmesh\".")
SENSEI_ERROR("the miniapp provides meshes \"mesh\", \"ucdmesh\", and \"particles\".")
return -1;
}
......
......@@ -1173,10 +1173,10 @@ LibsimAnalysisAdaptor::PrivateData::GetArrayInfoFromVariableName(
if(pos != std::string::npos)
{
meshName = varName.substr(0, pos);
std::string tmpVar = varName.substr(pos+1, varName.size()-1-pos);
std::string tmpVar = varName.substr(pos+1, std::string::npos);
if(tmpVar.substr(0, 5) == "cell_")
{
var = tmpVar.substr(5, tmpVar.size()-5);
var = tmpVar.substr(5, std::string::npos);
association = vtkDataObject::FIELD_ASSOCIATION_CELLS;
}
else
......@@ -1191,7 +1191,7 @@ LibsimAnalysisAdaptor::PrivateData::GetArrayInfoFromVariableName(
meshName = meshNames[0];
if(varName.substr(0, 5) == "cell_")
{
var = varName.substr(5, varName.size()-5);
var = varName.substr(5, std::string::npos);
association = vtkDataObject::FIELD_ASSOCIATION_CELLS;
}
else
......@@ -1519,11 +1519,21 @@ cout << "dx=" << dx[0] << ", " << dx[1] << ", " << dx[2] << endl;
{
if(VisIt_PointMesh_alloc(&mesh) != VISIT_ERROR)
{
visit_handle pts = vtkDataArray_To_VisIt_VariableData(pgrid->GetPoints()->GetData());
if(pts != VISIT_INVALID_HANDLE)
VisIt_PointMesh_setCoords(mesh, pts);
else
bool perr = true;
vtkPoints *p = pgrid->GetPoints();
if(p != nullptr)
{
visit_handle pts = vtkDataArray_To_VisIt_VariableData(p->GetData());
if(pts != VISIT_INVALID_HANDLE)
{
VisIt_PointMesh_setCoords(mesh, pts);
perr = false;
}
}
if(perr)
{
SENSEI_ERROR("The vtkPolyData's coordinates are not set.")
VisIt_PointMesh_free(mesh);
mesh = VISIT_INVALID_HANDLE;
}
......@@ -1725,7 +1735,12 @@ LibsimAnalysisAdaptor::PrivateData::GetMetaData(void *cbdata)
// Get the mesh, structure only.
vtkDataObject *obj = nullptr;
bool structureOnly = true;
// Do not bother with structure-only. Most data adaptors are stupid and
// it causes problems if we later call GetMesh with different values
// of structureOnly.
bool structureOnly = false;
if (da->GetMesh(meshName, structureOnly, obj))
{
SENSEI_ERROR("GetMesh request failed. Skipping that mesh.")
......
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