CM2 FEM® SDK /release 5.3.0 Preview 1
- 5.3.0 Preview 1
- August, 2022.
- 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. See also the breaking changes below.
- Lib names suffix is
_53
for this series. - Work in progress.
/new features
stress_mgr
- Manages not only the thermal strains/loads (
stress_mgr::set_thermal_load
) as before but now also the initial strains (stress_mgr::set_initial_strains
) and the initial stresses (stress_mgr::set_initial_stresses
).
Note that initial strains (aka. pre-strains) are removed from the constitutive laws (see breaking changes below).
On top of now allowing initial stresses, this fixes several bugs when initial strains were used together with thermal loads or with prescribed displacements (the initial strains were silently discarded).
Moreover, as there is one stresses manager per load case, different initial strains/stresses are now possible on different load cases.
Initial strains, stresses and thermal strains can be used together with cumulative effects (additional effects on linear models).
Initial strains, stresses and thermal strains can be set on whole models (simple non-composite mechanical models) or element by element (thermal strains/loads can also be set on node-by-node basis).
Thermal strains/loads can be associated to a pseudo-time evolution function (time-dependent temperature).
solver_static_Newton
- New Displacement-Control (DC) method (single DOF only). Useful for instance to pass so-called snap-through unstable points.
With DC, the loads (all of them) are driven by a scalar load factor computed so that the value at the displacement-control DOF (solver_static_Newton::settings_type::DC_DOF
) follows a user-defined curve (defined withloads_mgr::record_DOF_prescribed_value
).
model_rod_gnl
- Is now fully non-linear: large strains (Green-Lagrange) and large displacements.
Used to be only small (Cauchy) strains and large displacements which is now supported by the new classmodel_rod_gnl1
.
FEM_Zstates
- New class similar to
FEM_states
but for complex solutions.
FEM_Zmatrix
- New
real()
(resp.imag()
) member to return the real (resp. imaginary) part of the matrix as aFEM_matrix
.
law_scalar_pow
- New elastic power scalar constitutive law (no plasticity).
/improvements
solver_least_squares
- Significant speed-ups (+25%) on shell element-by-element computations.
solver_modal, solver_modal_ldrv, solver_modal_gyroscopic, solver_buckling_models
- Some speed-ups (up to +10%).
/fixes
stiffness_diag, stiffness_sym, stiffness_sym_sparse, stiffness_sym_nl
- Issues with
code = 0
and ALM.
contact_plane, contact_cylinder, contact_sphere
- Issues when
lambda
was very negative (but greater than-DBL_MAX
).
solver_static_Newton
- Some convergence improvements.
All constitutive laws with initial strains (pre-strains)
- The initial strains were silently discarded when used together with thermal loads or with prescribed displacements.
/breaking changes
All constitutive laws with initial strains (pre-strains)
- Initial strains are removed from the law’s data.
One should now usestress_mgr::set_initial_strains
to set initial strains.
model_rod_gnl
- Now fully non-linear: large strains (Green-Lagrange) and large displacements.
The old class (small strains, large displacements) is renamedmodel_rod_gnl1
.
solver_z_impedance
- Type of
data_type::outputs
is changed fromFEM_Zmatrix
toFEM_Zstates
(new class).