CM2 FEM® SDK /release 5.6.0
- 5.6.0
- June 2025.
- Major release of the CM2 FEM® SDK.
- All CM2 FEM® SDK.
- Due to changes in the API, client applications must be recompiled against the new headers.
/caveats
- Lib names now end with
_56(Windows®),5.6.0with symlinks from5.6(Linux®, macOS®). - New builds with clang 20 and gcc 15.1 on Linux (Fedora 42).
- Visual Studio 2015 deprecated (will be no longer provided in future versions).
/new features
fem::law_shell_solid
- New law for Mindlin shells and plates based on a solid constitutive law (any
fem::law_solid_stiff), two thickness abscissas (bottom and top) and a number of Gauss points along the thickness for the numerical integration.
Can be associated to any plate/shell mechanical model (fem::model_plate_lin,fem::model_shell_lin,fem::model_plate_gnl,fem::model_shell_gnl).
Caveats: no specific mass law (use standardfem::law_scalarorfem::law_shell_mass).
fem::law_shell_laminated
- New law for laminated (aka. multi-layer) Mindlin shells and plates based on several solid constitutive laws (any
fem::law_solid_stiff).
Can be associated to any plate/shell mechanical model (fem::model_plate_lin,fem::model_shell_lin,fem::model_plate_gnl,fem::model_shell_gnl).
Optimal transverse-shear coefficients are automatically computed (different from the usual 5/6 coeffcient for homogeneous plates/shells).
Caveats: no specific mass law (use standardfem::law_scalarorfem::law_shell_mass).
fem::Cauchy_stresses
- Updated to support the numerical models based on the new
fem::law_shell_solidorfem::law_shell_laminatedlaws above.
Caveat: the computations of the Cauchy stresses are still based on the linear elastic theory (=> results are approximated for geometrically non-linear models and for models with plasticity).
fem::solver_least_squares
- Updated to smooth the plasticities of numerical models based on the new
fem::law_shell_solidorfem::law_shell_laminatedlaws above.
Caveat: the computed plasticities are the smoothed values of the max plasticities out of all plies (only one returned plasticity per node).
fem::link_surface
- New model for rigid links (
DISPLACEMENT,ROTATIONorTEMPERATURE) between a set of nodes and a surface (plane 2-D or 3-D).
This new class is intended to make junctions between incompatible surface meshes.
👉 May require usage ofmeshtools2d::get_elements_containing_nodesof the CM2 MeshTools SDK.
fem::link
- Now supports also the
TEMPERATUREfield (i.e. can be used to link temperatures).
fem::law_membrane_skyline
- New
fem::law_membrane_skylinefor full (skyline profile) user-defined membrane elasticity law.
Similar tofem::law_shell_skylineandfem::law_solid_skyline.
/improvements
None.
/fixes
fem::spring, fem::spring_directional, fem::hinge_punctual
- Error when associated to a
fem::law_scalar_nlwith null-stiffness range(s).
Regression since version 5.5.0.
fem::law_beam_StVenant
- Errors on loads with offset in the constitutive law.
fem::post_processor_1d
- Errors in stress diagrams on beams with punctual load(s) at end of element (s = +1).
fem::solver_static_Newton
- Convergence issue with multi-step loadings together with elasto-plastic laws.
fem::Cauchy_stresses
- Errors on shells with offset in the constitutive law.
fem::law_scalar_ep_piecewise_linear, fem::law_rod_ep_piecewise_linear, fem::law_solid_ep_piecewise_linear
- Error when last value of
EswasDBL_MAX(or similarly large).
/breaking changes
fem::numerical_model_base
- Member
get_local_basisreplaced withget_centre_and_local_basis(gaining aDoubleVec3& Gparameter for the centroid of the element).
The centroid and the basis are computed taking into account the hard offsets if any.
fem::solver_static_Newton
- The default value for
settings_type::min_Eis raised from1E-16to1E-12.
The former threshold was too low sometimes for the solver to declare convergence when starting from solutions already equilibrated.
fem::solver_least_squares
- Plates/shells: for
physics_kind=FEM_NODES_VON_MISES,FEM_NODES_VON_MISES_SIGNED,FEM_NODES_TRESCA,FEM_NODES_TRESCA_SIGNED, the computations are now smoothing the max values of these stress scalars along the sections/thicknesses (used to smooth the values of these scalars along mid-section line and mid-surface).
fem::Cauchy_stresses
- New requested parameter
const DoubleMat& posfor the coordinate matrix of the nodes.
fem::context
- Member
set_min_penalty_factor(resp.get_min_penalty_factor,set_max_penalty_factor,get_max_penalty_factor) renamed toset_min_penalty_stiffness(resp.get_min_penalty_stiffness,set_max_penalty_stiffness,get_max_penalty_stiffness).
fem::medit_nodal
- Overloads replaced with
fem::vizir_nodal,fem::vizir_nodal_scalars,fem::vizir_nodal_vectors,fem::vizir_nodal_tensors.