The 1.5.3 version of baspl++ contains a small number fixes and improvements as well as support for the new B2000 gradient storage scheme.

FIXED: The CHface fields stemming from an NSMB CFD analysis were not correctly interpreted. They require special treatment. The Field object now contains code that performs the necessary operations for the CH fields.

FIXED: Displaying both nodes and elements using a gradient field in the Part would not work.

FIXED: Display of nodes in NPart was not updated when a colour field was removed.

FIXED: A problem related to OpenGL display lists when printing offscreen with a view_pstrs object.

IMPROVED: Reworked gradient extrapolation mechanism and gradient display in the Model editor. This work applies to the old B2000 gradient storage scheme, where, depending on the gradient scheme, a suitable extrapolation method to the nodes must be applied.

IMPROVED: Increased precision of floatingpoint number display in Model editor.

ADDED: For the NPart object, multiple extraction methods can now be defined, for instance:
p.extract = 'elements,nodes'
will extract elements and nodes at the same time. Likewise, for an NSMB CFD database, one could do
p.extract = 'sfvbc,cut'
which would extract the wetted surface plus a cut through the volume.
A part of the ongoing development in the B2000 FEA environment is the implementation of a new gradient storage scheme. The new scheme allows for a much more flexible arrangement of integration points than the old scheme. Integration points can now be arbitrarily placed in the element, this is for instance of importance for pelements. Further, field quantities can now be prescribed on a perintegration point basis (with the old scheme, they are fixed for a given element type), allowing for straightforward implementation of various yield and failure criteria, plasticity packages, etc., independent of the element type. Finally, the storage scheme is free from data redundancies and is as such very efficient w.r.t. disk space usage.
To this end, the new gradient storage scheme makes use of newly introduced functionality in MemCom. Also, the mcbrowser tool was updated, allowing now for inspection of gradient field data. In baspl++, support for the new scheme was added in the Field object and the NPart object. The Part object and the view_pstrs object only support the old gradient scheme.
Gradient fields are loaded much like any ordinary field:
fs = m.get_field('STRESS', case=1)
Note  

The

Once the Field object has been created, the field values can be inspected in the Model editor, like for the old gradient storage scheme. There are the following differences, however:

On the database, the values are stored in the branchglobal system always. When a Field object is created, baspl++ transforms these values to the globalglobal coordinate system.

There is no data extrapolated to the element's nodes. The reason behind this are that (a) baspl++ should present the data as it was calculated by B2000, and (b) that for more exotic storage schemes, extrapolation to the nodes is often not welldefined.

Certain derived quantities of tensor data, can be selected in addition to the tensor's components. These are computed by baspl++ onthefly from the tensor data and are not stored on disk. For firstorder tensors (vectors), the only derived quantity is the amplitude. For symmetric secondorder tensors, the derived quantities are:

S1, S2, S3: The largest, secondlargest, and smallest eigenvalue.

hydrostatic: The hydrostatic value.

SD1, SD2, SD3: The deviatoric stresses/strains.

maxshear: The "maximum" shear stress (Tresca).

maxshearupper: An upper bound for the maximum shear stress in three dimensions.

octahedral: The octahedral shear stress.

vonMises: The vonMises criterium.

In order to display the gradient data in a NPart object, it is necessary to load the physical coordinates of the integration points:
fc = m.get_field('COOR_IP', case=1)
If the NPart object is displayed in the deformed configuration, the physical displacements at the integration points must also be loaded:
fd = m.get_field('DISP_IP', case=1)
Both the COOR_IP
and DISP_IP
fields are also stored using the new gradient storage scheme.
To display the the gradient data in a NPart object, the following example can be used (here, the database contains a beam made of HE8.S.TL elements:
p = NPart(m) p.att.edge_plot = 1 p.att.face_plot = 0 p.sampling.coor_field = fc p.sampling.deform_field = fd p.sampling.field = fs p.sampling.compname = 'vonMises' p.extract = 'elements,sampling'
The field values are displayed at the exact positions of the integration points. This is most noticeable with shell elements. By default, the display is performed by coloured points. The size of these points can be set as usual by
p.att.point_size = 20
It is possible to display the points as coloured spheres, where the sphere radius depends on the value:
p.sampling.fast_draw=0 p.sampling.scale=0.03
Note  

The best scale factor for the given Field and perspective must be found out by hand. The scale factor may greatly vary between different solution fields, models etc. 
Finally, setting the component name to the empty string enables the display of the principals (this applies only to secondorder symmetric tensors):
p.sampling.compname = ''
Again, the scale factor must be set to a suitable value. The colours here are taken in function of the eigenvalues of the stress tensors.