Releases: 4C-multiphysics/4C
4C version v2026.1.0
What's Changed
Breaking Changes
- Remove deprecated CMake options by @sebproell in #1230
- Write proper csv as DBC monitor output by @c-p-schmidt in #1211
- 1134 always build prebuilt 4c image by @ppraegla in #1341
- Allow reading input fields directly from the (VTU-)mesh by @amgebauer in #1321
- Remove pre_locsys executable by @sebproell in #1413
- Write control files in YAML format by @sebproell in #1407
- [solver] Remove monolithic part of
amgnxnby @maxfirmbach in #1434 - Cleanup particle surface energy by @ppraegla in #1499
- Change defaults for RESULTSEVERY and RESTARTEVERY of structure module by @c-p-schmidt in #1534
- Remove old beamcontact input parameters by @davidrudlstorfer in #1549
- Move beam to beam contact to beaminteraction by @davidrudlstorfer in #1551
- [docker] Update Trilinos to 16.2.0 Release by @maxfirmbach in #970
- [solver] Move
Ifpackpreconditioner construction toStratimikosby @maxfirmbach in #1406 - Remove cardiovascular0d from old time integration framework by @amgebauer in #1646
- Remove redundant thermo vtk input parameters by @rjoussen in #1663
- Change the 4C CLI parser to CLI11 by @maxiludwig in #1490
Dependency Changes
- [docker] Update Trilinos to 16.2.0 Release by @maxfirmbach in #970
- [ArborX] Bump to v2.0.1 by @maxfirmbach in #1552
- [FFTW] Make it optional by @maxfirmbach in #1644
- Add gmsh as optional dependency by @rjoussen in #1645
- Update MIRCO hash and re enable tests by @RShaw026 in #1656
Miscellaneous
- Tutorial Preconditioning
solid(part 1) by @reginabuehler in #1242 - Add AAA (Adaptive Antoulas-Anderson) rational approximation implementation to ReducedLung by @bgoderbauer in #1236
- Add wrapper for
GGEV()fromLAPACKby @vovannikov in #1246 - [constraint framework] Add nullspace constraint submodel evaluator by @maxfirmbach in #1269
- Generalize projection for solving linear systems by @amgebauer in #1267
- Extract rebalancing from mesh input by @sebproell in #1270
- [beam3r] Implement nullspace computation method by @maxfirmbach in #1271
- Allow Discretization to fill from Mesh by @sebproell in #1273
- Cleanup MPI_Allreduce wrappers by @rjoussen in #1275
- Tutorial Preconditioning
fsi(part 2) by @reginabuehler in #1278 - [solver] Add diagonal pertubation to SPAI by @maxfirmbach in #1249
- Add node IDs as yaml data in DBC monitor output by @isteinbrecher in #1290
- Include new material for volume fractions in porofluid-pressure-based framework by @lkoeglmeier in #1110
- Allow data input from mesh file by @amgebauer in #1286
- Add remapping function for AD types by @isteinbrecher in #1316
- Allow to filter Mesh input by @sebproell in #1323
- Add full variant of beam-to-beam point couplings by @isteinbrecher in #1320
- Create 4C module particle by @ppraegla in #1329
- Add some vtu preprocessing information to documentation by @amgebauer in #1310
- Unify 4C Python project by @davidrudlstorfer in #1322
- Use own structure for beam-to-solid penalty law data by @isteinbrecher in #1378
- Add evaluation context to material interface by @amgebauer in #1371
- Add InterpolatedInputFields for point-based input field data by @amgebauer in #1349
- Create new reference documentation layout by @ischeider in #1368
- Enable Tensor and Symmetric Tensor input from yaml/input spec by @amgebauer in #1382
- Add FSI tutorial with monolithic approach by @reginabuehler in #1360
- CMake: allow specifying test dependency versions by @sebproell in #1414
- Add node-based interface aggregation capability for contact/meshtying problems preconditioned with MueLu by @PhilipOesterlePekrun in #878
- Improve input types for Kirchhoff beams by @isteinbrecher in #1402
- Introduce Teko as block preconditioner for ScaTra-Thermo-Interaction by @c-p-schmidt in #1143
- Introduce Teko as block preconditioner for Solid-ScaTra-Interaction by @c-p-schmidt in #1430
- [constraint_framework] Add partial nullspace constraint by @maxfirmbach in #1432
- Add beam-to-beam point couplings via CPP by @isteinbrecher in #1420
- Add sym. HA-product by @tuchpaul in #1474
- Allow setting fiber orientation with mesh data in the mixture module by @amgebauer in #1396
- Point coupling with Kirchhoff by @isteinbrecher in #1502
- Write vtk based output in contact modelevaluator by @c-p-schmidt in #1503
- Allow interactive mesh plots in documentation by @amgebauer in #1505
- Add a tutorial about vtu mesh input in our documentation by @amgebauer in #1512
- Allow for all types of beams in point couplings by @isteinbrecher in #1545
- Add spring dashpot condition for shell7p elements by @mairehenke in #1447
- Let prescribed prestretch strategy take a field by @amgebauer in #1578
- Allow reading bit arrays from vtu files by @amgebauer in #1579
- Allow det, inv, trace, etc on const TensorViews by @amgebauer in #1586
- [Trilinos] Move from Isorropia to Zoltan2 by @maxfirmbach in #596
- Add eigenvalue utilities for non-symmetric tensors (compute eigenvalues, obtain eigenvector to known eigenvalue) by @amgebauer in #1595
- Add direct gmsh input by @rjoussen in #1652
- Setup peridynamic interaction by @georghammerl in #1561
- Allow to specify integration rule for solid element evaluation in input file by @amgebauer in #1669
- [thermo] Enable
WRITE_INITIAL_STATEby @rjoussen in #1665 - Enable vtk output for thermo field by @rjoussen in #1676
Contributors
List of all contributors who authored, committed, reviewed, or commented on accepted pull requests for this release, sorted alphabetically.
-
Authors / Committers: @amgebauer @bgoderbauer @bwirthl @c-p-schmidt @davidrudlstorfer @dharinib98 @dragos-ana @eulovi @georghammerl @gilrrei @ischeider @isteinbrecher @knarfnitram @lauraengelhardt @lkoeglmeier @m-frey @mairehenke @maxfirmbach @maxiludwig @mayrmt @PhilipOesterlePekrun @ppraegla @reginabuehler @rjoussen @RShaw026 @sebproell @shervas @tuchpaul @vovannikov
-
Reviewers: @amgebauer @bgoderbauer @bwirthl @c-p-schmidt @davidrudlstorfer @dharinib98 @dragos-ana @eulovi @georghammerl @gilrrei @ischeider @isteinbrecher @knarfnitram @lauraengelhardt @lkoeglmeier @m-frey @mairehenke @maxfirmbach @maxiludwig @mayrmt @PhilipOesterlePekrun @ppraegla @reginabuehler @rjoussen @RShaw026 @sbrandstaeter @sebproell @slfuchs @tuchpaul @vovannikov
New Contributors
_Thanks to first-time contributors ...
4C version v2025.3.0
What's Changed
Breaking Changes
- Remove RedAirwayTissue problem type by @sebproell in #748
- Remove pre_exodus by @sebproell in #774
- Remove unused DebugWriter for FSI problems by @sebproell in #800
- Remove pseudo geometry type HERM2LINE by @sebproell in #891
- No longer accept .dat input by @sebproell in #907
- IsoNeoHooke: make mu an InputField by @sebproell in #920
- Use nested YAML for generated domain input by @sebproell in #1092
- CMake: document FOUR_C_CXX_ variables by @sebproell in #1135
Major changes
- YAML is the new standard input for 4C
- Tensor and
SymmetricTensorimplementation by @amgebauer in #862 InputFields for spatially varying input parameters- Runtime-output supports additional fields:
- Spring dashpot boundary condition by @c-p-schmidt in #956
- Reduced lung module by @bgoderbauer in #696
- Allow vtu mesh input by @amgebauer in #1195
Dependency changes
- [docker] Update Trilinos config and hash for #779 (NOX SingleStep solver modifications) by @vovannikov in #780
- Update ryml to version 0.9.0 by @sebproell in #949
- Add pybind11 as optional dependency by @sebproell in #1075
- Add optional dependency to VTK by @amgebauer in #1192
Miscellaneous
- Improve POINT COUPLING CONDITIONS by @ischeider in #512
- [deal.II] Converters for 4C discretization and vectors into deal.II equivalents by @sebproell in #626
- [Documentation] Introduce jinja templating for tutorials by @ischeider in #694
- [Trilinos] Move direct solver from Amesos to Amesos2 by @maxfirmbach in #662
- [LinAlg] Add FE_Graph capability to
Core::LinAlg::Graphby @maxfirmbach in #759 - Major rework of the solid-state battery tutorial by @c-p-schmidt in #769
- Implement dot product between rank 1 tensors by @amgebauer in #770
- Clean up PorofluidElastScatraBaseAlgorithm by @bwirthl in #803
- Add image for oldest supported dependencies by @sebproell in #811
- Convert test input files from .dat to .yaml by @davidrudlstorfer in #801
- Implement wrapper for Epetra import by @dharinib98 in #827
- Implement printing of tensors by @amgebauer in #854
- Generalize
dotandddotproduct for arbitrarily sized tensors by @amgebauer in #853 - Add validation of parsed values to InputSpecs by @sebproell in #852
- Add runtime output for micromaterial by @m-frey in #143
- Scalar interpolation class by @abhi-satheesh in #851
- InputField class to supply element-wise parameters by @sebproell in #866
- Implement wrapper for Epetra Export by @dharinib98 in #877
- InputSpec can store parsed values to structs by @sebproell in #873
- InputSpecBuilders::selection can store in structs by @sebproell in #884
- Use symmetric tensors in solid element evaluation by @amgebauer in #869
- Input field InputSpec to read local parameters by @maxiludwig in #890
- Allow to store input_field to structs by @sebproell in #904
- Extend installation section of the documentation by @ischeider in #885
- Implement SVD for tensors by @amgebauer in #898
- Allow FAD-types in tensors by @amgebauer in #902
- Implement utility functions for tensor derivative by @amgebauer in #908
- Implement energy embeddedmesh by @eulovi in #828
- Rework SymbolicExpression for better evaluation performance by @sebproell in #913
- Allow for beam-to-solid shell contact with KL shell by @isteinbrecher in #914
- Compile SymbolicExpression to bytecode by @sebproell in #916
- Quaternion interpolation by @abhi-satheesh in #876
- SymbolicExpression with compile-time variables by @sebproell in #919
- Add artery flow rate to function coupling by @bwirthl in #901
- CMake: build shared libraries by default by @sebproell in #925
- Use tensors in solid material evaluation by @amgebauer in #934
- Doc: recommendations for work on input files by @sebproell in #946
- InputSpec: write validators to metadata by @sebproell in #952
- Redistribute discret for point coupling conditions by @georghammerl in #775
- InputSpec for SymbolicExpression by @sebproell in #983
- Fix visualization of distributed moments for the SBIP approach (potential interaction between beams) by @davidrudlstorfer in #967
- Create wrapper for Epetra FE Vector by @knarfnitram in #980
- Redistribute an InputField according to element column map by @sebproell in #991
- Performance improvements for rank 4 tensors (GCC) by @amgebauer in #1002
- [thermo] Add conductivity runtime output by @maxfirmbach in #1016
- Implement Einstein's summation convention by @amgebauer in #999
- [solver] Recompute preconditioner due to linear solver stall by @maxfirmbach in #1031
- Schema validation for vectors by @sebproell in #1065
- Generalize norms evaluation for NOX vectors and reduce the use of
get_ref_of_epetra_vector()by @vovannikov in #1066 - Allow documentation of enum values in input by @sebproell in #1074
- Support real YAML as element input for EXODUS meshes by @sebproell in #1081
- Enable Teko solver for porofluid-elasticity-scatra problems with arteries by @bwirthl in #903
- Add pattern validator for input strings by @sebproell in #1136
- Let 4C B free* by @amgebauer in #961
- Add logical operators to symbolic expressions by @sebproell in #1164
- CMake: allow to specifiy required dependenices for tests by @sebproell in #1196
- Beaminteraction using Lagrange multipliers by @dharinib98 in #637
- Introduce new reduced_lung input by @maxiludwig in #1159
- Enable std::array as a supported InputSpec type by @lauraengelhardt in #1178
New Contributors
- @dharinib98 made their first contribution in #400
- @maxdinkel made their first contribution in #778
- @NoraHagmeyer made their first contribution in #839
- @m-frey made their first contribution in #143
- @abhi-satheesh made their first contribution in #851
- @marksidoro made their first contribution in #997
- @dependabot[bot] made their first contribution in #1049
Full Changelog: v2025.2.0...v2025.3.0
4C version v2025.2.0
What's Changed
Breaking Changes
- Make PROBLEMTYPE a required parameter by @sebproell in #376
- Convert some yes/no input values to non-boolean strings by @mayrmt in #424
- Clean up mortar input parameters by @mayrmt in #426
- Remove BACI symbolic link by @davidrudlstorfer in #505
- Remove old so3_poro implementation by @amgebauer in #513
- Remove old solid elements by @amgebauer in #518
- Convert and cleanup contact enums by @mayrmt in #521
- Simplify potential params by @davidrudlstorfer in #563
- Migrate pre_exodus to yaml by @sebproell in #632
- Throw if iterative linear solver does not converge by @mayrmt in #646
- Remove GEOMETRY input parameter by @sebproell in #670
- Update pre commit hooks by @davidrudlstorfer in #699
Major changes
- Removal of old, non-templated solid elements
- Remove elemag by @davidrudlstorfer in #494
- Reorganize our various docs by @sebproell in #523
- Allow to read real yaml as input by @sebproell in #316
- CMake: configuration of supported versions of a dependency by @sebproell in #593
- Warn when using a dat file in a 4C run by @sebproell in #601
Dependency changes
- Use fast ryml library instead of yaml-cpp by @sebproell in #257
- Add magic_enum dependency and allow parameter to take enums by @sebproell in #474
- Build an image with deal.II by @sebproell in #558
- Update MIRCO shape factors and git tag by @RShaw026 in #600
- Add zlib to cmake build process and update imcs cluster preset by @knarfnitram in #624
- Add Google Benchmark for micro-benchmark tests by @amgebauer in #621
- [ArborX] Update ArborX hash and adjust API by @maxfirmbach in #591
- [Trilinos] Update version in docker by @maxfirmbach in #659
- [docker] Update Trilinos config and hash by @maxfirmbach in #684
Miscellaneous
- Tag docker images as main instead of latest by @amgebauer in #247
- Allow 4C to convert dat to yaml by @sebproell in #382
- Migrate pre_exodus to yaml by @sebproell in #632
- Add 4C logo to readme by @davidrudlstorfer in #574
New Contributors
- @ischeider made their first contribution in #251
- @gilrrei made their first contribution in #341
- @PhilipOesterlePekrun made their first contribution in #127
- @vovannikov made their first contribution in #372
- @knarfnitram made their first contribution in #403
- @bwirthl made their first contribution in #446
- @georghammerl made their first contribution in #438
- @lkoeglmeier made their first contribution in #467
- @maxiludwig made their first contribution in #479
- @shervas made their first contribution in #497
- @RShaw026 made their first contribution in #600
- @tuchpaul made their first contribution in #602
- @danielwolff1 made their first contribution in #671
Full Changelog: v2025.1.0...v2025.2.0
4C version 2025.1.0
Thanks to all who have been involved in this release.