Changelog/Release Notes#

On this page we provide a summary of the main API changes, new features and examples for each release of Ratel.

Current main branch#

New features#

  • Enabled discontinuous spaces with the command line option -pressure_petscdualspace_lagrance_continuity 0 and similar.

  • Add mixed Neo-Hookean hyperelastic models in current configuration.

  • Add Kershaw mesh transformation for unit box mesh.

  • Add Weierstrass mms for BPs problems.

  • Add -ts_monitor_*_interval options to all custom -ts_monitor_* routines to limit output frequency.

  • Add block preconditioner for mixed Neo-Hookean hyperelastic models in initial configuration.

  • Add support for computing surface forces and centroids within a sub-region of a face label via -surface_force_face_[facename]_bounding_box.

  • Add block preconditioner for mixed Neo-Hookean hyperelastic models in current configuration.

  • Enabled discontinuous non-tensor space for pressure in mixed problem.

  • Add mixed Neo-Hookean hyperelastic models in initial configuration with perturbed Lagrange-multiplier method.

  • Add support for storing computed surface forces for each face in a separate file via -ts_monitor_surface_force_per_face ascii:[base filename].csv

  • Add block preconditioner for mixed Neo-Hookean hyperelastic models in initial configuration with perturbed Lagrange-multiplier method.

  • Add penalty method based platens

  • Add block preconditioner for mixed Neo-Hookean hyperelastic models in current configuration with perturbed Lagrange-multiplier method.

  • Support PCBJacobi, PCPBJacobi, and PCVPBJacobi for MATCEED.

  • Add preliminary MPM implementation, with material point integration, mesh-to-point and point-to-mesh projection, and libCEED BPs at points.

Internal#

  • Add PetscFECreateLagrangeFromOptions for more flexible control over PetscFE creation.

  • Refactor MMS support for maintainability and to allow runtime options.

  • Rename RatelModelType to RatelMethodType as FEM and MPM will use the same CeedQFunction source.

  • Rename RatelComputeMaxValues to RatelComputeMaxSolutionValues.

  • Add RatelViewMaxDiagnosticValuesByNameFromOptions for viewing the max diagnostic component value by names.

  • Replace RatelCeedOperatorApplyContext with CeedEvaluator that mirrors MatCEED for nonlinear or general purpose operators.

v0.3.0 (1 November 2023)#

New features#

  • Update strain energy function to the convex form for both Neo-Hookean and Mooney-Rivlin models.

  • Add mixed linear elasticity and Neo-Hookean hyperelastic models for incompressible materials.

  • Add linear plasticity with linear hardening model for small strains.

  • Add pressure boundary loading which is caused by liquids or gases on the surface of the solid structure.

  • Add flexible clamp, slip, traction, and platen boundary conditions with more complex time variance during a quasistatic or dynamic simulation.

  • Add robust surface force and surface centroid monitoring options.

  • Add command-line validation options for maximum displacement and per-face centroids and surface forces.

  • Add isochoric Ogden hyperelastic model in initial configuration.

  • Add mixed Ogden hyperelastic model in initial configuration.

  • Add isochoric Neo-Hookean model in initial configuration.

  • Add Mooney-Rivlin hyperelastic model in current configuration.

  • Add Coulomb friction capabilities to platen contact boundary conditions.

  • Add isochoric Mooney-Rivlin model in initial configuration.

  • Add CEED benchmark problems 1, 2, 3, and 4 for convergence testing and benchmarking.

  • Add Kelvin-Mandel notation pack and unpack to symmetric tensors functions.

  • Setup dynamic solver for mixed linear elastic and hyperelastic models.

  • Add isochoric Neo-Hookean model in current configuration.

  • Add density-dependent user-specified body forces which can be specified globally or on a per-material basis.

  • Add isochoric Ogden hyperelastic model in current configuration.

  • Add RatelCreateSubmatrix function to create Matshell block preconditioner for mixed-FEM.

  • Enable pMG preconditioning for the displacement block of mixed-FEM models.

  • Add isochoric Mooney-Rivlin hyperelastic model in current configuration.

Breaking changes#

  • Rename Ratel[TS,SNES,KSP]SetupPCMG to Ratel[TS,SNES,KSP]SetupPC for better accuracy.

  • Rename RatelSolverType, RatelMultigridType, and some function names for consistency.

  • Refactor p-multigrid support as registered PETSc PC; this change generated various API and command line option changes.

  • Rename material parameter contexts as follows:

    • RatelLinearElasticityParams

    • NeoHookeanPhysics to RatelNeoHookeanElasticityParams (alias of RatelLinearElasticityParams)

    • MooneyRivlinPhysics to MooneyRivlinElastictictyParams

  • Remove material-specific platen contexts

  • Rename cell-to-face surface force functions to be suffixed with CellToFace and -ts_monitor_surface_force to -ts_monitor_surface_force_cell_to_face to prevent accidental usage

  • Rename reaction force functions *ReactionForce* to *SurfaceForce* and -ts_monitor_reaction_force to-ts_monitor_surface_force

  • Deprecate -ts_monitor_reaction_force

  • Remove RATEL_FORCING_CONSTANT and associated CLI options -forcing constant and -forcing_vec

See the Using Ratel section for the updated command line options.

Maintainability#

  • Fixes to QFunctions and documentation for clarity and consistency.

  • Separate MatCeed logic for maintainability and future upstreaming to PETSc.

Performance#

  • Updates to setup to reduce setup time.

  • Updates to local vector usage to reduce memory footprint.

V0.2.1 (12 January 2023)#

Bugfix to make tet based tests optional in the test suite.

V0.2.0 (10 January 2023)#

Expanded features and material models.

New features#

  • Add RatelComputeSurfaceForces for computing final forces on surfaces, identified by DMPlex face id number.

  • Add support for computing Jacobians from strain energy density functional from residual evaluation via Automatic Differentiation with Enzyme-AD. Neo-Hookean material models provided in current and initial configuration.

  • Add support for platen boundary condition based upon Nitsche’s method.

  • Add support for restart from saved binaries of state vectors.

Breaking changes#

  • Update names and command line arguments for material models for consistency.

  • Use PETSc option options_file over redundant yml option in tests and examples; removed options_yml argument from RatelInit.

  • Docker images built and tested as part of CI process for latest main.

  • Update Boolean arguments -view_diagnostic_quantities and -ts_monitor_diagnostic_quantities to use viewer type.

  • Remove command line option -output_dir; this functionality is provided with setting the output filepath for the viewer via -view_diagnostic_quantities and -ts_monitor_diagnostic_quantities.

  • Remove RatelVectorView in favor of base PETSc functionality.

Maintainability#

  • Internal refactor around RatelMaterial, an object representing a region of the mesh given by a material model with consistent physical parameters. External behavior was not affected by this refactor.

v0.1.2 (15 April 2022)#

Bugfix for install paths in makefile.

v0.1.1 (14 April 2022)#

Bugfix for Mass QFunction source file relative path.

v0.1 (11 April 2022)#

Initial Ratel API. The Ratel solid mechanics library is based upon libCEED and PETSc. libCEED v0.10.1 or later and PETSc v3.17 or later is required.