* 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
* 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