0.7.0
0.7.0 Release Highlights
(adapted from Conduit's Changelog)
Changed
General
- Conduit now requires C++11 support.
- Python Node repr string construction now uses
Node.to_summary_string()
Added
- CMake: Added extra check for include dir vs fully resolved hdf5 path.
General
- Added a builtin sandboxed header-only version of fmt. The namespace and directory paths were changed to
conduit_fmtto avoid potential symbol collisions with other codes using fmt. Downstream software can use by includingconduit_fmt/conduit_fmt.h. - Added support for using C++11 initializer lists to set Node and DataArray values from numeric arrays. See C++ tutorial docs (https://llnl-conduit.readthedocs.io/en/latest/tutorial_cpp_numeric.html#c-11-initializer-lists) for more details.
- Added a Node::describe() method. This method creates a new node that mirrors the current Node, however each leaf is replaced by summary stats and a truncated display of the values. For use cases with large leaves, printing the describe() output Node is much more helpful for debugging and understanding vs wall of text from other to_string() methods.
- Added conduit::utils::format methods. These methods use fmt to format strings that include fmt style patterns. The formatting arguments are passed as a conduit::Node tree. The
argscase allows named arguments (args passed as object) or ordered args (args passed as list). Themapscase also supports named or ordered args and works in conjunction with amap_index. Themap_indexis used to fetch a value from an array, or list of strings, which is then passed to fmt. Themapsstyle of indexed indirection supports generating path strings for non-trivial domain partition mappings in Blueprint. This functionality is also available in Python, via theconduit.utils.formatmethod. - Added
DataArray::fillmethod, which set all elements of a DataArray to a given value. - Added
Node::to_summary_stringmethods, which allow you to create truncated strings that describe a node tree, control the max number of children and max number of elements shown. - Added python support for
Node.to_summary_string
Relay
- Added Relay IO Handle mode support for
a(append) andt(truncate). Truncate allows you to overwrite files when the handle is opened. The default is append, which preserves prior IO Handle behavior. - Added
conduit::relay::io::blueprint::save_meshvariants, these overwrite existing files (providing relay save semantics) instead of adding mesh data to existing files. We recommend usingsave_meshfor most uses cases, b/c in many caseswrite_meshto an existing HDF5 file set can fail due to conflicts with the current HDF5 tree. - Added
conduit::relay::io::blueprint::load_meshvariants, these reset the passed node before reading mesh data (providing relay load semantics). We recommend usingload_meshfor most uses cases. - Added
truncateoption toconduit::relay::io::blueprint::write_mesh, this is used bysave_mesh. - Improve capture and reporting of I/O errors in
conduit::relay::[mpi::]io::blueprint::{save_mesh|write_mesh}. Now in the MPI case, If any rank fails to open or write to a file all ranks will throw an exception. - Added yaml detection support to
conduit::relay::io:identify_file_type.
Blueprint
- Added
conduit::blueprint::mesh::matset::to_silo()which converts a valid blueprint matset to a node that contains arrays that follow Silo's sparse mix slot volume fraction representation. - Added
conduit::blueprint::mesh::field::to_silo()which converts a valid blueprint field and matset to a node that contains arrays that follow Silo's sparse mix slot volume fraction representation. - Added
material_maptoconduit::blueprint::mesh:matset::index, to provide an explicit material name to id mapping. - Added
mat_checkfield toblueprint::mesh::examples::venn. This field encodes the material info in a scalar field and in thematset_valuesin a way that can be used to easily compare and verify proper construction in other tools.
Fixed
Relay
- Fixed bug in the Relay IOHandle Basic that would create unnecessary "_json" schema files to be written to disk upon open().
Removed
General
- Removed
Node::fetch_childandSchema::fetch_childmethods for v0.7.0. (Deprecated in v0.6.0 -- preferfetch_existing) - Removed
Schema::to_jsonmethod variants withdetailedfor v0.7.0. (Deprecated in v0.6.0 -- prefer standardto_json) - Removed
Schema::savemethod variant withdetailedfor v0.7.0. (Deprecated in v0.6.0 -- prefer standardsave) - The
masterbranch was removed from GitHub (Deprecated in v0.6.0 -- replaced by thedevelopbranch)
Relay
- Removed
conduit::relay::io_blueprint::savemethods for v0.7.0. (Deprecated in v0.6.0 -- preferconduit::relay::io::blueprint::save_mesh)