CM2 FEM® SDK /release 5.3.0 Preview 1

by | Aug 26, 2022

  • 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 with loads_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 class model_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 a FEM_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 use stress_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 renamed model_rod_gnl1.

solver_z_impedance

  • Type of data_type::outputs is changed from FEM_Zmatrix to FEM_Zstates (new class).