News

Silo: Silo 4.10.2 Release (1 comment)

Added by Mark Miller over 2 years ago

Obtaining...

  • Obtain BSD Licensed source code here
  • Obtain Legacy Licensed source code here
  • Obtain documentation here

Organization of information in this announcement

  • Important information regarding this release.
  • Bugs fixed in this release.

Important information regarding this release.

Bugs fixed in this release

  • Fixed link-time compatibility failures with Silo 4.10.

Silo: Silo 4.10.1 Release Announcement

Added by Mark Miller over 2 years ago

PLEASE NOTE: There is a missing feature in Silo 4.10.1 causing link-time compatibility failures with Silo-4.10. Please use Silo-4.10.2

Obtaining...

Organization of information in this announcement

  • Important information regarding this release.
  • Bugs fixed in this release.

Important information regarding this release.

Bugs fixed in this release

  • Fixed problems with handling empty DBmatspecies objects.
  • Fixed problems compiling some 64 bit literal constants used for data read masks by adding 'ULL' suffix to indicate to the compiler that they should be treated as unsigned long long.
  • Fixed problems with Fortran header file generation.
  • Fixed incorrect handling of datatype for extface argument of DBPutPHZonelist in HDF5 driver (Thanks to Jeffrey Johnson for the fix!).
  • Fixed a UMR causing corrupted zonetype array data for the zonelist read as part of a DBGetUcdmesh call on the HDF5 driver when reading very old Silo files.

Silo: Update on Silo 4.10 Release

Added by Mark Miller almost 3 years ago

As you know, Silo 4.10 was released about a week ago. We are experiencing some issues with the main download site, silo.llnl.gov. Those should be corrected in a few days. In meantime, you can also obtain silo via LLNL's ftp servers..

ftp://ftp.llnl.gov/outgoing/silo-4.10.tar.gz
ftp://ftp.llnl.gov/outgoing/silo-4.10-bsd.tar.gz
ftp://ftp.llnl.gov/outgoing/silo-4.10-bsd-smalltest.tar.gz

For example, on many linux systems, the command…

wget ftp://ftp.llnl.gov/outgoing/silo-4.10.tar.gz

works.

Also, just an FYI that since the original release, a small problem was corrected for an uncommon case involving moving Linux Silo files with multi-block filepaths to Windows machines. The tarballs were quickly updated to fix this problem.

Silo: Silo 4.10 Final Release

Added by Mark Miller almost 3 years ago

Announcing the release of version 4.10 of the Silo Library

Obtaining...

Obtain BSD Licensed source code at https://wci.llnl.gov/codes/silo/silo-4.10/silo-4.10-bsd.tar.gz
Obtain Legacy Licensed source code at https://wci.llnl.gov/codes/silo/silo-4.10/silo-4.10.tar.gz
Obtain documentation at https://wci.llnl.gov/codes/silo/media/pdf/LLNL-SM-654357.pdf
Organization of information in this announcement

Important information regarding this release.
Bugs fixed in this release.
New features in this release.
Removal of Legacy Datatype'd pointers.
Const qualification and multi-level arrays.

1. Important information regarding this release.

Until the release tarballs are permanently available at the URL's mentioned above (probably next week sometime), they will be temporarily available at...
ftp://ftp.llnl.gov/outgoing/silo-4.10.tar.gz
ftp://ftp.llnl.gov/outgoing/silo-4.10-bsd.tar.gz
ftp://ftp.llnl.gov/outgoing/silo-4.10-bsd-smalltest.tar.gz
Version 4.10 is NOT link-time compatible with any previous version. You will need to re-compile and re-link your applications.
In some cases, passing a 'make check' requires adding 'LIBS=-lstdc++' to the make command line (e.g. 'make check LIBS=-lstdc++'.
The rocket test will fail during 'make check' on OSX. We've yet to learn how to handle dlopen and shared libs there. For similar reasons, Silo's python module has yet to be tested on a OSX.

2. Bugs fixed in this release

Fixed DBMakeNamescheme to automagically handle nameschemes that included external array references. In previous release, the caller was required to scan the namescheme for any extenal array references and read them from the file in a separate step. Now, this work is handled automatically by DBMakeNamescheme.
Fixed erroneous display of empty material and quadvar objects in browser.
Fixed incorrect documentation for 1-origin indexing of matspecies object.
Fixed missing documentation for return value for Fortran interface dbcreate/dbopen.
Fixed documentation for PMPIO_RankInGroup to clearly indcate caller can obtain rank of any processor in a group.
Changed name of CheckVersion macro to SiloCheckVersion to avoid possible name collision with similar symbols from other packages.
Fixed documentation for namescheme construction with external array references.
Fixed erroneous error message regarding missing HDF5 driver when opening no-writeable file in browser.
Improved manner in which empty objects are created relieving caller of several tedious constraints in setting argument lists just right to create empty objects.
Fixed Silo's Fortran header, silo.inc, so that it is compatible with free-format 9x. Super thanks to Bob Apthorpe for this fix!
Fixed browser's display of some objects containing variable length lists of arrays as well as failing to include such arrays in diffs produced by silodiff.
Fixed handling of complex indexing expressions in external array indices in nameschemes.
Fixed handling of ?:: operator in nameschemes to not attempt to evaluate whichever path is not taken.
Fixed documentation of species example in user's manual to show correct percentages for O-1 steel.
Fixed a number of compilation warnings from OS X (clang) compiler.
Fixed misleading ERROR message from browser when exiting and command history is not able to be saved.
Fixed misleading display of repr_block_idx in silex.
Fixed documentation regarding node-ordering for DB_ZONETYPE_POLYHEDRON zones.
Improved ducmentation regarding polyhedral zonelists for 2D meshes.
Fixed error in documentation regarding DBPutCompoundarray for Fortran callers.
Added Fortran equiv. of DBPutQuadvar to documentation.
Removed silly make dependencey of silock on browser in order to build silock.
Fixed silex display of 'topo_dim' member for ucd meshes.
Fixed diff'ing of curve objects in browser when reading HDF5 data.
Added missing documentation for Fortran dbaddcaopt.
Fixed file and library version comparison (GE) functions and macros.
Fixed a leak in HZIP compression library.
Fixed some leaks in browser tool using 'diff' operator.
Fixed issues writing and reading Silo standard objects via custom object interface (DBMakeObject/DBWriteObject).
Fixed compile time knowledge of Silo version digits such that blank digits (e.g. no pre or patch digit) are zeros at compile time.

3. New features in this release

The entire Silo interface has been const-qualified where appropriate.
It is now possible for PDBLite API to be exported publicly as part of a Silo installation. Use the --enable-install-lite-headers configuration option to enable this. This frees applications which have been using PDBLite interface for some time to have to maintain their own CPP mapping macros.
Improved DBoptlist processing so that caller needn't worry about exceeding maximum number of options specified in DBMakeOptlist call. Now, Silo will silently reallocate to accomodate going beyond maximum option count specified.
Improved DBobject processing similarly so that caller needn't worry about exceeding maximum number of object components specified in DBMakeObject. Now, Silo will silently reallocate to accomodate going beyond the maximum component count specified.
Added support to all variable writing routines for missing data using the DBOPT_MISSING_VALUE optlist option. Support for this Silo feature has also been added to VisIt and will be available in VisIt 2.8.
Added support for data producer to specify ghosting of meshes by writing extra mesh (or generic var) data and using DBOPT_GHOST_NODE_LABELS and/or DBOPT_GHOST_ZONE_LABELS optlist options. This is as an alternative to hi/lo indexing method previously used for ghost zone enumeration. Support for this Silo feature is not yet available in VisIt but will be added after VisIt 2.8 is released.
Added support for data producer to specify alternative node or zone numberings using DBOPT_ALT_ZONENUM_VARS and DBOPT_ALT_NODENUM_VARS optlist options. Support for this Silo feature is not yet available in VisIt but will be added after VisIt 2.8 is released.
Changed browser's default setting to open files for read-only instead of read-write.
Added ability to open a Silo "file" from a buffer of bytes (e.g. the File-In-Core). Note, this is different from the "core" file driver where a file is first read entirely into core before it is opened because it does not require or start from a file on disk.
Added a convenience method, DBOpenByBcast(), for parallel applications to open and process a root or master file. This method will open the file on a single processor and then broadcast its entire contents to all processors all of which turn around and open the resulting buffer of bytes as a Silo file. Note that this requires HDF5-1.8.10 or later.
Added support for Silo curves in polar coordinates.
Improved time and space performance of DBGetMultiXXX calls' processing long lists of catenated strings at large block counts. Reads of legacy files containing these objects should be faster. Writes of such objects should be faster too.
DB[Set|Get]DataReadMask using long type was replaced with DB[Set|Get]DataReadMask2 using long long type.
DBVersionDigits and DBFileVersionDigits were added to return integer major, minor, patch and pre-release version digits.
DBVersionGEFileVersion was added to compare library version with file version.
JSON support was added to Silo using the json-c library. This interface permits Silo applications to manipulate their Silo objects as JSON objects. The implementation includes extensions to json-c for efficient handling of problem-sized array data in Silo objects. This interface should be considered experimental and is likely to change, perhaps in dramatic ways, in future releases.
Improved display of character array data in silex.
netCDF driver was enabled on Windows.
By default, Silo no longer configures the silex browser. You have to explicitly enable the silex browser using the --enable-silex configuration switch (Thanks to Alex Henrie).
mkfort tool which produces fortran include files was enhanced to properly format both F77 and F9x header files (Thanks to Bob Apthorpe).
There are now two separate Fortran include files; one for F77 and one for F9x.
Improved silodiff tool's ability to process directories. It previously required files in both directories to have the same names. Now, it simply diffs files in two directories in reverse order of time of last modification.
Enhanced both PDB and HDF5 drivers to support customization of standard objects; that is the ability to create an object via DBMakeObject/DBWriteObject that would have otherwise been created via a DBPutXxxx (e.g. DBPutQuadvar) call, such that callers of DBGetXxxx will see the object as they ordinarily would. This permits Silo clients to create user-defined customizations to Silo's standard objects.

4. Removal of Legacy Datatype'd pointers.

In a Nutshell...

This applies mainly to very old Silo applications prior to version 4.6. Explicitly casting to float** two-level arrays in calls to some of the older Silo functions (e.g. DBPutUcd{mesh|var} or DBPutQuad{mesh|var}) is no longer required and will now result in compiler warnings for C callers and compiler errors for C++ callers.
The details...

In the early years of Silo's development, several functions designed to accept two-level arrays of arbitrary type nonetheless defined the function's formal arguments as float** instead of void**. These were changed to void** years ago. However, the configuration option, --enable-legacy-datatyped-pointers, was provided to maintain backward compatability with this old interface.
As part of the work to const qualify the Silo interface, continuing to maintain this backward compatability was becoming too complex. The configuration option --enable-legacy-datatyped-pointers has been eliminated along with the convenience macros DB_DTPTRx (for x=1, 2 and 3).
If you have been in the habit of using the --enable-legacy-datatyped-pointers configuration option and are wondering what will happen when you try to use Silo 4.10 in your application, the most likely biggest issue you will face is to remove cases where have explicitly cast certain array arguments in Silo calls to float**.

5. Const qualification and multi-level arrays.

In a Nutshell...

Wherever Silo can accept a two-level array of arbitrary type (e.g. float**, int**, double**), the function's formal parameter is defined to be a void const * instead of a void const * const . It is nonetheless still treated as a void const * const * in all other respects.
Wherever Silo accepts a constant array of constant strings (char const * const *), C callers will be required to explicitly cast char
* and char const ** arguments to avoid compiler warnings.
The details...

Please refer to this discussion for a detailed explanation.

Silo: A Second PRE-RELEASE for Silo 4.10

Added by Mark Miller about 3 years ago

The main point of this second pre-release is to fix issues with const qualified, two-level arrays. Please see [[Handling_const-qualified_multiply_subscripted_arrays_in_API_calls_for_C_and_C++|these notes]]

The pre-release tarball will be available temporarily via LLNL's FTP servers for a short (maybe 1 week) period of time, here

For LLNL users, this pre-release will be installed on OCF and SCF later this week.

An updated version of the user's manual is temporarily available here

Most but not all of this release has been tested and confirmed working on Windows. In particular, solution for const qualified two-level arrays has yet to be tested on Windows.

Silo: Silo 4.10.0 Pre-Release Is Available

Added by Mark Miller about 3 years ago

This is a PRE-RELEASE announcment for Silo 4.10

We are making a pre-release of Silo 4.10 available for users to test and provide feedback. A list of bug fixes and feature enhancments in this release are provided below. The pre-release tarball can be obtained from here. For this pre-release, we are providing only the legacy licensed tarball. The final release will provide the BSD licensed version as well.

For LLNL users...

This pre-release will be installed on OCF platforms by end of this week in /usr/gapps/silo/4.10-preX and in same place on SCF early next week.

Organization of information in this announcement

  1. Important information regarding this release.
  2. Bugs fixed in this release.
  3. New features in this release.

1. Important information regarding this release.

  • This pre-release has yet to be fully tested on Windows platforms.
  • This version of Silo should work with any version of the HDF5 library though newer versions of HDF5 are required for some features. In particular, the ability to open a buffer of bytes as a Silo file requires HDF5 version 1.8.10.
  • This version of Silo is NOT link-time compatible with any previous version. You will need to re-compile and re-link your applications.
  • In some cases, passing a \'make check\' requires adding \'LIBS=-lstdc++\' to the make command line (e.g. \'make check LIBS=-lstdc++\'.
  • The rocket test will fail during \'make check\' on OSX. I\'ve yet to learn how to handle dlopen and shared libs there. For similar reasons, Silo\'s python module has yet to be tested on a OSX.
  • For building on OS X with silex enabled, see <a href=\"https://visitbugs.ornl.gov/projects/silo/wiki/Silo_on_OS_X\">these notes</a>.

2. Bugs fixed in this release

  • Fixed DBMakeNamescheme to automagically handle nameschemes that include external array references. In previous releases, the caller was required to scan the namescheme for any extenal array references and read them from the file in a separate step. Now, this work is handled automatically by DBMakeNamescheme.
  • Fixed erroneous display of empty material and quadvar objects in browser.
  • Fixed incorrect documentation for 1-origin indexing of matspecies object.
  • Fixed missing documentation for return value for Fortran interface dbcreate/dbopen.
  • Fixed documentation for PMPIO_RankInGroup to clearly indcate caller can obtain rank of any processor in a group.
  • Changed name of CheckVersion macro to SiloCheckVersion to avoid possible name collision with similar symbols from other packages.
  • Fixed documentation for namescheme construction with external array references.
  • Fixed erroneous error message regarding missing HDF5 driver when opening no-writeable file in browser.
  • Improved manner in which empty objects are created relieving caller of several tedious constraints in setting argument lists just right to create empty objects.
  • Fixed Silo\'s Fortran header, silo.inc, so that it is compatible with free-format 9x. Super thanks to Bob Apthorpe for this fix!
  • Fixed browser\'s display of some objects containing variable length lists of arrays as well as failing to include such arrays in diffs produced by silodiff.
  • Fixed handling of complex indexing expressions in external array indices in nameschemes.
  • Fixed handling of ?:: operator in nameschemes to not attempt to evaluate whichever path is not taken.
  • Fixed documentation of species example in user\'s manual to show correct percentages for O-1 steel.
  • Fixed a number of compilation warnings from OS X (clang) compiler.
  • Fixed misleading ERROR message from browser when exiting and command history is not able to be saved.
  • Fixed misleading display of repr_block_idx in silex.
  • Fixed documentation regarding node-ordering for DB_ZONETYPE_POLYHEDRON zones.
  • Improved ducmentation regarding polyhedral zonelists for 2D meshes.
  • Fixed error in documentation regarding DBPutCompoundarray for Fortran callers.
  • Added Fortran equiv. of DBPutQuadvar to documentation.
  • Removed silly make dependencey of silock on browser in order to build silock.
  • Fixed silex display of \'topo_dim\' member for ucd meshes.
  • Fixed diff\'ing of curve objects in browser when reading HDF5 data.
  • Added missing documentation for Fortran dbaddcaopt.
  • Fixed file and library version comparison (GE) functions and macros.

4. New features in this release

  • The entire Silo interface has been const-qualified where appropriate.
  • It is now possible for PDBLite API to be exported publicly as part of a Silo installation. Use the --enable-install-lite-headers configuration option to enable this. This frees applications which have been using PDBLite interface for some time to have to maintain their own CPP mapping macros.
  • Improved DBoptlist processing so that caller needn\'t worry about exceeding maximum number of options specified in DBMakeOptlist call. Now, Silo will silently reallocate to accomodate going beyond maximum option count specified.
  • Improved DBobject processing similarly so that caller needn\'t worry about exceeding maximum number of object components specified in DBMakeObject. Now, Silo will silently reallocate to accomodate going beyond the maximum component count specified.
  • Added support to all variable writing routines for missing data using DBOPT_MISSING_VALUE option.
  • Added support for data producer to specify ghosting of meshes by writing extra mesh (or generic) variable data and using DBOPT_GHOST_NODE_LABELS and/or DBOPT_GHOST_ZONE_LABELS optlist options. This is as convenient alternative to hi/lo indexing method used for ghost zone enumeration.
  • Changed browser\'s default setting to open files for read-only instead of read-write. To open a file for writing, you must now pass the -W command-line switch.
  • Added opening a Silo \"file\" from a buffer of bytes (e.g. the File-In-Core). Note, this is different from the \"core\" file driver where a file is first read entirely into core before it is opened because it does not require or start as a file on disk.
  • Added a convenient DBOpenByBcast() method for parallel applications to open and process a root or master file. This method will open the file on a single processor and then broadcast its entire contents to all processors all of which turn around and open the resulting buffer of bytes as a Silo file. Note that this requires HDF5-1.8.10 or later.
  • Added support for Silo curves in polar coordinates.
  • Improved time and space performance of DBGetMultiXXX calls\' processing long lists of catenated strings for large block counts.
  • DB[Set|Get]DataReadMask using long type was replaced with DB[Set|Get]DataReadMask2 using long long type.
  • DBVersionDigits and DBFileVersionDigits were added to return integer major, minor, patch and pre-release version digits.
  • DBVersionGEFileVersion was added to compare library version with file version.
  • JSON support was added to Silo using the <a href=\"https://github.com/json-c/json-c\">json-c</a> library. This interface permits Silo applications to manipulate their Silo objects as JSON objects. The implementation includes extensions to json-c for efficient handling of problem-sized array data in Silo objects. This interface should be considered experimental and is likely to change, perhaps in dramatic ways, in future releases.
  • Improved display of character array data in silex.

Silo: Silo 4.9 Released (1 comment)

Added by Mark Miller over 4 years ago

Announcing the release of version 4.9 of the Silo Library

Obtaining...

See Release Notes

Silo: Silo Subversion repository moved

Added by Mark Miller over 4 years ago

Silo subversion repository has been moved to LLNL LC CZ systems. It is accessible from machines such as edge.llnl.gov or aztec.llnl.gov

svn co svn+ssh://<username>@edge.llnl.gov/usr/gapps/silo/svn/trunk

Also available in: Atom