Release Notes

Version 4.5

Version 4.5 is built with the cmake build system. See explanations in the relevant cmake files “CmakeLists.txt” and comments in git. All packages, except for baspl++ and the fluid-structure coupling packages, are now built with cmake.

Version 4.5.6 (2024-03-07)

  • Library: Repaired the non-functioning of restarts during non-linear analysis.

  • Tests: Improved restart test $B2EXAMPLES/buckling/restart with better checks (requires Simples 2.3.6+).

    Improved stage test, specifically $B2EXAMPLES/examples/buckling/rod (new).

    Improved $B2EXAMPLES/static/cable_truss test: Test now displays path correctly.

Version 4.5.5 (2024-02-21)

Version 4.5.4 (2024-02-16)

  • Library: Fixed the non structural mass and inertia loads problems of Bx.S.RS beam elements (non structural mass and inertia loads were not handled correctly). See Topics chapter of the user manual.

  • Tests: As a consequence, new tests have been added and other tests re-grouped. See tests under $B2VERIFICATION/basic/mass and $B2VERIFICATION/basic/loads.

Version 4.5.3 (2024-01-16)

  • MDL: Added default analysis type (linear) in MDL case block. analysis=linear is now default if analysis not specified.

  • Added beam section bar (for compatibility with BDF).

  • Library: RTABLE utility: Added remove function (removes content of key from table) in RTABLE utility.

    Fixed inconsistency with modal mass/stiffness in b2solution_database.H. By default modes are now m-ortonormalized.

  • Documentation: Updated test cases and examples (consequence of default analysis type and some other modifications in b2test). Improved descriptive text. Specifically, updated subcases and restart examples and tests.

    Added index to B2000++ examples document. Updated documentation and test codes.

    Updated mdl.rst (analysis type) and made text more consistent (ID is now IDENT throughout text).

Note

subcase option of baspl++ “Field” object does not work, please

usee mode option instead (mode is equivalent to subcase).

Version 4.5.2 (2023-08-18)

  • Optionally include the NSMB FSI boundary condition in the build via -DNSMB_FSI=ON CMake option.

  • Unit testing has been introduced and can be compiled with -DBUILD_TESTING=ON Run ctest to execute the unit tests.

  • The libb2000++ library now includes the Kirchoff-Love Theory shell elements again.

B2000++ Library API Changes

  • The linalg namespace has been renamed to b2linalg

Version 4.5.1 (2023-03-17)

  • Update of muParser

  • Updates to the tests for panels

  • Updates to the documentation

B2000++ Library API Changes

  • API for elements has changed and several functions of the base class were moved to the typed derived classes instead.

  • API for boundary conditions has changed. The class hierarchy now looks like this: *BoundaryCondition -> Typed*BoundaryCondition<T> -> Typed*BoundaryConditionListComponent<T> The methods to get the boundary conditions have been changed and now need to be provided with the respective factory class (::type_t of the boundary condition to obtain).

  • The boundary classes of the b2dbv3 database have been changed to be templated themselves rather than hiding the different template variants by multiple inheritance

Version 4.5.0 (2023-01-31)

Applications

  • b2ip++: b2ip++ now issues a warning if no cases option has been specified in the MDL adir block and b2ip++ does not find the CASES key in the descriptor of the ADIR dataset. As a consequence, the B2000++ solver now stops with an error message if no CASES are defined and no -adir cases= option was specified on the B2000++ solver command line when launching the solver.

    The case option temperature_field <case> <cycle> for thermo-elastic coupling has been added.

B2000++ Library API Changes

  • Class BeamCrossSectionRod` of ``util/b2beam_cross_sections.H is not active because properties (property option) are not (yet) supported by Rx (rod) elements. These take elements options mid and area instead.

Documentation

  • The generation of B2000++ examples and verification documentation with Sphinx has been completely revised, because of a conceptual problem with the test case figures (conflicting file names). The sphinx/CMakeLists.txt file contains a short description of the new documentation generation.

  • The examples are now in a separate document b2examples, see sphinx/b2examples. Note: before generating the new documentation you must install the latest smrconfig package from the git repository.

Tests

Warning: The system tests of this version should be run with Simples version 2.3.1+.

  • All test case description files description.rst have been updated and adapted to the revised documentation system.

  • All test case figure file names have been modified to fit in the revised documentation system.

Version 4.4

Version 4.4 is now built with the cmake build system. See explanations in the relevant cmake files “CmakeLists.txt” and comments in git. All packages, except for baspl++ and the fluid-structure coupling packages, are now built with cmake.

Version 4.4.8 (2022-12-30)

  • b2ip++: Issues a warning if no cases option has been specified in the MDL adir block and b2ip++ does not find the CASES key in the descriptor of the ADIR dataset. As a consequence, the B2000++ solver now stops with an error message if no CASES are defined and no -adir cases= option was specified on the B2000++ solver command line when launching the solver.

  • b2ip:++: The case option temperature_field <case> <cycle> for thermo-elastic coupling has been added.

  • Examples and verification: Updated some Simples examples and verification scripts, because Simples API of the Element class has changed slightly: Element.conn (external element connectivity) and Element.conn_i (internal element connectivity) instead of former Element.conni (internal element connectivity).

  • Examples: Added a one-way thermo-elastic coupling example examples/coupled/transient_heat_deformation. Added computation of gradients for all heat tests.

Warning: The system tests of this version should be run with Simples version 2.2.0+.

Version 4.4.7 (2022-09-16)

Updated B2000++ documentation, improved test case documentation.

Version 4.4.6 (2022-06-09)

Improved test case documentation.

Updated B2000++ documentation, specifically the test case documentation, the new revised b2programming manual, and a first version of the new B2000++ API Manual.

Fixed the –valgrind problem: The --valgrind option did not work anymore because the valgrind-python.supp file was not installed and because there was an error in b2wrapper.in.

Updated b2ip++ code: Added object factory for registration of user elements.

Cleaned up b2test python module, removed unused old code, documented the module.

Version 4.4.5 (2022-02-23)

Specification of MDL nodeset, elementset, faceset, and edgeset now have the sorted or unsorted parameter: sorted will remove all duplicate entries and sort the list in ascending order, while unsorted (default) keeps the list as specified. Most often a set will be unsorted, because the order in which nodes or elements are specified is important. However, for certain coupling operations sorted sets are required. See the Component Mode Synthesis example input files q4.mdl and q4_local_model.mdl.

The sorted or unsorted parameter is stored in the descriptor of the relevant datasets.

Tests have been updated for the sorted parameter of the node and element set object.

B2000++ unit tests (b2testrunner): Python 3 does not support implicit relative imports within packages. Therefore all __init__.py files that specify imports of test cases were modified as follows (example):

import scordelis_lo_roof

to

from . import scordelis_lo_roof

Version 4.4.4 (2021-12-07)

Various updates of verification and example test cases in connection with Simples.

The application b2testrunner is now installed wit the wrapper for ensuring correct Python modules.

Small updates to installation (cmake): Python main programs now installed with cmake and wrapper.

Version 4.4.3

The MDL node and element list definitions are now deprecated in favor of set, because list and set are the same and they are not processed in a different way by B2000++. The name set seems more appropriate. Note: B2000++ node and element lists and sets have nothing to do with Python list and set objects.

Equivalent of MDL -list commands

Old (-list)

New (-set)

elementlist

elementset

edgelist

edgeset

facelist

faceset

nodelist

nodeset

Version 4.4.2

Linear pre-buckling and vibration analysis: The number of requested eigenmodes NMODES must be greater or equal to 2. NMODES=1 will fail in the eigenvalue solver. A check in them MDL is made and NMODES=1 will be changed to NMODES=2.

Version 4.3

Version 4.3 is a reworked version for executing Python 3 code.

  • Rod Section Stresses and Strains: The following datasets have been renamed, because their content relates to specific element types:

    • SECTION_FORCES renamed to FORCE_SECTION_BEAM

    • SECTION_MOMENTS renamed to MOMENT_SECTION_BEAM

    Beam elements in the current version do not produce stresses and strains. These have to be computed in a post-processing step with the the Simples BeamStressField class.

    The Sample Field datasets FORCE_SECTION_BEAM and MOMENT_SECTION_BEAM store the beam forces and moments one by on in the order the beam elements are defined. The mapping between the beam external element number and the entry in the Sample Field dataset is not yet stored on the database and must be computed by a post-processing program. Simples does so, see the “Gerbertraeger” example.

  • Rod Stresses and Strains: The following datasets have been renamed, because their content relates to specific element types:

    • SECTION_STRESSES renamed to STRESS_SECTION_ROD

    • SECTION_STRAINS renamed to STRAIN_SECTION_ROD

    The Sample Field datasets STRESS_SECTION_ROD and STRAIN_SECTION_ROD store stresses and strains one by on in the order the rod elements are defined. The mapping between the rod external element number and the entry in the Sample Field dataset is not yet stored on the database and must be computed by a post-processing program. Simples does so, see the “Gerbertraeger” example.

  • b2ip++: Added tests for beam section properties input. b2ip++ now produces warnings if beam section properties are not correct.

  • b2ip++: Error messages can produce very long output lines, because the mdl file name is expanded. Problem partially solved.

  • All code: Started to improve error messages.

  • b2test.py: Changed b2test omode argument to mode for consistency with other programs. Re-introduced write enabled b2test databases, because otherwise some old tests do not work. This problem should be addressed: By default the test database should never be opened in write mode by default.

  • The directory tools has a new directory structure.

  • Make files have been updated (still generated by autotools).

  • The examples documentation has been integrated in the B2000++ Verification document. The separate test case directory examples has been removed and all example test cases are now stored under the directory <prefix>/share/b2000++/verification.

  • A new option -P prefix has been added to the b2testrunner application, because some new tests now require the B2000++ prefix directory, because they compile test programs with C++ code.

  • Verification and test cases: They have been moved to a separate package b2000pp_data, because their distribution with the binary code packages unnecessarily duplicates the information, because the data are independent of the Operation System.

    Due to the conversion to Python 3, the test cases had to be split. The Python 2 test cases are in the directory test_cases, while the Python3 test cases are located in the new directories verification and examples.

  • All documentation is now created with the Sphinx. The formatted documentation can be consulted here.

  • The examples documentation has been integrated in the B2000++ Verification document. The examples directory examples is now stored under the directory b2000pp_data/examples.

Known Problems

B2000++ Input Processor

Error messages can produce very long output lines, because the mdl file name is expanded. This issue has been addressed and partially solved.

A comment character “#” as last character (without a newline) in an input file leads to a syntax error.

Solvers

Linear pre-buckling and vibration analysis: If the number of requested eigenmodes NMODES is set to 1 the computation of the eigenvector can fail in some cases. Set NMODES to 2 or more in such cases.

The Beam Cross Section Solver exhibits problems with the shear center.

Iterative Solvers: The gmm iterative solvers do not work in the present version of B2000++, because the gmm API has changed. We recommend not to install the gmm package.

Adding linear constraints (LINC) to nodes that couple 2 epatch meshes does not work, i.e the additional LINC is ignored. Remedy: Do not make use of epatch in this case. Create the mesh with a preprocessor instead.

Elements

Bx.S.RS beam elements: The shear center defined by cross-section properties Bx.S.RS is not taken into account for the Bx.S.RS, causing extra bending.

Qx.S.TL.2D Element: The element is singular when numbered clock-wise.

Python 2 Issues

Some test cases involving baspl++ are still not converted to Python3 and Simples.

B2000++ Configuration

The b2set_blas_library utility does not work under Ubuntu. b2set_blas_library allows for selecting various BLAS implementations. A replacement is under development.

baspl++

baspl++ still only works with Python2 and is compiled and

distributed with the Python2 version of the SMR packages.

Viewing of sample point fields, specifically derived values, such as von Mises stresses or failure indices works as long as elements of the same type, such as shell or solid elements, are involved. In the presence of mixed meshes, such as beam/rod and shell meshes, viewing of von Mises stresses or failure indices does not work or is only possible with some work-around, such as defining several parts, one for beams, one for rods, and one for shells.