6. Version 1.4.2

baspl++ version 1.4.2 was released in May 2006. It consitutes a major upgrade from the previous released version, 1.3.14. Numerous changes, improvements, and bug fixes have been made since the last release.

6.1. Model Objects

  • IMPROVED: Made the check for existence of HE / Q elements in Epar more robust.

  • IMPROVED: Greatly improved speed of octree-based face-matching algorithm. The downside is a higher memory consumption. This reduces execution time for (volume) streamlines.

  • ADDED: Extraction of values from dataset descriptors is possible. For details type

    >>> help(Model.extract)

6.2. Field Objects

  • ADDED: Support for NSMB face fields such as CF_ (skin friction) and CH_. These fields work with displaced as well as with non-displaced structured meshes. These fields can be displayed with the NPart object only.

6.3. Part Objects

  • IMPROVED: The Part Editor's component selection combobox contains now only the component names for B2000 Gradient fields that are supported by the elements selected in that Part. Also, the gradient component names must not be given anymore as a number (baspl++ will complain), but with their name:

    >>> p.set_scalar_field(f, 'Sxx-EM')
  • IMPROVED: Display of faces when some of the nodes do not have valid field data (sparse fields). This now works well for FACE and SOLIDMESH, but there are problems inherent to design when using EDGE only.

  • FIXED: A problem in the Part's group display (colours) when the group numbers are sparse.

  • FIXED: Due to erroneous check, Part.add_elements() with the 'elements' argument containing invalid external element numbers could lead to segmentation faults.

6.4. NPart Objects

  • An experimental version of the NPart (= new Part) object is available. NPart is capable of displaying surface streamlines, skin friction fields, and has many other improvements over Part. NPart does not yet have a GUI editor. For an introduction to NPart type

    >>> help(NPart)
  • Surface streamlines are implemented with the NPart object. This is useful for RANS simulations in CFD analysis, as it allows to find the separation and reattachment regions. An example how this is done in Python is shown below:

    m = Model('mdo.db')  # Open a MemCom db (NSMB).
    f = m.get_field('CF', cycle=1) # Load skin friction vectors.
    p = NPart(m)         # Create an NPart just like a Part.
    p.ssl.distance /= 2  # Reduce distance between streamlines.
    p.ssl.field = f      # Enable display of surface streamlines.
    p.extract = 'sfvbc'  # Extract skin from NSMB boundary codes.
    s = Scene()          # Create a Scene object
    s.add(p)             # and add the NPart object to it.

6.5. Graph Objects

  • IMPROVED: The Graph widget has been modified so that it now automatically determines limits, intervals, string format, etc. to make things look nice. This makes the use of Graph objects much more convenient. Automatic settings can be overridden, user-set values are displayed in italic font in the Graph editor to distinguish them from automatic settings.

    #
    # Example to demonstrate the automatic settings of the Graph
    # object.
    #
    x = [-math.pi + i * 2 * math.pi * 0.01 for i in range(101)]
    y = [1234567 + 1.3 * math.sin(xx) for xx in x]
    c = Curve()
    c.push_points(x, y)
    g = Graph()
    g.add_curve(c)
    s = Scene()
    s.add(g)
  • IMPROVED: If multiple Graph objects are added to a Scene object, their axes are now aligned.

  • IMPROVED: The Graph objects are drawn now with the depth buffer disabled, this makes them always visible, even if the projected coordinates of a Part object in the same Scene object are nearer.

  • IMPROVED: Made the legend box in the graph a bit smaller to save space.

(See ??? for details on the Graph object.)

6.6. ColourMap Objects

  • IMPROVED: The default palette has been tuned for best differentiation of colours (values) that are close together. Only the hue is varied (in non-linear fashion), lighting and saturation are kept constant.

  • ADDED: A custom palette can be defined using the set_palette_custom_rgb() method.

  • The old HLS palette, which varies the hue linearly from 0.7 to 0, is still available. However, the setting of low/high, lighting and saturation parameters is not possible anymore (these settings have been removed).

  • A greyscale range is also available. It is useful when printing to black-and-white printers.

6.7. Scene Objects

  • FIXED: The scene title is now also a layout object, thus it does not conflict anymore with a Graph object.

  • FIXED: A problem with the Scene's viewing volume when making cuts in the Scene's xy-plane.

6.8. New B2000 Objects

  • ADDED: view_ebc and view_nlcs classes to display B2000 essential boundary conditions and node-local coordinate systems for B2000 version > 2.60. For more information, type

    >>> help(view_ebc)
    >>> help(view_nlcs)

    See ??? for more information.

6.9. Modes Wizard

  • ADDED: The modes wizards now supports buckling as well as free vibration modes. The graphical user interface has been updated to display the details for each mode type.

  • IMPROVED: For vibration modes, the file name for the video can now be set in the GUI.

  • Many other improvements and bug fixes have been made.

6.10. Other Wizards

  • An RCFO wizard has been added. It plots the total reaction force in function of the load factor.

6.11. Off-screen Rendering

  • IMPROVED: The off-screen rendering support for rasterized images has been enhanced to support a greater variety of graphics cards and drivers.

  • FIXED: Problems with font display when printing to PostScript. Also added margins when sending the PostScript data directly to a printer.

  • IMPROVED: Updated to the latest version of the gl2ps PostScript rendering library.

  • FIXED: Stippled lines are now displayed correctly in PostScript. This required enhancements to the PostScript rendering library.

  • IMPROVED: When printing to PostScript, ColourMap objects temporarily switch to non-texture mode (since textures are not supported by the PostScript rendering library).

(For more information on off-screen rendering, see ???).

6.12. Other Changes

  • baspl++ has been updated to the latest version of MemCom.

  • Many improvements to the multi-threading capabilities have been made.

  • FIXED: Due to a change in recent versions of Python, the file->exit menu was not working anymore on certain platforms.

  • IMPROVED: Disabled the selection of proportional fonts for the default font (only monospaced fonts are displayed correctly in ColourMap and Graph objects). The Text object still supports proportional fonts.

  • ADDED: The iwd (initial working directory) variable is present in the local namespace of the scripts given in the command line of baspl++. See ??? for more information.