Releases: gismo/gsStructuralAnalysis
July 2025 Release (v25.07.0)
What's Changed
- Adoption of new domain iterators in G+Smo by @hverhelst in #25
- Improve examples for TFT by @hverhelst in #26
Full Changelog: v25.1.0...v25.07.0
January 2025 Release (v25.1.0)
What's Changed
- merge Xbraid module in the Dynamic Family of solvers by @hverhelst in #16
- Add tutorials by @hverhelst in #19
- hotfix cmake by @hverhelst in #20
- Fix warnings coming from GISMO_WITH_WARNINGS=ON by @hverhelst in #21
- Add static solver based on
gsOptimizerby @hverhelst in #22 - Tutorials by @hverhelst in #23
- Add tutorial documentation by @hverhelst in #24
Full Changelog: v23.12...v25.1.0
December 2023 Release (v23.12)
What is new?
Major changes with respect to the previous release. The release accompanies the v23.12 releases of gsUnstructuredSplines, gsKLShell, the v23.12.0 release of gismo and the publication of the PhD thesis of @hverhelst.
The highlights of this release are given below.
Re-structuring directories
A src folder has been included, with different directories for different source files. This has been done to create a better overview of the library. The following folders are introduced
src/gsALMSolversfor Arc-Length Methods and related classessrc/gsDynamicSolversfor dynamic solvers (work in progress)src/gsEigenSolversfor eigenvalue problems (linear buckling and modal analysis)src/gsStaticSolversfor static analysis, e.g. the Dynamic Relaxation and Newton-Raphson solversrc/gsStructuralAnalysisToolsfor other files
Furthermore, the examples directory has been split:
benchmarksfor benchmark problemsexamplesfor examples (and applications)solversfor black-box solvers taking XML files
Composition of static solvers (#15)
A new class, gsStaticComposite is introduced. This class allows to stack static solvers. An example:
// Define individual solvers
gsStaticDR<real_t> DRM(M,F,ALResidual);
gsStaticNewton<real_t> NRM(K,F,Jacobian,Residual);
// Put them in a container
std::vector<gsStaticBase<real_t> *> solvers{&DRM,&NRM};
// Solve: first solves DRM, then NRM
gsStaticComposite<real_t> solver(solvers);
solver.initialize();
solver.solve();
Add black-box solvers
The material matrices from gsKLShell can now be read from an XML file. This means that a problem definition can be fully specified from XML. The .cpp files in solvers/ take these XML files and can be used to solve (almost) any problem.
Adaptive Parallel Arc-Length Method (APALM) added (#12)
The code of the APALM has been added! The relevant files are gsAPALM*. The APALM is easily initialized from a gsALMBase class, e.g.
// Initialize an MPI communicator
gsMpiComm comm = mpi.worldComm();
// Define the ALM
gsALMCrisfield<real_t> ALM(Jacobian, ALResidual, Force);
// Define the data container for the APALM
gsAPALMData<real_t,solution_t> apalmData;
// Define the APALM
gsAPALM<real_t> APALM(&ALM,apalmData,comm),
More information can be found in
Verhelst, H. M., Den Besten, J. H., & Möller, M. (2023). An Adaptive Parallel Arc-Length Method. arXiv preprint arXiv:2303.01075.
Adaptive Meshing problems (#15)
Following the development of the Dual-Weighted Residual method in gsKLShell, three examples using gsStructuralAnalysis are added here:
More information can be found in
Verhelst, H. M., Mantzaflaris, A., Möller, M., & Den Besten, J. H. (2023). Goal-Adaptive Meshing of Isogeometric Kirchhoff-Love Shells. arXiv preprint arXiv:2307.08356..
Panel creator (#14)
A small project to make a creator for multi-patch stiffened panels, inspired by the gsNurbsCreator of gismo, has resulted in the gsPanelCreator! This class might be expanded in the future, depending on its use.
What is left?
- Clean the
examplesfolder - Create more
doxexamples - Add a dynamic solver family, using
gsDynamicBaseas a base class. This is similar to the family ofgsALMBase.
Full Changelog: v22.1...v23.12
January 2022 Release
- Static solves can be done by
gsStaticNewtonandgsStaticDR(Dynamic Relaxation method), both inheriting fromgsStaticBase- Provided base class for ALMs. All ALMs have a separate class now, and the singular point approach method is implemented in the base class.
- Eigenvalue problems (Buckling, Modal) have a base class as well, and
gsBucklingSolverandgsModalSolveronly provide a top-layer assigning the right matrices.
Full Changelog: v21.6...v22.1
June 2021 Release
This is the initial release of the gsStructuralAnalysis module within G+Smo! It provides the following features:
- Static, Modal, Buckling, Arc-Length and Time Integration solvers to solve many structural analysis problems at hand,
- Spectra is used for eigenvalue computations for large systems, e.g. to determine structural stability.
- Implementation of residuals and Jacobians via simple functions, in which user-defined sub-routines can be embedded,
- Many examples for structural analysis applications with the
gsKLShellmodule (v21.6) and a few usinggsElasticity