Release Notes
Version 4.6
Version 4.6.3
b2testrunner: Now runs with Python 3.12 (importlib). Fixed small problems in b2test.py related to Python 3.12. Improved b2testrunner cmake file (install with setup from build dir instead source dir). Added B2000++ version number, platform type.
Examples: Added solid elements laminate material example.
Verification: * basic/beams/strains_and_stresses had bug in the mdl
input file. Fixed.
verification/basic/invariance/rotation: he8_convection.mdl test does not work due to singular matrix. This problem did exist before, see option
mumps_cntl "3:8.e-17"
in the case block. Probably there is something wrong with the overlay elements. Has to be checked.
Updated tests (create plots): Graph line properties now added as add_line arguments.
Fixed broken doxygen API doc generation: Created document in sphinx/b2api.
Updated B2000++ documentation generation and relevant install.sh files.
Introduction of a an abstraction layer for the threading (b2threading.H)
Fix for LOAD conversion in b2convert_from_nas, #196
This version integrates the option to build b2000++ with an interface for the FlowSim Data Manager (FSDM). This FSB2000 interface is completely optional and allows the coupling with other tools in the FlowSim ecosystem.
Compatibility with Numpy 2, but also requires simples in version 2.4.2 or newer
Introduction of a new unifying solver that can be selected via
analysis mlinear
andanalysis mdynamic_linear
Version 4.6.2
Update the Intel-TBB calls, such that it also supports the new OneAPI versions
Added a unit-cube test case to the verification suite
The original
TypedElement
templated with bothT
andMATRIX_TYPE
has been replaced with one only templated byT
, instead the elements have a propertysymmetric
to describe the symmetry of the elements effective matrix
Version 4.6.1
Various compilation improvements: now compilable with clang and AOCC
Avoid unnecessary recompilations
Support for NEC SX Aurora TSUBASA vector systems
Added a timing infrastructure to more easily add timers
Version 4.6.0 (2024-06-18)
First release with FSDM interface.
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
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)
Library: Fixed the non structural mass and inertia loads problems of
Rx.S
rod elements (non structural mass and inertia loads were not handled correctly). Updated documentation, specifically inertia loads and body loads.Tests: Added inertia load test for rods and beams, see $B2VERIFICATION/verification/basic/loads/inertia_loads1). Added non-structural mass tests for beams
Documentation: Updated B2000++ user manual (MDL documentation of non structural mass and inertia loads, topics).
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 ifanalysis
not specified.Added beam section
bar
(for compatibility with BDF).Library:
RTABLE
utility: Addedremove
function (removes content of key from table) inRTABLE
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 nowIDENT
throughout text).
Note
subcase
option of baspl++ “Field” object does not work, pleaseusee
mode
option instead (mode
is equivalent tosubcase
).
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 MDLadir
block and b2ip++ does not find theCASES
key in the descriptor of theADIR
dataset. As a consequence, the B2000++ solver now stops with an error message if noCASES
are defined and no-adir cases=
option was specified on the B2000++ solver command line when launching the solver.The
case
optiontemperature_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 byRx
(rod) elements. These takeelements
optionsmid
andarea
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 latestsmrconfig
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 MDLadir
block and b2ip++ does not find theCASES
key in the descriptor of theADIR
dataset. As a consequence, the B2000++ solver now stops with an error message if noCASES
are defined and no-adir cases=
option was specified on the B2000++ solver command line when launching the solver.b2ip:++: The
case
optiontemperature_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) andElement.conn_i
(internal element connectivity) instead of formerElement.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.
Old (-list) |
New (-set) |
---|---|
elementlist |
|
edgelist |
|
facelist |
|
nodelist |
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 toFORCE_SECTION_BEAM
SECTION_MOMENTS
renamed toMOMENT_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
andMOMENT_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 toSTRESS_SECTION_ROD
SECTION_STRAINS
renamed toSTRAIN_SECTION_ROD
The Sample Field datasets
STRESS_SECTION_ROD
andSTRAIN_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 tomode
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 directoriesverification
andexamples
.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 directoryb2000pp_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.