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
SBValueMapto facilitate the passing of maps with parameters (stored inSBValue) into functions, constructors. Corresponding breaking changes in importers (SBIFileImporter::importFromFile), exporters (SBIFileExporter::exportToFile), and inSAMSON::importFromFile,SAMSON::exportToFile. Class that can be created via SAMSON::make* functions now have additional constructors that accept anSBValueMap- 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
printfunction that was outputing intostd::coutnow also have a functionprint(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::getNumberOfConstructorsSBCClassFactory::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 intostd::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::getRGBStringSBDTypeUnitCell::toPythonCodeprint(std::ostream&)for various types
Fix SBDTypeUnitCell::setShapeType.
New in SBUnitCell:
- You can now expose the
SBUnitCellclass 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::getVectorCSBUnitCell::getCenterSBUnitCell::getFractionalCoordinatesSBUnitCell::getCartesianCoordinatesSBUnitCell::getWrappedFractionalCoordinatesSBUnitCell::getWrappedPositionSBUnitCell::getNearestPeriodicImageSBUnitCell::getMinimumImageDisplacementSBUnitCell::getMinimumImageSquaredDistanceSBUnitCell::getMinimumImageDistanceSBUnitCell::containsSBUnitCell::canUseMinimumImageConvention
Facade library group#
SAMSON library#
Changed signatures of the following functions to use SBValueMap:
SAMSON::importFromFileSAMSON::exportToFileSAMSON::makeControllerSAMSON::makeInteractionModelSAMSON::makeNeighborSearchSAMSON::makeStateUpdaterSAMSON::makeSimulatorSAMSON::makeVisualModelSAMSON::makePropertyModelSAMSON::makeAnimationSAMSON::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::transformNonHierarchicalModelSBStructuralModel::isValidSMARTSSBStructuralModel::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::hasFiniteUnitCellSBStructuralModel::isPeriodicSBStructuralModel::getMinimumImageDisplacementSBStructuralModel::getMinimumImageDistanceSBStructuralModel::wrapToUnitCellSBStructuralModel::makeWholeSBStructuralModel::centerInUnitCellSBStructuralModel::createSupercellSBStructuralModel::getCommonStructuralModelSBStructuralModel::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::getUnwrappedPositionSBPath::wrapStepSBPath::wrapAllStepsSBPath::makeWholeStepSBPath::makeWholeAllStepsSBPath::unwrap
New functions in the SBMStructuralModelNodeAtom class:
SBAtom::getMinimumBondLengthSBAtom::getMaximumBondLength
New functions in the SBMStructuralModelNodeGroup class:
SBStructuralGroup::getNameWithoutID
New functions in the SBMStructuralModelNodeResidue class:
SBResidue::moveBackboneAtomsFromSideChainsSBResidue::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.