Releases: gismo/gsStructuralAnalysis
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/gsALMSolvers
for Arc-Length Methods and related classessrc/gsDynamicSolvers
for dynamic solvers (work in progress)src/gsEigenSolvers
for eigenvalue problems (linear buckling and modal analysis)src/gsStaticSolvers
for static analysis, e.g. the Dynamic Relaxation and Newton-Raphson solversrc/gsStructuralAnalysisTools
for other files
Furthermore, the examples
directory has been split:
benchmarks
for benchmark problemsexamples
for examples (and applications)solvers
for 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
examples
folder - Create more
dox
examples - Add a dynamic solver family, using
gsDynamicBase
as 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
gsStaticNewton
andgsStaticDR
(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
gsBucklingSolver
andgsModalSolver
only 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
gsKLShell
module (v21.6) and a few usinggsElasticity