Releases: gismo/gismo
Releases · gismo/gismo
G+Smo v25.07.0
v25.07.0 (https://github.com/gismo/gismo/releases/tag/v25.07.0)
-
NEW:
- Introducing: Composite maps -- #746
- Add Zenodo DOI -- #817
- JSON file support -- #816
- Introducing the expressions module -- #807
- Add
derivSingle_intofor rational splines; enrichgsNurbsCreatorwith multi-patch annulus and cylinder -- #823 - ORGANIZATIONAL CHANGE: The next releases will come from the
mainbranch. Thestablebranch will not change name, but serves as a pre-release development branch. All PRs go intostableand for every release we make a PR intomain.
-
IMPROVED:
- Documentation updates -- #772
- Add str methods to pybind11 classes -- #774
- Added 'override' keyword to overrides of (pure) virtual functions -- #781
- Introduce copy constructors for domain iterators -- #783
- Add option to enable/disable SAME_ELEMENT flag -- #786
- typos -- #785
- Implementing HB-Splines through THB-Splines -- #793
- Improve gsFiberMatrix and gsSparseMatrix iterator and add gsHTensorBasis loading methos -- #805
- Update CMakeLists.txt -- #809
- Sanitize includes -- #811
- Added override keywords where reported by compiler -- #812
- Added OFA support for Apple M4 -- #813
- Move static data (quadrature node/weight values) to anonymous namespace -- #819
- Introduce C++11 range-based for loops for domain (element) iterators. Fully parallel will openmp -- #820
- 🎨 1. add setter function for m_lambda1 and m_lambda2 -- #822
- XML support for Rational THB, some refactoring in gsXmlUtils and some minor fixes. -- #821
-
FIXED:
- Fixes for older cmake, remove opennurbs from default modules, remove unneeded asserts, update optimizer parameter strings -- #777
- CI builds wheel for pull requests -- #776
- fix gsHomain for manual levels -- #784
- Avoids exposing 'gismo' namespace in header file. -- #794
- Bug in interface assembly, after the changes of #779 -- #797
- Fix typo in gsFiberMatrix -- #800
- Fix gsExprAssembler::computePattern -- #801
- FIX: in THB-splines: orphan elements might cause truncation in levels without any active functions -- #803
- Fix
gsQuadrature::getAllNodeson boundaries -- #808 - Surface reparameterization conflict fix -- #798
- fix
abs_expr-- #814 - 🐛 bugfix for discontinuous curves in gsBSpline<>::merge -- #815
- 🐛 hotfix for the missing ternary_expr -- #825
-
API:
G+Smo v25.01.0
v25.01.0 (https://github.com/gismo/gismo/releases/tag/v25.01.0)
-
NEW:
- add optional/gsOptim/ -- #721
- Added a function to create a global mesh from a gsMultiPatch -- #724
- Installs a pkg-config file to be used by build systems that are not cmake. -- #736
gsWriteParaviewBezieraccepts agsMultiPatchand exports it as a single.vtufile containingVTK_BEZIER_QUADRILATERALelements. Currently this is implemented only for bivariate geometries. -- #740gsMultiPatch::BezierExtraction()implements Bezier extraction via quasi interpolation and has been brought over fromgismo/gsLsDynaand returns a multi patch consisting of all the bezier elements.. The structElementBlockand methodBezierOperatorare necessary for its operation. The struct has been 'hidden' inside theinternalnamespace andBezierOperatorhas been marked private. -- #740- gsRationalBasis::refine -- #751
- gsBSplineBasis::refine -- #751
- gsTensorBSplineBasis::refine_withTransfer, taking box matrix (needed for gsElasticity) -- #751
- gsTensorBSplineBasis::refine_withCoefs, taking box matrix (needed for gsElasticity) -- #751
- CMake macro for subdirectories (needed for gsPreCICE) -- #751
- options to
gsL2Projectionmethods -- #723 L2Projection_example.cpp-- #723- Pygismo docs -- #762
- Introduced new function for
getAllNodesto evaluate all quadrature nodes on a side of a geometry, geometries (gsGeometry) or multi-patch geometries (gsMultiPatch). -- #757 - Implemented support to obtain all quadratures points on specific sides (
patchSide). -- #757 - gsPreCICE module can run with stable G+Smo -- #757
- Introduction of
gsRationalTHBSplineBasis, gsRationalTHBSplinethe rational counterparts of the polynomial THB. -- #743 gsFesolution::insert(gsMatrix)is an generalisation of the existing 'insert(gsGeometry)' -- #743gsMultiPatch::degreeDecrease-- #743gsFileData::hasLabelsame ashasIdbut looks for a label string -- #743gsXml::searchLabelsame assearchIdbut for labels -- #743- Paraview write for boxes represented by matrices -- #712
- Nestedness check of knot vector-- #712
- Extra constructor for
gsTensorDomainBoundaryIterator-- #712 paraview_example.cppan example showcasing some of the different ways one can export data to view in ParaView -- #767paraview_example.doxthe accompanying doxygen page that explains the various functions used in the example. -- #767- Advanced fitting features -- #765
-
IMPROVED:
- Update ExprTk v0.0.3 by ArashPartow in -- #742
- Prevent overflow in searchLowerIndex -- #749
- Static functions of
gsParaviewDataSetmoved to a separate file,gsParaviewUtils. These deal mainly with formatting data to the .vtk format. -- #740 toDataArraynow also supports integers, matrices of integers, and custom xml tag attribute-value pairs. -- #740- A flag has been added to
inputOutput_example, which exports the geometry as bezier elements. -- #740 filedata/surfaces/teapot.xmlnow contains a multi patch definition. -- #740- Take out the example runs from GitLab CI, since the total GitLabl CI time was around 90 minutes (which is the time limit) hence some runs were failingdue to time limit. -- #751
- Improve geometry tutorial -- #770
- Support export of fields with more than 3 components (e.g. full stress tensor in 3D) to Paraview -- #748
- Remove warnings in
gsMultiPatch-- #759 - Remove
gsDebugVaringsBiharmonicExprAssembler-- #759 - One (overloaded) implementation for
gsL2Projection-- #723 - Streamlined handling of multi-sides and multi-bases for quadrature evaluation. -- #757
- Contact interfaces are skipped when using
matchInterfaceandrepairInterface-- #743 gsFileData::hasLabelappends the comment to the root node -- #743gsXmlnow exportgsMultiPatchinterfaces, marking the ones set as 'contact' with a label. -- #743- A map of gismo & xml IDs is used when exporting
gsMultiPatch/Basisfor consistency. -- #743 - Optimize file inclusions -- #766
- README badges -- #763
- Impove dramatically openmp parallelization of assembly -- #764
- Docs in Light Mode -- #769
-
FIXED:
- A gismo.pc file is installed to lib/pkgconfig/.
In meson, for example, in order to compile and link to an installed G+Smo package, you just have to add dependency('gismo') to your list of dependencies. -- #736 - Included intrin.h for MinGW compiler -- #739
- Add character replacement for sub-modules with special characters (CMakeLists.txt) -- #747
- Remove gsPreCICE since gsPreCICE is already a separate repo. by -- #750
- Fix compiler warnings coming from compilation with
GISMO_WITH_WARNINGS=ON-- #751 - Add cast operators to DScalar1 and DScalar2 types -- #756
- Fixed bug in Python bindings -- #760
swapingsRationalBasis: See this compilation error in Windows (appeared in gsUnstructuredSplines) -- #759- Fix the interface assembly process for cases where the mesh is non-conforming or contacting -- #758
gsFunction::newtonRaphson_implwhen used withwithSupportoption, used to (falsely) return values outside the support. Now the result is first bound to the support and then returned. -- #743- ID of
gsTensorDomainIterator-- #712 - Pybind build failure for fitting -- #768
- A gismo.pc file is installed to lib/pkgconfig/.
-
API:
- gsOptProblem::numConstraints() returned the number of lower bounds (which are box constraints). Now it returns the member m_numConstraints which is a user-defined flag. This keeps it functional for non-linear constraints, but the user has to set it explicitly. -- #721
- Replace
gsL2Projection::projectFunctionandgsL2Projection::projectGeometrywithgsL2Projection::project-- #723 - Make
gsBasis<T>::evalAllDersSingle_intowith argumentgsMatrix<T> &deprecated, and addgsBasis<T>::evalAllDersSingle_intowith argumentstd::vector<gsMatrix<T>>in line withevalAllDers_into. OnlygsBSplineBasis::evalAllDersSingle_intooverloads, but throws a warning for a bug anyways. -- #712
G+Smo v24.08.0
v24.08.0 (https://github.com/gismo/gismo/releases/tag/v24.08.0)
- NEW
- Add an automated script for publishing releases (#732)
- Base64 I/O for Paraview and XML
- Add a new example that shows how Expression Assembler + IETI framework can be used to solve systems of PDEs.
- Further examples and improvements for the cppyy bindings
- cppyy bindings, example on heat equation, including a Jupyter notebook
- gsBSpline::intersect: The gsBSpline class now features intersect, enabling it to calculate intersections between two B-spline curves in arbitrary dimension
- Add a function for matrix to .csv output
- Geometry transformation and function adaptor classes
- function gsGeometry::invertPointGrid
- IMPROVED
- CI scripts
- Python bindings
- 3dm output
- fast THB-Spline evaluation
- visitors use same element flag
- gsKnotVector::degreeDecrease - added boolean to handle interior knots
- igs format i/o, add multipatch output
- Optimize for Architecture (OFA) scripts (#678)
- FIXED
- in multidimensional Dirichlet BCs, Function on Dirichlet Boundary (#687)
- Intel MKL support
- in paraview collection output
- linker error: undefined reference (#707)
- issue #702 fix in gsTensorBasis::elementIndex
- CurveIntersection: Type fixes (#713)
- const correctness in gsBoundary.h (#715)
- mex files
- Change return type of gsTensorNurbs::weights() const to be a const reference
- inconsistency of types in generic assembler class
- include dependencies in header-only mode
G+Smo v23.12
v23.12.0 (https://github.com/gismo/gismo/releases/tag/v23.12.0)
-
NEW
- Floating point precision showcase, quadrature lookup guard
- Introduce gsFunction::recoverPoints, moved includes of third parties
- Biharmonic equation assembler
- Unittest gsGeometry_test
- Example file: precision_example
- Labels and file includes in XML file format
-
IMPROVED
- Python bindings (pygismo)
- XML file indenting
- Add unittests for spectra
- ACC3 scheme for boudaries
- gsFuncCoordinate is now more general
- Option to keep Sparsity Pattern when reseting the sparse matrix in gsExpAssembler
- Parallelization structs (gsParallel)
- Optional gsSpectra module
- Several fixes in expressions
-
FIXED
- CI scripts
- Header only and mpfr compilation
- Linking of MPFR with gcc
- Replace 'sprintf' by 'snprintf' as the former is marked deprecated
- Checking if the Eigen symlink already exists before creating a new one
- Static linking for pygismo
- Make G+Smo compile on Ookami (Fujitsu A64FX)
-
API
- Several changes in expressions
G+Smo v23.09
- NEW
- module system using module download at configure time (not using git submodules)
- module gsMSplines that allows to incorporate general spline spaces over multipatch geometry
- module gsOptimizer for solving optimization problems, featuring gradient descent, HLBFGS, etc
- initial module gsPreCICE
- python bindings using pybind11 for a basic subset of G+Smo
- interface and boundary integrals are added to gsExprAssembler
- unrefinement functions added to hierarchical splines
- Krylov solvers gsBiCgStab and gsMinResQLP added
- p-multigrid method added
- Converting meshes to linear multipatches added (#592)
- add gsParaviewDataSet and gsParaviewCollection (#604) for better interaction to Paraview (#572)
- new mesh class using halfedges
- new domain parameterization techniques (#624)
- Newton-Cotes (commit 8ff2ee1) and patch-wise (#435) quadrature rules
- Handling of boundary labels in gsMultiPatch XML reads (#591)
- IMPROVED
- optimize for achitecture scripts
- Expresesion assembler is greatly improved, including handling non-linear problems
- Several new geometries added in the gsNurbsCreator
- CI tests on various platforms, improved docker support
- OpenCascade for CAD file format I/O
- Spectra eigenvalue solvers
- gsIeti module
- Haussdorf distance added in gsGeometry (#611)
- FIXED
- bug fix in gsTensorNurbs::insertKnot() (#589)
- namespace problem when G+Smo is used aside to other Eigen library versions
- fixed I/O from Parasolid and 3dm
- API
- Minimum C++ version compatibility is now C++11
- gsMultiBasis uses the full NURBS basis by default (commit 1a5ff6f)
- Add small functions needed for the gsStructuralAnalysis and gsKLShell
- Several API changes in expressions
- Eigen library version used is now 3.4.0
- ExprTk library updated
G+Smo v21.12
- NEW
- Change versioning scheme to YEAR.MONTH
- New docker builders
- Added submodule system with automated download and deployment
- New optional submodules: gsElasticity, gsExaStencils, gsCodiPack, gsCompFlow, gsStructuralAnalysis, gsKLShell, gsMultiPrecision, gsSpectra, gsOpenCascade, gsUnum
- Added reader for IGES files
- New example files and codes: gsMakeMultiPatch, ieti_example, ieti2_example, kirchhoff-Love_example, quadrature_example, quasiInterpolation_example, constrained_fitting
- Few new assemblers and better patch interface computations
- New modules included in the sources: gsIeti module, gsMsplines module
- IMPROVED
- Improved FindXX.cmake and other CMake scripts
- Better unit-tests
- Advanced Doxygen documentation
- Better CI testing on several platforms (added gitlab-ci, Jenkins, upgraded ctest_script.cmake)
- Removed deprecated classes (eg. gsGeometryEvaluator,gsNorms)
- Fix many warnings and other issues
G+Smo v0.8.4 Alpha
- NEW
- gsParametrization
- gsHalfEdgeMesh
- Matlab plugin
- MultiPrecision extension
- Automated submodule system
- Isogeometric preconditioners for spline patches
- IMPROVED
- gsOptionList, added MultiInt
- Many vectors now have a reserve before call of push_back
- External codes are downloaded at configure time
- Remove gsFunctionSet::compute(const gsMapData & in, gsFuncData & out)
- Remove unimplemented gsBulk::toMesh and gsVolume::toMesh
- Multiple arithmetic type adaptors are included in gsFunctionExpr
- Configurable file-write precision
- Doxygen documentation
- FIXED
- gsMesh, fixed gsMesh::cleanMesh, fixed copy constructor
- -Wextra and -Wunused_parameter Warnings
- Several bug-fixes
G+Smo 0.8.3 Alpha
- NEW
- Changelog file
- Kronecker product of matrices
- Gauss-Lobatto rules
- Expression assembler
- Multigrid with standard smoothers
- Spectra plugin for sparse eigenvalue problems
- IMPROVED
- Ctest and cmake scripts
- Unittest framework, made unittest++ external package
- Templatized iterative solvers
- File handling using gsFileManager
- Zlib external handling (option to use system installed dynamic library)
- FIXED
- OpenMP features (Pardiso options, use in assemblers)
- Memory and pointer handling
- Performance bug in gsFitting
G+Smo 0.8.2 Alpha
This maintenance release includes many improvements and performance updates, as well as some restructuring.
G+Smo 0.8.1 Alpha
This maintenance release includes many fixes and performance updates, as well as some restructuring of the class hierarchy.