SAM 2.0 [June 2024]

SHA: 058eba4e

We are thrilled to present CEETRON Solve, Access & Mesh 2.0 – the latest major version of our finite element SDK products.

We have invested our last 3 development sprints in housekeeping and restructuring to ensure our product quality in the long run and prepare for a deeper API upgrade towards C++.

This necessary work is unfortunately impossible without breaking changes (as in “breaking the API”), meaning that integration in hosting applications may require a bit more work than usual.

We have done our best to facilitate this operation, providing scripts and documentation that will be helpful to automate the process. Our support team is also ready to respond to any questions or concerns you may have during the transition.

We hope you will appreciate using this version.

Please refer to the Migration scripts section for more details.


Fixed Bugs

CSAM-930 - Intel OpenMP definition fails while customized in the CMake system

Intel OpenMP include, library, and binary paths can now be customized.

CSAM-929 - Allow CMake to build shared CEETRON SAM library for Linux

The CMake system does not prevent anymore to build shared CEETRON SAM library for Linux.

CSAM-918 - Fix unconnected triangles when parallel meshing

Fix unconnected triangles when parallel meshing. Move base/system.h from header to compilation unit in MeshMetric object.

CSAM-914 - Fix crash in msh_SurfMeshGenerate()

SurfMesh could crash when computing adjacent preserved edges while generating the mesh.

CSAM-912 - CGNS export: long part name

Fix in CGNS export: support long part name and print warning when a part is shared by several zones.

CSAM-912 - CGNS export- Multizone written at FaceCenter location

Add VDM_CGNS_ZONEFACECENTER option in CGNS export to write zone interfaces with GridLocation=FaceCenter

CSAM-882 - Added handling memory allocation failures in out-of-core runs

Prosolve Memory allocation failures are now handled in out-of-core runs.

CSAM-855 - Crash in NASLib while reading element thickness

A crash would occur with Nastran output files .op2 with several GEOM2 sections and element thickness definitions only in the second GEOM2 definition.

CSAM-743 - Deprecate STAR-CCM+ support

The STAR-CCM+ reader is no longer available.

CSAM-733 - Deprecate float time attribute for NasLib

The time attribute included in result datasets of the NASLib module has changed. Previously, both a float and double version of the time attribute were provided. Only the double version is now provided.

New Features

CSAM-875 - Use C++17 and C17 as default compilation standards

C++17 and C17 are the new default compilation standards.

CSAM-757 - Organize SAM directory structure

SAM structure has been re-organized - A sam subdirectory has been added in the previous src directory, containing all currently maintained modules. - A legacy subdirectory has been created, containing the deprecated vgl folder and a vis folder where files related to visualization have been moved to. - A msh directory has been introduced in the sam directory. All meshing modules have been moved in this new directory, and the module prefix and namespace have been changed from vis to msh. Migration script have been added to the distribution. See the explanation on major version migration scripts.

CSAM-755 - Remove Dependency of CEETRON Solve to CEETRON VGL, Mesh

BeamSectCalculator has been introduced. This object is able to compute beam properties and the (dmat) matrix for some beams sections. It uses an internal resolution to compute the beam properties. the standard BeamSect object remains in the legacy folder, it has wider capabilities but depends on vgl and other visualization objects. ProRender has been deprecated, renamed and moved to legacy/vis.

CSAM-754 - Remove Prosolve dependency on vdm

The Prosolve object does not automatically export a SYS_NATIVE result file by default anymore. PROSOLVE_RESTYPE and PROSOLVE_RESFILE parameters are deprecated. The user now needs to create a Writer object with the appropriate parameters, and associate it to the Prosolve object using the vfx_ProSolveSetObject() function with the VIS_WRITER parameter. PROSOLVE_NASTRANOUTPUT integer option of Prosolve is deprecated. This information is not needed and automatically retrieved from the VIS_WRITER passed to the Prosolve object. Vfx example 3 has been improved to include the use of a concrete VIS_WRITER in prosolve. Whereas, example 38cvdm has been added to illustrate the use of a custom VIS_WRITER.

CSAM-736 - Rename all .c and .cxx files to .cpp and deprecate C compatibility

All files with a .c extensions are renamed to the .cpp extension to deprecate SAM C compatibility. All .cxx files are renamed as .cpp files.

CSAM-734 - Remove unused parameters in provided functions

Unused parameters have been removed from some functions. Here are the functions that have been cleaned:

See the updated function documentation for more information.

CSAM-732 - Modify vdm directory structure

The files in the vdm directory are now organized by library type. If a code base uses only the vdm.h include, this is not a breaking change. Otherwise, include statements might need to be updated.

CSAM-728 - Remove the Make build system

The Make build system is removed. The CMake build system replaces it.

CSAM-365 - Add UnrecognizedData class to CEETRON Access

Add UnrecognizedData object in Access to query lines with unrecognized keywords or cards. This object can provide the number of lines with unrecognized data, the line numbers, and the lines themselves. It is accessed via the method vdm_LManGetObject() with the VDM_UNRECOGNIZEDDATA type. The method Print() present in some Access libraries has been renamed to PrintUnrecognizedData().