Web Analytics Made Easy - Statcounter
Skip to content

Changelog for SDK 2026 R1 (v.11.0.0)#

This release brings major improvements and changes. It also fixes some known issues.

Main changes:

  • Now uses Qt v6.10.2.
  • Breaking changes in the descriptors for the Introspection mechanism.
  • Add the possibility to provide documentation for constructors and functions exposed via the Introspection mechanism.
  • A new class SBValueMap to facilitate the passing of maps with parameters (stored in SBValue) into functions, constructors. Corresponding breaking changes in importers (SBIFileImporter::importFromFile), exporters (SBIFileExporter::exportToFile), and in SAMSON::importFromFile, SAMSON::exportToFile. Class that can be created via SAMSON::make* functions now have additional constructors that accept an SBValueMap - implement them if in your derived classes if you want them to be used by SAMSON via SAMSON::make* functions.

It also brings various improvements and fixes accros SAMSON, for example:

  • New Job manager.
  • More types registered directly in SAMSON for the use via the Introspection mechanism.
  • Classes that had a print function that was outputing into std::cout now also have a function print(std::ostream&) that outputs into the provided stream.
  • Various changes for the future shift to C++20.

Core library group#

Class library#

The changes in the Class library are primarily aimed at improving the Introspection mechanism, mainly:

  • Add the possibility to provide documentation (brief, parameters, return, etc.) for exposed constructors and functions - you can see the documentation, if it has been provided, in the Exposed Functionality Viewer. See:

  • SB_CONSTRUCTOR_0_BEGIN, SB_CONSTRUCTOR_N_BEGIN, SB_CONSTRUCTOR_END;

  • SB_FUNCTION_0_BEGIN, SB_FUNCTION_N_BEGIN, SB_FUNCTION_END;
  • SB_CONST_FUNCTION_0_BEGIN, SB_CONST_FUNCTION_N_BEGIN, SB_CONST_FUNCTION_END;
  • SB_STATIC_FUNCTION_0_BEGIN, SB_STATIC_FUNCTION_N_BEGIN, SB_STATIC_FUNCTION_END.

  • Simplified the descriptors - now there is no need to mention the class name when exposing class members within the class descriptor. Remove the mentions of the class in SB_FACTORY_BEGIN, SB_CONSTRUCTOR_*, SB_INTERFACE_BEGIN, SB_FUNCTION_*, SB_ATTRIBUTE_BEGIN, etc. (see their updated signatures).

A new base class SBCClassCallableMember that describes a base class for a callable member (constructor, SBCClassConstructor or function, SBCClassFunction).

A new class SBCClassCallableMemberDoc that describes documentation for callable members.

Improvements in the SBCClassFunction::signature function.

New function in the SBCClassProxy class:

  • SBCClassProxy::deleteInstance

New functions in the SBCClassFactory class:

  • SBCClassFactory::getNumberOfConstructors
  • SBCClassFactory::deleteInstance

New function in the SBCClassInterface class:

  • SBCClassInterface::getNumberOfFunctions, SBCClassInterface::getNumberOfAttributes.

Container library#

SBCContainerHashMap class:

  • A new constructor from an std::initializer_list
  • A new function: SBCContainerHashMap::toStdUnorderedMap - converts a hash map into std::unordered_map.

SBCContainerIndexer class:

  • A new constructor from an std::initializer_list.
  • A new function: SBCContainerIndexer::print(std::ostream&).

SBCContainerString class:

  • A new function: SBCContainerString::print(std::ostream&).
  • Renamed functions SBCContainerString::removeWhitespaces.

Meta library#

Added more registered types in the SBCMetaRegister.hpp file.

Add SBCMetaValue::empty for convenience.

A new class SBCMetaValueMap (short name: SBValueMap) - a convenience class that contains a map from std::string to SBValue, and can be used, for example, to pass into a function or a constructor a map of parameters, or another data.

Reference library#

SBCReferenceIndexer class:

  • A new constructor from an std::initializer_list.

DataModel library group#

Controller library#

The SBDController class now has a constructor that accepts SBValueMap - implement it in your derived class if you want it to be used by SAMSON via SAMSON::makeController.

DataGraph library#

New constructors for the SBDDataGraphNodeIndexer class: from std::initializer_list, std::set, and std::vector.

The SBDDataGraphNodeSelector class now has a constructor that accepts SBValueMap - implement it in your derived class if you want it to be used by SAMSON via SAMSON::makeSelector.

Document library#

The SBDDocumentAnimation class now has a constructor that accepts SBValueMap - implement it in your derived class if you want it to be used by SAMSON via SAMSON::makeAnimation.

Quantity library#

Added registered types for the default non-SI quantities.

A new function in SBQuantity: print(std::ostream&).

Type library#

New functions:

  • SBDTypeColor::getRGBString
  • SBDTypeUnitCell::toPythonCode
  • print(std::ostream&) for various types

Fix SBDTypeUnitCell::setShapeType.

New in SBUnitCell:

  • You can now expose the SBUnitCell class type in the \Inspector.
  • Add functionality for managing Periodic Boundary Conditions (PBC):

  • SBUnitCell::Periodicity, SBUnitCell::getPeriodicity, SBUnitCell::setPeriodicity

  • SBUnitCell::isFinite, SBUnitCell::isPeriodic, SBUnitCell::isPeriodicX, SBUnitCell::isPeriodicY, SBUnitCell::isPeriodicZ

  • Add more useful functionality:

  • SBUnitCell::getInverseMatrix, SBUnitCell::getReciprocalMatrix

  • SBUnitCell::getVectorA, SBUnitCell::getVectorB, SBUnitCell::getVectorC
  • SBUnitCell::getCenter
  • SBUnitCell::getFractionalCoordinates
  • SBUnitCell::getCartesianCoordinates
  • SBUnitCell::getWrappedFractionalCoordinates
  • SBUnitCell::getWrappedPosition
  • SBUnitCell::getNearestPeriodicImage
  • SBUnitCell::getMinimumImageDisplacement
  • SBUnitCell::getMinimumImageSquaredDistance
  • SBUnitCell::getMinimumImageDistance
  • SBUnitCell::contains
  • SBUnitCell::canUseMinimumImageConvention

Facade library group#

SAMSON library#

Changed signatures of the following functions to use SBValueMap:

  • SAMSON::importFromFile
  • SAMSON::exportToFile
  • SAMSON::makeController
  • SAMSON::makeInteractionModel
  • SAMSON::makeNeighborSearch
  • SAMSON::makeStateUpdater
  • SAMSON::makeSimulator
  • SAMSON::makeVisualModel
  • SAMSON::makePropertyModel
  • SAMSON::makeAnimation
  • SAMSON::makeSelector

GUI library group#

Made the create functions as pure virtual in the base GUI factory classes: SBGDocumentAnimationFactory, SBGDynamicalModelParticleSystemFactory, SBGInteractionModelParticleSystemFactory, SBGPropertyModelFactory, SBGStructuralModelFactory, SBGVisualModelFactory. If you derive from one of these GUI factory classes you will need to implement the corresponding create function to use via a factory.

Action library#

The type of the SBGAction class is now registered directly in SAMSON.

Window library#

Add a new function SBGWindow::centerOnSAMSON to center a window on SAMSON.

IO library group#

Changed signatures of SBIFileImporter::importFromFile and SBIFileExporter::exportToFile functions - they now get SBValueMap instead of std::unordered_map to facilitate the passing of maps with parameters (stored in SBValue).

Modeling library group#

InteractionModel library#

The constructor of the base class SBMInteractionModelParticleSystem now also gets SBValueMap - if you derive from this class and want to pass parameters via its constructor (e.g., when using SAMSON::makeInteractionModel or SAMSON::makeSimulator), then implement the same constructor in your derived class and expose it via the Introspection mechanism.

PropertyModel library#

The constructores of the base classes SBMPropertyModel, SBMPropertyModelBaseFunction, SBMPropertyModelFunction, SBMPropertyModelScalarField, SBMPropertyModelVectorField now also get SBValueMap - if you derive from these classes and want to pass parameters via their constructors (e.g., when using SAMSON::makePropertyModel), then implement the same constructor in your derived class and expose it via the Introspection mechanism.

StructuralModel library#

New functions in the SBMStructuralModel class:

  • SBStructuralModel::transformNonHierarchicalModel
  • SBStructuralModel::isValidSMARTS
  • SBStructuralModel::findSubstructureMatchesWithSMARTS

SBStructuralModel now store SBUnitCell which you can access via SBStructuralModel::getUnitCell and SBStructuralModel::setUnitCell; new functions related to unit cells (SBUnitCell) and PBC:

  • SBStructuralModel::hasFiniteUnitCell
  • SBStructuralModel::isPeriodic
  • SBStructuralModel::getMinimumImageDisplacement
  • SBStructuralModel::getMinimumImageDistance
  • SBStructuralModel::wrapToUnitCell
  • SBStructuralModel::makeWhole
  • SBStructuralModel::centerInUnitCell
  • SBStructuralModel::createSupercell
  • SBStructuralModel::getCommonStructuralModel
  • SBStructuralModel::getCommonUnitCell

New structural model event type: SBStructuralEvent::Type::UnitCellChanged.

New functionality in SBPath:

  • Mass data: SBPath::getMassData, SBPath::setMassData, SBPath::getMass, SBPath::setMass.
  • Unit cell (SBUnitCell) related functions:

  • SBPath::getUnitCellData, SBPath::setUnitCellData

  • SBPath::getUnitCell, SBPath::setUnitCell.
  • SBPath::getUnwrappedPosition
  • SBPath::wrapStep
  • SBPath::wrapAllSteps
  • SBPath::makeWholeStep
  • SBPath::makeWholeAllSteps
  • SBPath::unwrap

New functions in the SBMStructuralModelNodeAtom class:

  • SBAtom::getMinimumBondLength
  • SBAtom::getMaximumBondLength

New functions in the SBMStructuralModelNodeGroup class:

  • SBStructuralGroup::getNameWithoutID

New functions in the SBMStructuralModelNodeResidue class:

  • SBResidue::moveBackboneAtomsFromSideChains
  • SBResidue::fixTerminal

VisualModel library#

The constructor of the base class SBMVisualModel now also gets SBValueMap - if you derive from this class and want to pass parameters via its constructor (e.g., when using SAMSON::makeVisualModel), then implement the same constructor in your derived class and expose it via the Introspection mechanism.

Fix in the memory management of meshes (SBMesh).

DynamicalModel library#

Bugfix in SBMDynamicalModelParticleSystem::removeAtom.

Simulation library group#

StateUpdater library#

The constructor of the base class SBSStateUpdaterParticleSystem now also gets SBValueMap - if you derive from this class and want to pass parameters via its constructor (e.g., when using SAMSON::makeStateUpdater or SAMSON::makeSimulator), then implement the same constructor in your derived class and expose it via the Introspection mechanism.