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®). - 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).
/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 can be disabled (return to equal increments) when the above factors are set to 1.
Automatic pseudo-time stepping also works with Displacement-Control. 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) an a non-linear solver (solver_static_Newton), meshed segments (at least two elements along each segment) and preferably high-order elements such asCM2_EDGE4.
These p-delta corrections are 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 ply laws considered in their elastic state). - The constructors and initialisation members can now accept full multipliers on the diagonal terms 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 resultant matrix (diagonal terms only).
law_shell_solid
- The constructors and initialisation members can now accept full multipliers on the diagonal terms 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 (with 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 previous Von-Mises behaviours 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).
/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
- When smoothing element by element, another 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 when offset in the constitutive law (again).
Thermal analysis
- The conductivity laws (scalar) was considered constant (independent of the temperature).
Now, you can uselaw_scalar_nlorlaw_scalar_poweras temperature-dependent conductivity laws in all thermal models:model_heat_conduction_1d,model_heat_conduction_2d,model_heat_conduction_3d,
model_heat_capacity_1d,model_heat_capacity_2d,model_heat_capacity_3d,
model_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.
/breaking changes
solver_static_Newton
- The default value for the
settings_type::output_periodhas changed from 1 to 0.
This implies that the intermediary solutions (snapshots) are no longer saved at each time step but now only at the final time step.
Setoutput_period= 1 to recover 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
ssettings_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) and their order have changed in the initialisation functions (constructors andinitmembers).