CM2 FEM® SDK /release 5.7.0 Preview 1
- 5.7.0 Preview 1
- March 2026.
- 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
- Major version. Due to changes in the API, client applications must be recompiled against the new headers.
- Lib names now end with
_57(Windows®),5.7.0with symlinks from5.7(Linux®, macOS®). - New Visual Studio 2026 builds.
- Visual Studio 2017 deprecated.
- Last version with Visual Studio 2010 builds.
- The Visual Studio 2015 builds shall be the legacy/oldest builds for the next series (5.8) and beyond.
/new features
solver_static_Newton
- New automatic pseudo-time stepping.
To help convergence in difficult cases (highly non-linear systems), the solver can automatically reduce the pseudo-time increment (settings_type::dt) or on the opposite, increase it in easy cases to reach the final time faster.
The ratiossettings_type::dt_cutback_factor(default = 0.25) andsettings_type::dt_increase_factor(default = 1.50) together with the boundssettings_type::dt_minandsettings_type::dt_maxcan be used to control the stepping.
Automatic pseudo-time stepping also works with Displacement-Control.
To disable automatic pseudo-time stepping and return to equal increments set the above factors to 1. data_type::potential_energiesarray (similar todata_type::elastic_energies) to give the potential energies associated to the solution snapshots.
Potential energy (usually negative) = elastic energy – work of external forces.
post_processor_1d
- New p-delta corrections based on an iterative scheme with additional ‘p-delta’ momentums (products of the axial force with the deflections).
These p-delta corrections provide a cost-effective way to get some basic non-linear effects even with linear 2-node beams.
But note that they usually don’t respect static equilibrium at the nodes (with other connected beams) and don’t account for all geometric non-linearities.
For static equilibrium and higher accuracy, use fully non-linear beams (model_beam_gnl) and a non-linear solver (solver_static_Newton), meshed segments (at least two elements along each segment) and preferably high-order elements such asCM2_EDGE4.
Theses p-delta corrections are computed (can be disabled) for linear and non-linear beams models. Null for rods.
law_shell_laminated
- New member
get_integrated_elasticity_matrixto retrieve the elasticity matrix integrated through all plies (all considered in their elastic state). - The constructors and initialisation members can now accept multipliers on each diagonal term of the elasticity matrix (multipliers vector of size 8).
Previously only two transverse-shear factors could be specified.
Now multipliers can also be specified on the membrane terms and on the bending terms of the elasticity matrix (diagonal terms only).
law_shell_solid
- The constructors and initialisation members can now accept multipliers on each the diagonal term of the elasticity matrix (multipliers vector of size 8). Same as above for
fem::law_shell_laminated.
Elasto-plasticity
- The former Von-Mises laws have been expanded into Drucker-Prager (associated) laws with an additional
betaparameter on the hydrostatic/trace part of the stress tensor (causing some parameters order changes in the initialisation functions, see Breaking Changes below):- Scalar laws:
law_scalar_ep_perfect,law_scalar_ep_piecewise_linear,law_scalar_ep_powerandlaw_scalar_ep_RambergOsgood. - 1-D laws:
law_spring_ep_perfect,law_spring_ep_piecewise_linear,law_spring_ep_powerandlaw_spring_ep_RambergOsgood. - 3-D laws:
law_solid_ep_perfect,law_solid_ep_piecewise_linear,law_solid_ep_powerandlaw_solid_ep_RambergOsgood.
The Von-Mises behaviour can be retrieved by setting the
betaparameters to 0.
We recall that on top of solid models, all 3-D laws can be used with axi-3d, axi-torsion, plane-strains and plane-stresses (i.e. plate/shell/laminates) models. - Scalar laws:
Thermal analysis
- New
solver_reactions_heatto compute heat flow imbalances (similar tosolver_reactionsto compute force/momentum imbalances in mechanical problems). - The conductivity/capacity/convection laws (scalar) was considered constant (independent of the temperature).
Now, you can uselaw_scalar_nlorlaw_scalar_poweras temperature-dependent conductivity laws in thermal modelsmodel_heat_conduction_1d,model_heat_conduction_2d,model_heat_conduction_3d, capacity laws in
model_heat_capacity_1d,model_heat_capacity_2d,model_heat_capacity_3dand convection laws inmodel_heat_convection_1dandmodel_heat_convection_2d.
Note however that with no thermal non-linear solver available so far, this feature is only useful with successive static linear thermal analyses with updatedinitialtemperature solutions.
/improvements
Elasto-plasticity
- Very significant improvements in the convergence speed of
solver_static_Newton(number of iterations divided by 2 or more) with elasto-plastic plates/shells/laminates models.
/fixes
solver_least_squares
- Smoothing element by element in elasto-plastic models could trigger a quadratic time complexity with respect to the total number of elements in the model (instead of linear complexity).
Similar to the fix in 5.5.2, but this time specific to models with elasto-plastic constitutive laws.
solver_reactions, solver_stress_1d
- Bug with
data_type::load_factors.
post_processor_1d
- Errors in deflection/rotation diagrams on beams with momentums (punctual, uniform, trapeze).
law_shell_solid, law_shell_laminated
- Bug with thermal loads.
- Convergence at local Gauss points could fail.
law_beam_StVenant
- Error on loads with offset in the constitutive law (again).
/breaking changes
solver_static_Newton
- The default value for the
settings_type::output_periodhas changed from 1 to 0.
This implies that the solution is no longer stored at each time step but now only at the final time step.
Setoutput_period= 1 to get back the previous behaviour. - The convergence criterion on energy has changed from elastic energy to potential energy and the setting name
settings_type::tol_Ehas been replaced withsettings_type::tol_J. - The convergence thresholds
settings_type::tol_U,settings_type::tol_Fand
settings_type::tol_J(formersettings_type::tol_E) have been relaxed from1E-6to1E-5.
The former values appeared to be unnecessary too stringent (especially when elasto-plasticity is involved).
A few Newton iterations can be saved with these relaxed thresholds (sometimes more when elasto-plasticity is involved).
For the same reason, thesettings_type::min_Evalue has been relaxed from1E-12to1E-10.
Elasto-plasticity
- The number of expected parameters (one additional
betaparameter for Drucker-Prager behaviour) and their order have changed in the initialisation functions (constructors andinitmembers).