Update release_notes authored by Rémy Mozul's avatar Rémy Mozul
# Release notes # # Release notes #
This page aims at keeping major information regarding the changes of function names, argument names or whatever between This page aims at keeping major information regarding the changes of function names, argument names or whatever between
the different versions of LMGC90. the different versions of LMGC90.
This is not release notes 'stricto sensu'. This is not release notes 'stricto sensu'.
* [2023->2024](#2024) * [2023->2024](#2024)
* [2022->2023](#2023) * [2022->2023](#2023)
* [2021->2022](#2022) * [2021->2022](#2022)
* [2020->2021](#2021) * [2020->2021](#2021)
* [2019->2020](#2020) * [2019->2020](#2020)
* [2018->2019](#2019) * [2018->2019](#2019)
* [2017->2018](#2018) * [2017->2018](#2018)
* [2016->2017](#2017) * [2016->2017](#2017)
* [2015->2016](#2016) * [2015->2016](#2016)
## <a name=2024> version 2024 ## ## <a name=2024> version 2024 ##
API update: API update:
* Default value of `addRegistersToDisplay` is now `True` * Default value of `addRegistersToDisplay` is now `True`
* Some optional VTK files writing move from Fortran core to Python: * Some optional VTK files writing move from Fortran core to Python:
* `lib_vtkio` is removed from the core and the installed third party libraries * `lib_vtkio` is removed from the core and the installed third party libraries
* `f2f` files are written by adding `write_f2f=True` in `OpenDisplayFiles` * `f2f` files are written by adding `write_f2f=True` in `OpenDisplayFiles`
* central kernel files are written by adding `write_ck=True` in `OpenDisplayFiles` * central kernel files are written by adding `write_ck=True` in `OpenDisplayFiles`
* Gauss point files are written by: * Gauss point files are written by:
* activating by listing the fields to display in `OpenDisplayFiles` with `mecagp_field` and/or `thergp_field` * activating by listing the fields to display in `OpenDisplayFiles` with `mecagp_field` and/or `thergp_field`
* explicitely asked by setting `write_gp=True` in `WriteDisplayFiles` * explicitely asked by setting `write_gp=True` in `WriteDisplayFiles`
* Change `inter` optional keyword to `ptc` to add field to `WriteDisplayFiles` for interactions * Change `inter` optional keyword to `ptc` to add field to `WriteDisplayFiles` for interactions
* Using `record<0` in `io_hdf5_read` will automatically read last available record * Using `record<0` in `io_hdf5_read` will automatically read last available record
* Remove support of VTK 6 * Remove support of VTK 6
* Cmake minimum version is now 3.16 * Cmake minimum version is now 3.16
Fix: Fix:
* Quasi-Static time integrator to work with any time step * Internal gap computation in `elastic_repell_clb_g0` and `iqs_expo_czm_spring` contact law
* Use `tiny` instead of arbitrary `1e-14` precision check in CZM laws * Detection now ignore interactions where all supported dof are velocy driven
* Possibility to have up to 9999999 elements or nodes with `MAILx` bodies * Status in `CZM_EXPO_SPRING` contact law
* Error in `lmgc90_ptc` paraview macro * Correct `POLYD` use in `pre` and `core`
* Slight mistakes in tutorials notebooks * f2f related vtk block are displayed in end of time step configuration instead of `TT`
* Remove some warnings in `pre.visuAvatars` to greatly accelerate the function * error in `ComputeRnod` in 3D
* Add management of `xKSID` contactors in `pre.visuAvatars` * Correct update of `beta` in `*EXPO_CZM_SPRING` contact laws
* Fix filtering of visible rigid/tact/mecaFE when generating VTK files * Quasi-Static time integrator to work with any time step
* Fix error in `CSASp` pedigree describing candidate as `CYLND` in hdf5 files and `getInteractions` * Use `tiny` instead of arbitrary `1e-14` precision check in CZM laws
* Rename mecaMAILx_3D/discreteFE example to mecaMAILx_3D/discreteFE_suspendedblock and add corresponding gen_sample.py * Possibility to have up to 9999999 elements or nodes with `MAILx` bodies
* Fix TOSI_CZM* laws to use 2 energy parameters for mode I and mode II/III * Slight mistakes in tutorials notebooks
* Remove some warnings in `pre.visuAvatars` to greatly accelerate the function
* Add management of `xKSID` contactors in `pre.visuAvatars`
New: * Fix filtering of visible rigid/tact/mecaFE when generating VTK files
* Fix error in `CSASp` pedigree describing candidate as `CYLND` in hdf5 files and `getInteractions`
* Add support of ubuntu 24 * Rename mecaMAILx_3D/discreteFE example to mecaMAILx_3D/discreteFE_suspendedblock and add corresponding gen_sample.py
* Add some basics tests on python/numpy * Fix TOSI_CZM* laws to use 2 energy parameters for mode I and mode II/III
* Add a restart parameter to computation macros
* Paraview macro to draw tubes is available in `src/addons/paraview/LMGC90_gp`
* Add joint elements: New:
* In preprocessor
* linear bulk elements of type : `J2xx2`, `J3xx3`, `J4xx3` * Contact laws to manage plasticity within CZM
* associated material must be of type : * new laws : `IQS_EXPO_CZM_P`, `EXPO_CZM_P`, `IQS_EXPO_CZM_SPRING_P`, `EXPO_CZM_SPRING_P`
* `JELAS` (with `stiffness` parameter) * same parameters as their `*EXPO_CZM*` counterparts plus two others for plasticity:
* `J__MC` (with `stiffness`, `consolidation` and `mc` parameters) * `mu_g` to set the rate of damage energy over total energy : $\mu_g = \frac{G_d}{G_f}$
* `JFCZM` (with `stiffness`, `consolidation` and `fczm` parameters) * `Eta` a truncation parameter of expo laws
* In Chipy wrapper added `mecaMAILx_GetGpAllJoint` * Allow to use `visible` status on driven dof of mecaMAILx bodies:
* Added examples in `mecaMAILx_3D` directory: * `mecaMAILx_SetVisibleVlocyDrivenDof`
* `1J_compression+shear` * `mecaMAILx_SetInvisibleVlocyDrivenDof`
* `1J_traction` * `mecaMAILx_UpdateVlocyDrivenDofStructures` must be called LAST
* `jointFE_Arche` * Support of clipper library version 2
* `jointFE_compression+shear` * default in new build
* `jointFE_traction+shear` * activate in existing build with `cmake . -DCLIPPER_VERSION=2`
* `jointFE_traction` * When using `PRPRx_UseNcF2fExplicitDetection`
* manage properly the case where the intersection polygon of two faces is not connex
* Detection method `PRPRx` used by stono
Doc: * can mix face to face aspect with non-convex ones
* manage properly the case where the intersection polygon of two faces is not connex
* Detail list of datatype keyword when using GetBodyVector and other similar function * can use a `decompression` parameter to select contact point position regarding:
* Update notebook explaination regarding interactions * the convex hull of the intersection polygon
* the intersection polygon and its intersection with the central kernel
* manage properly the case where the intersection polygon of two faces is not connex
## <a name=2023> version 2023 ## * added keyword:
* `PRPRx_UseStoDetection` : activate detection
Added features: * `PRPRx_ForceF2fDetection` : force face to face within sto detection
* thermal dilatation management for built-in and demmefi models of mecaMAILx * `PRPRx_ForceNcDetection` : force non convex within sto detection
* In HDF5 files the `rdata` part of `internals` in interaction is now of minimum needed size * `PRPRx_GetF2fOutlines` : get the intersection polygon in the `f2f` structure
* Add new contact laws: * `PRPRx_GetF2fStress` : use optimization to evaluate the linear compression stress
* `ELASTIC_REPELL_CLB_adapt` to change stiffness through internal * `PRPRx_GetF2fCentralKernel` : compute the central kernel
* `TOSI_CZM` and `TOSI_CZM_INCRE` laws * Utilities to compute mechanical values of plane contact surface:
* SPPRx detection module (with periodic management) * `MecaPolyg_CentralKernel`
* periodic detection of CDCDx module * `MecaPolyg_StressField`
* the NLGS solver now stops with an error if a `NaN` value is met * Paraview file generation completely reworked:
* Add `PRPRx_SetInternalSurface` to be able to override the value of contact surface within triangle intersection detection * Now a single paraview file is generated for each time step
* `post` submodule of `chipy` to generate paraview files picturing the central kernel criteria (PRPRx with f2f detection) * This file use the `MultiBlock` logic
* `inters.vtu` files are no longer generated only `ptc.vtu` files * The content is almost the same a the union of former files
* `ptc.vtu` files are now generated from the `chipy.getInteractions` * Exception is the `f2f` file content which is split in two blocks:
* add macros to make access and visualization of internal variables of interactions easier * `Face2Face` component with the outline of the contact structure
* add macros for paraview (10 and 11) to add glyph/tubes on ptc files and ck (Central Kernel) files. * `PressureCenter` component with only the point to draw pressure line
* `ContactPointContour` block appears
Changes in API: * fields `icdbdy`, `ianbdy`, `icdtac`, `iantac` were added to these blocks
* `MAX_INTERNAL_TACTS` is now of size 19 by default * And the `ck` block content now hold only the geometrical part of the central kernel
* Some macro of `pylmgc90.chipy` now raise an error if `SetDimension` has not been called beforehand * The argument `write_ck` of the `OpenDisplayFiles` is replaced by `write_f2f` with integer value:
* Argument `step` has been renamed to `record` in all the `ReadIni` macros * 0: do not write any related block
* Removed all obsolete read/write of binary file using the old OUTBOX format * 1: write only the `Face2Face` and `PressureCenter` blocks
* `CloseDisplayFiles` is now empty function and no longer needed * 2: add the `CentralKernel` block to the previous ones
* `chipy.WriteDisplayFiles` no longer use the `ref_radius` and `normal_orient` parameters * 3: add the `CompressionStress` block to the previous ones
* when adding user field to `ptc.vtu` files in chipy.WriteDisplayFiles` now needs an numpy array instead of a dictionary * Add `Shape` field with contactor id parameter in vtk `tactor` block
* `registerInterInternals` take the internal variable (or a list of them) to work with * All paraview macros were updated and improved
* `addRegistersToDisplay` to automatically add the internal variable to the WriteDisplayFiles calls * Add support of ubuntu 24
* `getInternalArray` to get the internal array associated with an interaction array * Add some basics tests on python/numpy
* `setInternalArray` to set the internal value of a list of interactions * Add a restart parameter to computation macros
* `getInteractions` can now get "this" or "verlet" interactions, with byte-string or integer id, for the parameters fields * Add joint elements:
* In preprocessor
Added functions to `chipy`: * linear bulk elements of type : `J2xx2`, `J3xx3`, `J4xx3`
* `WriteLast` added to macros * associated material must be of type :
* `io_hdf5_write_last(fname)` allowing to write last state in the input file * `JELAS` (with `stiffness` parameter)
* `inter_handler_xD_getNbRecup` was added (and corresponding getter in detection module removed) * `J__MC` (with `stiffness`, `consolidation` and `mc` parameters)
* `inter_handler_xD_tgetIData` was added * `JFCZM` (with `stiffness`, `consolidation` and `fczm` parameters)
* `PRPRx_GetF2f2Inters` to get the *face to face* to interaction mapping * In Chipy wrapper added `mecaMAILx_GetGpAllJoint`
* `CYLND_GetShape` to access cylinder axis length values * Added examples in `mecaMAILx_3D` directory:
* `1J_compression+shear`
Added functions to `pre`: * `1J_traction`
* method `avatar.updateReferenceConfig` to update the reference configuration of the bodie(s) to the current one * `jointFE_Arche`
* `jointFE_compression+shear`
Fixes: * `jointFE_traction+shear`
* in Demmefi managements models (especially regarding `endo3D`) * `jointFE_traction`
* bug in `CDCDx` contact detection
* `pre.readState` when reading with `xxl` interactions
* sort content when using `ExternalFEM` and in `ExternalDetection` for Xper coupling Doc:
* SPPRx detection when contact point is not in a PR face
* PRASp computation of VN in prjj * Detail list of datatype keyword when using GetBodyVector and other similar function
* Add missing pre.mesh function in sphinx documentation * Update notebook explaination regarding interactions
* correct read/write regarding stress of mecax in HDF5 files
* pre.IO.writeVlocRloc if inters is a list and not a numpy array
* bug in PRPRx where unwanted contacts where added with 0 coordinates ## <a name=2023> version 2023 ##
* some drvdof where ignored if index of body was greater than 99999
* inertia computation error of CYLND in `pre` Added features:
* fix 'COORDINATION_NUMBER' postpro command * thermal dilatation management for built-in and demmefi models of mecaMAILx
* fix 'BODY TRACKING' to correctly follow rigid 3D body instead of first contactors * In HDF5 files the `rdata` part of `internals` in interaction is now of minimum needed size
* use CL/AL and CS/AS mesh id instead of global id in .vtu files * Add new contact laws:
* fix status of `CZM` contact laws * `ELASTIC_REPELL_CLB_adapt` to change stiffness through internal
* fix error in `.pvd` paraview files in case of restart * `TOSI_CZM` and `TOSI_CZM_INCRE` laws
* SPPRx detection module (with periodic management)
## <a name=2022> version 2022 ## * periodic detection of CDCDx module
* the NLGS solver now stops with an error if a `NaN` value is met
* General fix in Core, API, build process and documentation * Add `PRPRx_SetInternalSurface` to be able to override the value of contact surface within triangle intersection detection
* Add `computation` macro submodule to provide the functions * `post` submodule of `chipy` to generate paraview files picturing the central kernel criteria (PRPRx with f2f detection)
* `initialize` * `inters.vtu` files are no longer generated only `ptc.vtu` files
* `initialize_non_linear` * `ptc.vtu` files are now generated from the `chipy.getInteractions`
* `compute_one_step` * add macros to make access and visualization of internal variables of interactions easier
* `compute_one_step_non_linear` * add macros for paraview (10 and 11) to add glyph/tubes on ptc files and ck (Central Kernel) files.
* Add new matlib version (2021-1)
* Remove oldest matlib Changes in API:
* Read material file directly from matlib * `MAX_INTERNAL_TACTS` is now of size 19 by default
* Use `density` as a field for `mecaMAILx` with matlib * Some macro of `pylmgc90.chipy` now raise an error if `SetDimension` has not been called beforehand
* Specify field dependency to a parameter with a file * Argument `step` has been renamed to `record` in all the `ReadIni` macros
* Add management of cluster of `CYLND` * Removed all obsolete read/write of binary file using the old OUTBOX format
* Quasi-static integrator for `mecaMAILx` * `CloseDisplayFiles` is now empty function and no longer needed
* Mass scaling of `mecaMAILx` * `chipy.WriteDisplayFiles` no longer use the `ref_radius` and `normal_orient` parameters
* Use force instead of pressure within `nlgs_3D` solver for `CSASp` and `CSPRx` * when adding user field to `ptc.vtu` files in chipy.WriteDisplayFiles` now needs an numpy array instead of a dictionary
* Add a function to compute a PDF of pressure * `registerInterInternals` take the internal variable (or a list of them) to work with
* Management of initial gaps or overlaps for `EXPO_CZM` laws * `addRegistersToDisplay` to automatically add the internal variable to the WriteDisplayFiles calls
* Possible flush of postpro files during computation * `getInternalArray` to get the internal array associated with an interaction array
* A post.py script to manage POSTPRO files * `setInternalArray` to set the internal value of a list of interactions
* `RecupRlocByPosition` for `CSPRx` contacts * `getInteractions` can now get "this" or "verlet" interactions, with byte-string or integer id, for the parameters fields
* Add internal variables values to display files
* Max internal in contacts now default to 8 (instead of 6 before) Added functions to `chipy`:
* Add access to wood orthotropic frame from `user` module * `WriteLast` added to macros
* Add possibility to only compute internal forces in `mecaMAILx` * `io_hdf5_write_last(fname)` allowing to write last state in the input file
* First version of SP/PR detection * `inter_handler_xD_getNbRecup` was added (and corresponding getter in detection module removed)
* HDF5 now store a version number to handle evolution of format * `inter_handler_xD_tgetIData` was added
* Access to a structured numpy array of all `this` interactions * `PRPRx_GetF2f2Inters` to get the *face to face* to interaction mapping
* `inter_handler_xD_GetAll` now includes the `vloc` values (not displayed in paraview yet) * `CYLND_GetShape` to access cylinder axis length values
* Interaction type `T_inter` now use subcontactor id (`cdsci` and `ansci`) field instead of `icdver`, `ianal`, etc
Added functions to `pre`:
Fixes: * method `avatar.updateReferenceConfig` to update the reference configuration of the bodie(s) to the current one
* Fix VlocRloc ascii file output for some contacts where `lantac` was missing
* Remove unused `lantac` parameter from some VlocRloc ascii files Fixes:
* Fix COORDINATION_NUMBER postpro file * in Demmefi managements models (especially regarding `endo3D`)
* Fix trim in discrete geometry and add extension management * bug in `CDCDx` contact detection
* Tidy Newton-Raphson routines management in TimeEvolution/overall module * `pre.readState` when reading with `xxl` interactions
* Fix cohesion status management in common plane detection * sort content when using `ExternalFEM` and in `ExternalDetection` for Xper coupling
* Fix bugs for `EXPO_CZM_SPRING` laws * SPPRx detection when contact point is not in a PR face
* Area of contact computation when using `TriangleIntersections` detection of `PRPRx` * PRASp computation of VN in prjj
* Fix `DKPLx` contact detection * Add missing pre.mesh function in sphinx documentation
* Fix `CSASp` contact detection * correct read/write regarding stress of mecax in HDF5 files
* Fix in `BODY TRACKING` to really track `RBDY3` and not its first contactor * pre.IO.writeVlocRloc if inters is a list and not a numpy array
* Fix installation path when changing of `VENV_PATH` with cmake * bug in PRPRx where unwanted contacts where added with 0 coordinates
* Use CL/AL and CS/AS mesh id instead of global id in .vtu files * some drvdof where ignored if index of body was greater than 99999
* inertia computation error of CYLND in `pre`
Added functions to `chipy`: * fix 'COORDINATION_NUMBER' postpro command
* `CSASp_AddReac`, `CSPRx_AddReac` * fix 'BODY TRACKING' to correctly follow rigid 3D body instead of first contactors
* `CSASp_AssumeOldFiles` * use CL/AL and CS/AS mesh id instead of global id in .vtu files
* `nlgs_3D_CutOpenCZM` * fix status of `CZM` contact laws
* `nlgs_3D_ManageInterpenetratedCZM` * fix error in `.pvd` paraview files in case of restart
* `CSxxx_GetAll`
* `mecaMAILx_GetInternalVariables` ## <a name=2022> version 2022 ##
* `mecaMAILx_ComputePDFPressure`
* `mecaMAILx_MassScaling` * General fix in Core, API, build process and documentation
* `postpro_FlushDuringComputation`, `postpro_3D_FlushDuringComputation` * Add `computation` macro submodule to provide the functions
* `RBDY3_GetDofStatus` * `initialize`
* `Integrator_InitQS` * `initialize_non_linear`
* `user_getWoodFrame` * `compute_one_step`
* `mecaMAILx_ ComputeFint` * `compute_one_step_non_linear`
* `inter_handler_xD_getNbRecup` was added (and corresponding getter in detection module removed) * Add new matlib version (2021-1)
* `inter_handler_xD_tgetIData` * Remove oldest matlib
* Read material file directly from matlib
Changes in API: * Use `density` as a field for `mecaMAILx` with matlib
* in `pre.rigidCylinder` `h` parameter is now the half height of cylinder * Specify field dependency to a parameter with a file
* Add management of cluster of `CYLND`
## <a name=2021> version 2021 ## * Quasi-static integrator for `mecaMAILx`
* Mass scaling of `mecaMAILx`
* General fix in Core, API and documentation * Use force instead of pressure within `nlgs_3D` solver for `CSASp` and `CSPRx`
* `CYLND` contactor now represent pill (cylinder capped with spheres) * Add a function to compute a PDF of pressure
* `CDCDx` contact detection has been fixed accordingly * Management of initial gaps or overlaps for `EXPO_CZM` laws
* Add an `ExternalModelHandler` allowing to define a use either *MatLib* or *demmefi* libraries * Possible flush of postpro files during computation
* in `pre.model` constructor, `is_external` now takes the value `no`, `MatL_` or `Demfi` * A post.py script to manage POSTPRO files
* Improving management of *POSTPRO* files in case of restart * `RecupRlocByPosition` for `CSPRx` contacts
* Improve *POSTPRO* files format: * Add internal variables values to display files
* all real fields use `ES` Fortran format instead of `D` * Max internal in contacts now default to 8 (instead of 6 before)
* time field is now written on 15 characters (against 14 beforehand) * Add access to wood orthotropic frame from `user` module
* standard file name format with step and body number on 7 digits * Add possibility to only compute internal forces in `mecaMAILx`
* Add macro: * First version of SP/PR detection
* `pre.writeDatbox` to drop all containers in DATBOX directory * HDF5 now store a version number to handle evolution of format
* `chipy.ReadDatbox` to read/load all files from DATBOX directory in one go * Access to a structured numpy array of all `this` interactions
* When reading a state from and HDF5 file, interactions as stored in `verlet` like for VlocRloc.OUT files * `inter_handler_xD_GetAll` now includes the `vloc` values (not displayed in paraview yet)
* Replacing functions: * Interaction type `T_inter` now use subcontactor id (`cdsci` and `ansci`) field instead of `icdver`, `ianal`, etc
* `xxxxx_StockRloc` -> `inter_handler_xD_stockRloc`
* `xxxx_RecupRloc` -> `inter_handler_xD_recupRloc` Fixes:
* Adding a lot of tutorial material as jupyter notebook * Fix VlocRloc ascii file output for some contacts where `lantac` was missing
* Adding a reader of DATBOX to generate pre container, have look to: * Remove unused `lantac` parameter from some VlocRloc ascii files
* `pre.readDatbox` * Fix COORDINATION_NUMBER postpro file
* `pre.readState` * Fix trim in discrete geometry and add extension management
* There is period of two months in which the internal parameter numbering changed for contactors and contact. If a hdf5 file as been generated before this parameters where stored inside the file, there is no way to know what parameter numbering to use. In case of problem, the `io_hdf5_fixVersion` might help. * Tidy Newton-Raphson routines management in TimeEvolution/overall module
* Fix cohesion status management in common plane detection
## <a name=2020> version 2020 ## * Fix bugs for `EXPO_CZM_SPRING` laws
* Area of contact computation when using `TriangleIntersections` detection of `PRPRx`
* General fixes in Core, API and documentation * Fix `DKPLx` contact detection
* Minimum required version of CMake is now 3.0 * Fix `CSASp` contact detection
* Minimum required version of gcc suite is now 4.5 * Fix in `BODY TRACKING` to really track `RBDY3` and not its first contactor
* Support of gcc 10 * Fix installation path when changing of `VENV_PATH` with cmake
* Support of ubuntu 20 and ArchLinux for building * Use CL/AL and CS/AS mesh id instead of global id in .vtu files
* Better handling of link with Siconos library
* Gmsh: Added functions to `chipy`:
* update `pre.readMesh` function to handle gmsh file formats 4.0 and 4.1 * `CSASp_AddReac`, `CSPRx_AddReac`
* add a `gmshutils` submodule to `pylmgc90`, available only if `gmsh` python module is available * `CSASp_AssumeOldFiles`
* MatLib: * `nlgs_3D_CutOpenCZM`
* Possibility to set material as nodal field * `nlgs_3D_ManageInterpenetratedCZM`
* as such `ExternalModels_CheckProperties` is now split in `ExternalModels_StoreProperties` and `xxxxMAILx_CheckProperties` * `CSxxx_GetAll`
* HDF5: * `mecaMAILx_GetInternalVariables`
* better detection * `mecaMAILx_ComputePDFPressure`
* add script to build and use for Anaconda on Windows * `mecaMAILx_MassScaling`
* add parameters association to `Help` group * `postpro_FlushDuringComputation`, `postpro_3D_FlushDuringComputation`
* add some tentative example of postprocessing the files in `examples/Tutorial/post` * `RBDY3_GetDofStatus`
* Interaction API: partial disambiguation of interaction accessors in inter_handler wrap modules using `t` to name `this` interaction: * `Integrator_InitQS`
* `getNb` -> `tgetNb` * `user_getWoodFrame`
* `getTactLawNb` -> `tgetTactLawNb` * `mecaMAILx_ ComputeFint`
* `getIdBodies`-> `tgetIdBodies` * `inter_handler_xD_getNbRecup` was added (and corresponding getter in detection module removed)
* `getInternals` -> `tgetInternals` * `inter_handler_xD_tgetIData`
* `setInternals` -> `tsetInternals`
* Huge changes in the management of cohesive laws: Changes in API:
* concerning the type of law: * in `pre.rigidCylinder` `h` parameter is now the half height of cylinder
* removed `TRI_CZM` law
* added `EXPO_CZM`, `IQS_EXPO_CZM`, `EXPO_CZM_SPRING` and `ISQ_EXPO_CZN_SPRING` ## <a name=2021> version 2021 ##
* added `GTN_CZM` and `GTN2_CZM`, but not usable in the solver yet
* management of mixity normal/tangent for these laws changed: * General fix in Core, API and documentation
* removed functions of `tact_behav` modules: `SetG1overG2`, `SetS1overS2` and `SetD1overD2` * `CYLND` contactor now represent pill (cylinder capped with spheres)
* instead all tact laws managing mixity must replace parameters `w` and `smax` with `s1`, `s2`, `G1`, `G2` (and maybe `dp1`, `dp2`) * `CDCDx` contact detection has been fixed accordingly
* pressure in crack is no longer set using contact law parameters thus: * Add an `ExternalModelHandler` allowing to define a use either *MatLib* or *demmefi* libraries
* `p` and `p0` are no longer parameters used to define contact laws * in `pre.model` constructor, `is_external` now takes the value `no`, `MatL_` or `Demfi`
* instead the `tact_behav_SetPressureParameters` function must be used * Improving management of *POSTPRO* files in case of restart
* needed to add `get_external_pressure` function in `CLALp` and `CSASp` functions * Improve *POSTPRO* files format:
* implementation in kernel interactions of TAZ (Temporary Array Zone) accessible with `nlgs_SetTemporaryVariable` and `nlgs_GetTemporaryVariable` * all real fields use `ES` Fortran format instead of `D`
* new examples added : * time field is now written on 15 characters (against 14 beforehand)
* `RIGID_2D/4POLYG_SHEAR_CYCLE_CZM` * standard file name format with step and body number on 7 digits
* `mecaMAILx_2D/2Q4_PressurePostCracking` * Add macro:
* `mecaMAILx_2D/InclusionPreDamage` * `pre.writeDatbox` to drop all containers in DATBOX directory
* Standardize dilatation of `DISKx`, `xKSID` and `POLYG` contactors: * `chipy.ReadDatbox` to read/load all files from DATBOX directory in one go
* Deletion of `DISPx` and `xPSID` now useless modules and all detection module associated * When reading a state from and HDF5 file, interactions as stored in `verlet` like for VlocRloc.OUT files
* all three contactors `DISKx`, `xKSID` and `POLYG` now have `SetXdilation`, `SetVdilatation` * Replacing functions:
* function `SetVther` and `SetXther` of `DISKx` and `POLYG` module deleted instead * `xxxxx_StockRloc` -> `inter_handler_xD_stockRloc`
* use of `get_Vd_xxxxx`, `set_Vd_xxxxx` and `set_Xd_xxxxx` function in contactor modules instead of `get_vth_xxxxx` and similar * `xxxx_RecupRloc` -> `inter_handler_xD_recupRloc`
* added example `examples/RIGID_2D/Couette` * Adding a lot of tutorial material as jupyter notebook
* Lot of correction in postprocessing modules * Adding a reader of DATBOX to generate pre container, have look to:
* `DOUBLET TORQUE EVOLUTION` -> `DOUBLETS TORQUE EVOLUTION` (in pre, file names and parameters) * `pre.readDatbox`
* `DOUBLET INTERACTION` -> `DOUBLET INTERACTIONS` (in pre, file names and parameters) * `pre.readState`
* removed `QUASI SLIDING CONTACT` * There is period of two months in which the internal parameter numbering changed for contactors and contact. If a hdf5 file as been generated before this parameters where stored inside the file, there is no way to know what parameter numbering to use. In case of problem, the `io_hdf5_fixVersion` might help.
* added the following commands to pre:
* `DENSE SAMPLE COMPACITY` ## <a name=2020> version 2020 ##
* `DISPLAY TENSORS`
* `AVERAGE VELOCITY EVOLUTION` * General fixes in Core, API and documentation
* `DRY CONTACT NATURE` * Minimum required version of CMake is now 3.0
* `WET CONTACT NATURE` * Minimum required version of gcc suite is now 4.5
* `PLPLx_ANALYSIS` * Support of gcc 10
* `COMPACITY EVOLUTION` * Support of ubuntu 20 and ArchLinux for building
* `TRIAXIAL COMPACITY` * Better handling of link with Siconos library
* `PRxxx DETECTION` * Gmsh:
* `INTER ANALYSIS` * update `pre.readMesh` function to handle gmsh file formats 4.0 and 4.1
* `VISIBILITY STATE` * add a `gmshutils` submodule to `pylmgc90`, available only if `gmsh` python module is available
* MatLib:
Other changes in API: * Possibility to set material as nodal field
* Changed `PT3Dx_SetReferenceRadius` to `PT3Dx_SetDisplayRadius` * as such `ExternalModels_CheckProperties` is now split in `ExternalModels_StoreProperties` and `xxxxMAILx_CheckProperties`
* Added `CSASp_Trim` function * HDF5:
* Added `CSASp_SetNonSymmetricDetection` * better detection
* Added `mecaMAILx_AddBodyForceToFext` function which allow to add a nodal acceleration on a meshed body * add script to build and use for Anaconda on Windows
* Added contact law `xQS_WET` * add parameters association to `Help` group
* Changed `CLALp_SetNonSymetricDetection` to `CLALp_SetNonSymmetricDetection` * add some tentative example of postprocessing the files in `examples/Tutorial/post`
* Fix bug when reading CSASp and CSPRx ascii files * Interaction API: partial disambiguation of interaction accessors in inter_handler wrap modules using `t` to name `this` interaction:
* `DISKx_GetRadius` now correctly use a contactor number in * `getNb` -> `tgetNb`
* From now on `ReadIniVlocRloc` MUST be called AFTER `LoadTactors` * `getTactLawNb` -> `tgetTactLawNb`
* `getIdBodies`-> `tgetIdBodies`
## <a name=2019> version 2019 ## * `getInternals` -> `tgetInternals`
* `setInternals` -> `tsetInternals`
* General fixes in Core, API and documentation * Huge changes in the management of cohesive laws:
* Add support of gitlab CI to run non regression tests * concerning the type of law:
* Add possibility to run examples using `Ctest` * removed `TRI_CZM` law
* Re-activation of windows cross-compiling script * added `EXPO_CZM`, `IQS_EXPO_CZM`, `EXPO_CZM_SPRING` and `ISQ_EXPO_CZN_SPRING`
* Fix in python API of ANN library * added `GTN_CZM` and `GTN2_CZM`, but not usable in the solver yet
* Add `getVerletAdjsz`, `getVerletIantac` and `getAllIdata` accessors to `inter_handler` modules to get contactor verlet map of interactions * management of mixity normal/tangent for these laws changed:
* Improve efficiency of VTK file writing when using vtk6 or higher * removed functions of `tact_behav` modules: `SetG1overG2`, `SetS1overS2` and `SetD1overD2`
* Add possibility to build LMGC90 using conda compiler on Windows and Linux * instead all tact laws managing mixity must replace parameters `w` and `smax` with `s1`, `s2`, `G1`, `G2` (and maybe `dp1`, `dp2`)
* Add support of `IQS_CLB_RGR` contact law in *pre* * pressure in crack is no longer set using contact law parameters thus:
* Add `UseCurrentNonuc0` to `PTPT2` module (like in 3D) and add corresponding test * `p` and `p0` are no longer parameters used to define contact laws
* instead the `tact_behav_SetPressureParameters` function must be used
## Impact on command scripts ### * needed to add `get_external_pressure` function in `CLALp` and `CSASp` functions
* implementation in kernel interactions of TAZ (Temporary Array Zone) accessible with `nlgs_SetTemporaryVariable` and `nlgs_GetTemporaryVariable`
* to add user fields when calling `WriteDisplayFiles` command, `tactor` keyword must be replaced by `tacts` * new examples added :
* `RIGID_2D/4POLYG_SHEAR_CYCLE_CZM`
* `mecaMAILx_2D/2Q4_PressurePostCracking`
## <a name=2018> version 2018 ## * `mecaMAILx_2D/InclusionPreDamage`
* Standardize dilatation of `DISKx`, `xKSID` and `POLYG` contactors:
* General fixes in Core, API and documentation * Deletion of `DISPx` and `xPSID` now useless modules and all detection module associated
* `T3xxx` mechanical finite element now use 3 Gauss points for stiffness computation * all three contactors `DISKx`, `xKSID` and `POLYG` now have `SetXdilation`, `SetVdilatation`
(instead of 1 before). To use only 1 Gauss points there are now `T3lxx` and `Te4lx` * function `SetVther` and `SetXther` of `DISKx` and `POLYG` module deleted instead
elements * use of `get_Vd_xxxxx`, `set_Vd_xxxxx` and `set_Xd_xxxxx` function in contactor modules instead of `get_vth_xxxxx` and similar
* Add `NARD_ROD` contact law of Artoni and Neveu * added example `examples/RIGID_2D/Couette`
* Improve management of big polyhedra * Lot of correction in postprocessing modules
* Improvement of paraview visualization files generations * `DOUBLET TORQUE EVOLUTION` -> `DOUBLETS TORQUE EVOLUTION` (in pre, file names and parameters)
* All `ReadIni` functions can now take in negative input value to read the *\*.LAST* * `DOUBLET INTERACTION` -> `DOUBLET INTERACTIONS` (in pre, file names and parameters)
files and write the next files from the absolute value of the input value * removed `QUASI SLIDING CONTACT`
* Update in MP modules, especially in read/write API * added the following commands to pre:
* A newer version of the MatLib is provided by default * `DENSE SAMPLE COMPACITY`
* `pre.lecture` real name is now `pre.readMesh` (but is still usable as is) * `DISPLAY TENSORS`
* Switch all docstrings and error/warning messages left in french to english * `AVERAGE VELOCITY EVOLUTION`
* `checkInteractiveCommand` now tries to write *MP_VALUES* files * `DRY CONTACT NATURE`
* `dim` parameters is now mandatory in function `pre.writeBulkBehav` * `WET CONTACT NATURE`
* In `pre.rigidJonc` and `pre.rigidPlan` last axes MUST be less than the others * `PLPLx_ANALYSIS`
* Automatic switch between HDF5 and old OUTBOX directory * `COMPACITY EVOLUTION`
and associated documentation added * `TRIAXIAL COMPACITY`
* Add `rigidsFromMesh3D` in the preprocessor * `PRxxx DETECTION`
* `inter_handler_xD_setInternal` accept either a vector to set all value at once, * `INTER ANALYSIS`
or an integer and a value to set only one component of the internal array * `VISIBILITY STATE`
* Add triangle intersection detection between `POLYR` contactors
* Fixes of periodicity management in 3D Other changes in API:
* `CLALp` module can now provide for each contact the value of strain * Changed `PT3Dx_SetReferenceRadius` to `PT3Dx_SetDisplayRadius`
of its nearest Gauss point * Added `CSASp_Trim` function
* Default use of MUMPs in 3D if available * Added `CSASp_SetNonSymmetricDetection`
* Added notebooks to explain how to add user field in Paraview files * Added `mecaMAILx_AddBodyForceToFext` function which allow to add a nodal acceleration on a meshed body
* Added function `RBDY3_CheckEquilibriumState` * Added contact law `xQS_WET`
* Cleaning of source code (optional non functional `WITH_NEW` compilation flag * Changed `CLALp_SetNonSymetricDetection` to `CLALp_SetNonSymmetricDetection`
and all associated code has been removed) * Fix bug when reading CSASp and CSPRx ascii files
* `DISKx_GetRadius` now correctly use a contactor number in
### Impact on command scripts ### * From now on `ReadIniVlocRloc` MUST be called AFTER `LoadTactors`
* It is now recommended to use: ## <a name=2019> version 2019 ##
```python * General fixes in Core, API and documentation
chipy.ReadIni(step) * Add support of gitlab CI to run non regression tests
chipy.ReadIniMpValues(step) * Add possibility to run examples using `Ctest`
chipy.WriteOut(freq) * Re-activation of windows cross-compiling script
chipy.WriteOutMvValues(freq) * Fix in python API of ANN library
``` * Add `getVerletAdjsz`, `getVerletIantac` and `getAllIdata` accessors to `inter_handler` modules to get contactor verlet map of interactions
which will read or write all stored data within the database, instead of specifying all type of files (`DOF`, `GPV`, `VlocRloc`, `MP_VALUES`). * Improve efficiency of VTK file writing when using vtk6 or higher
* Add possibility to build LMGC90 using conda compiler on Windows and Linux
* The function: * Add support of `IQS_CLB_RGR` contact law in *pre*
* Add `UseCurrentNonuc0` to `PTPT2` module (like in 3D) and add corresponding test
```python
chipy.overall_WriteOutMpValues ## Impact on command scripts ###
```
* to add user fields when calling `WriteDisplayFiles` command, `tactor` keyword must be replaced by `tacts`
is renamed:
```python ## <a name=2018> version 2018 ##
chipy.TimeEvolution_WriteOutMpValues
``` * General fixes in Core, API and documentation
* `T3xxx` mechanical finite element now use 3 Gauss points for stiffness computation
### Impact for **Core** developpers ### (instead of 1 before). To use only 1 Gauss points there are now `T3lxx` and `Te4lx`
elements
The function: * Add `NARD_ROD` contact law of Artoni and Neveu
```fortran * Improve management of big polyhedra
write_out_mp_values * Improvement of paraview visualization files generations
``` * All `ReadIni` functions can now take in negative input value to read the *\*.LAST*
is renamed: files and write the next files from the absolute value of the input value
```fortran * Update in MP modules, especially in read/write API
write_xxx_mp_values * A newer version of the MatLib is provided by default
``` * `pre.lecture` real name is now `pre.readMesh` (but is still usable as is)
* Switch all docstrings and error/warning messages left in french to english
## <a name=2017> version 2017 ## * `checkInteractiveCommand` now tries to write *MP_VALUES* files
* `dim` parameters is now mandatory in function `pre.writeBulkBehav`
* Better handling of Python 3 on MacOs * In `pre.rigidJonc` and `pre.rigidPlan` last axes MUST be less than the others
* Datafields `Reac_` and `Raux_`, used in accessors, are now forces. New fields `Ireac` and `Iaux_` have been added to access impulsions * Automatic switch between HDF5 and old OUTBOX directory
* Access to parameters value through variable in `chipy` module and associated documentation added
* Use of an `inter_handler_2/3D` interface module instead of accessing each interaction module separately * Add `rigidsFromMesh3D` in the preprocessor
* Add a `RecupRlocByPosition` for `CLALp` and `CSASp` contacts * `inter_handler_xD_setInternal` accept either a vector to set all value at once,
* A partial restart of the post-processing files or an integer and a value to set only one component of the internal array
* Any GMV related features has been deleted * Add triangle intersection detection between `POLYR` contactors
* Possibility to write **HDF5** files for *DOF*, *GPV* and *Interactions* * Fixes of periodicity management in 3D
* Add bindings to *clipper* library to help with the contact detection between polyhedra * `CLALp` module can now provide for each contact the value of strain
* Use of integer parameters instead of string for contact status in solver of its nearest Gauss point
* Several fixes on the timers (especially when involving multi-threading) * Default use of MUMPs in 3D if available
* Fix of minor bugs here and there * Added notebooks to explain how to add user field in Paraview files
* Added function `RBDY3_CheckEquilibriumState`
### Impact on command scripts ### * Cleaning of source code (optional non functional `WITH_NEW` compilation flag
and all associated code has been removed)
* `Reac_` and `Raux_` fields are not available through getPtrBodyVector (but `Ireac` and Iaux_` are)
* Old interactions accessors (like `DKDKx_GetNbDKDKx`) disappeared ### Impact on command scripts ###
* They are replaced by functions of the form `chipy.inter_handler_2D_getNb( inter_type_id )` where `inter_type_id` is an integer
* The `inter_type_id` is accessible through variables of the `chipy` module (`chipy.DKDKx_ID`): * It is now recommended to use:
### Impact for **Core** developpers ### ```python
chipy.ReadIni(step)
* `Reac` and `Raux` become `Ireac` and `Iaux` in the body type definition chipy.ReadIniMpValues(step)
* Many functions/accessor in detection modules disappeared. The main way to access to interaction is now through the **handlers** chipy.WriteOut(freq)
* Look into the `inter_handler_2/3D` module, the `public` sections list the available functions in each module. The first parameter is the type of interactions which is an integer from the `parameter` module. chipy.WriteOutMvValues(freq)
```
which will read or write all stored data within the database, instead of specifying all type of files (`DOF`, `GPV`, `VlocRloc`, `MP_VALUES`).
## <a name=2016> version 2016 ##
* The function:
There are several changes concerning the **pre** python module.
Remember that a script is provided in *lmgc90_user/src/addons* attempting to update a single script or all python scripts in a directory tree. ```python
chipy.overall_WriteOutMpValues
If *lmgc90_user/src/addons* is in your `$PATH` environment variable, run: ```
```shell
update_gen_2016.py gen_sample.py is renamed:
```
To update *gen_sample.py* script. ```python
You can replace the script name by a directory to try to update all python scripts in it. chipy.TimeEvolution_WriteOutMpValues
There are cases where the script may fail, here is the list of changes so that you can correct you scripts yourself: ```
* change of `pre_lmgc` submodule name to `pre` (submodule of `pylmgc90`) ### Impact for **Core** developpers ###
* in `tact_behav` constructor, argument name `type` is replaced by `law`
* in `model` constructor, argument name `type` is replaced by `physics` The function:
* in `material` constructor, argument name`type` is replaced by `materialType` ```fortran
* in `avatar.addContactors` method, argument name `type` is replaced by `shape` write_out_mp_values
* in `avatar.rotate` method, argument name `type` is replaced by `description` ```
* in `avatar.imposeDrivenDof` method, argument name `type` is replaced by `description` is renamed:
* in `postpro_command` constructor, argument name `type` is replaced by `name` ```fortran
* in `buildMesh2D` function, argument name `type_mesh` is replaced by `mesh_type` write_xxx_mp_values
* in `brick2D.deformableBrick` method, argument name `type` is replaced by `mesh_type` ```
* in `brick2D.explodedDeformableBrick` method, argument name `type` is replaced by `mesh_type`
* in `avatar` constructor, argument named `type` has been removed ## <a name=2017> version 2017 ##
* in `node` constructor, argument named `type` has been removed
* in `element` constructor, argument named `type` is replaced by `elem_dim` and the corresponding value must be the geometrical dimension of the element * Better handling of Python 3 on MacOs
* Datafields `Reac_` and `Raux_`, used in accessors, are now forces. New fields `Ireac` and `Iaux_` have been added to access impulsions
**** * Access to parameters value through variable in `chipy` module
* Use of an `inter_handler_2/3D` interface module instead of accessing each interaction module separately
| [back](./Home) | * Add a `RecupRlocByPosition` for `CLALp` and `CSASp` contacts
* A partial restart of the post-processing files
* Any GMV related features has been deleted
* Possibility to write **HDF5** files for *DOF*, *GPV* and *Interactions*
* Add bindings to *clipper* library to help with the contact detection between polyhedra
* Use of integer parameters instead of string for contact status in solver
* Several fixes on the timers (especially when involving multi-threading)
* Fix of minor bugs here and there
### Impact on command scripts ###
* `Reac_` and `Raux_` fields are not available through getPtrBodyVector (but `Ireac` and Iaux_` are)
* Old interactions accessors (like `DKDKx_GetNbDKDKx`) disappeared
* They are replaced by functions of the form `chipy.inter_handler_2D_getNb( inter_type_id )` where `inter_type_id` is an integer
* The `inter_type_id` is accessible through variables of the `chipy` module (`chipy.DKDKx_ID`):
### Impact for **Core** developpers ###
* `Reac` and `Raux` become `Ireac` and `Iaux` in the body type definition
* Many functions/accessor in detection modules disappeared. The main way to access to interaction is now through the **handlers**
* Look into the `inter_handler_2/3D` module, the `public` sections list the available functions in each module. The first parameter is the type of interactions which is an integer from the `parameter` module.
## <a name=2016> version 2016 ##
There are several changes concerning the **pre** python module.
Remember that a script is provided in *lmgc90_user/src/addons* attempting to update a single script or all python scripts in a directory tree.
If *lmgc90_user/src/addons* is in your `$PATH` environment variable, run:
```shell
update_gen_2016.py gen_sample.py
```
To update *gen_sample.py* script.
You can replace the script name by a directory to try to update all python scripts in it.
There are cases where the script may fail, here is the list of changes so that you can correct you scripts yourself:
* change of `pre_lmgc` submodule name to `pre` (submodule of `pylmgc90`)
* in `tact_behav` constructor, argument name `type` is replaced by `law`
* in `model` constructor, argument name `type` is replaced by `physics`
* in `material` constructor, argument name`type` is replaced by `materialType`
* in `avatar.addContactors` method, argument name `type` is replaced by `shape`
* in `avatar.rotate` method, argument name `type` is replaced by `description`
* in `avatar.imposeDrivenDof` method, argument name `type` is replaced by `description`
* in `postpro_command` constructor, argument name `type` is replaced by `name`
* in `buildMesh2D` function, argument name `type_mesh` is replaced by `mesh_type`
* in `brick2D.deformableBrick` method, argument name `type` is replaced by `mesh_type`
* in `brick2D.explodedDeformableBrick` method, argument name `type` is replaced by `mesh_type`
* in `avatar` constructor, argument named `type` has been removed
* in `node` constructor, argument named `type` has been removed
* in `element` constructor, argument named `type` is replaced by `elem_dim` and the corresponding value must be the geometrical dimension of the element
****
| [back](./Home) |
|:---------------:| |:---------------:|
\ No newline at end of file