Skip to content

Releases: gismo/gismo

G+Smo v25.07.0

13 Jul 16:57
3cd33ad

Choose a tag to compare

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_into for rational splines; enrich gsNurbsCreator with multi-patch annulus and cylinder -- #823
    • ORGANIZATIONAL CHANGE: The next releases will come from the main branch. The stable branch will not change name, but serves as a pre-release development branch. All PRs go into stable and for every release we make a PR into main.
  • 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::getAllNodes on 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:

    • Improving domain iteration -- #779
    • Follow-up of domain iterations -- #782

G+Smo v25.01.0

09 Jan 08:36
ee6871d

Choose a tag to compare

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
    • gsWriteParaviewBezier accepts a gsMultiPatch and exports it as a single .vtu file containing VTK_BEZIER_QUADRILATERAL elements. Currently this is implemented only for bivariate geometries. -- #740
    • gsMultiPatch::BezierExtraction() implements Bezier extraction via quasi interpolation and has been brought over from gismo/gsLsDyna and returns a multi patch consisting of all the bezier elements.. The struct ElementBlock and method BezierOperator are necessary for its operation. The struct has been 'hidden' inside the internal namespace and BezierOperator has 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 gsL2Projection methods -- #723
    • L2Projection_example.cpp -- #723
    • Pygismo docs -- #762
    • Introduced new function for getAllNodes to 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, gsRationalTHBSpline the rational counterparts of the polynomial THB. -- #743
    • gsFesolution::insert(gsMatrix) is an generalisation of the existing 'insert(gsGeometry)' -- #743
    • gsMultiPatch::degreeDecrease -- #743
    • gsFileData::hasLabel same as hasId but looks for a label string -- #743
    • gsXml::searchLabel same as searchId but for labels -- #743
    • Paraview write for boxes represented by matrices -- #712
    • Nestedness check of knot vector-- #712
    • Extra constructor for gsTensorDomainBoundaryIterator -- #712
    • paraview_example.cpp an example showcasing some of the different ways one can export data to view in ParaView -- #767
    • paraview_example.dox the 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 gsParaviewDataSet moved to a separate file, gsParaviewUtils. These deal mainly with formatting data to the .vtk format. -- #740
    • toDataArray now 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.xml now 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 gsDebugVar in gsBiharmonicExprAssembler -- #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 matchInterface and repairInterface -- #743
    • gsFileData::hasLabel appends the comment to the root node -- #743
    • gsXml now export gsMultiPatch interfaces, marking the ones set as 'contact' with a label. -- #743
    • A map of gismo & xml IDs is used when exporting gsMultiPatch/Basis for 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
    • swap in gsRationalBasis: 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_impl when used with withSupport option, 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
  • 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::projectFunction and gsL2Projection::projectGeometry with gsL2Projection::project -- #723
    • Make gsBasis<T>::evalAllDersSingle_into with argument gsMatrix<T> & deprecated, and add gsBasis<T>::evalAllDersSingle_into with argument std::vector<gsMatrix<T>> in line with evalAllDers_into. Only gsBSplineBasis::evalAllDersSingle_into overloads, but throws a warning for a bug anyways. -- #712

G+Smo v24.08.0

30 Aug 22:06

Choose a tag to compare

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

31 Dec 17:05

Choose a tag to compare

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

07 Sep 14:27

Choose a tag to compare

  • 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

02 Dec 09:54

Choose a tag to compare

  • 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

19 Sep 12:46

Choose a tag to compare

G+Smo v0.8.4 Alpha Pre-release
Pre-release
  • 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

18 May 10:11

Choose a tag to compare

G+Smo 0.8.3 Alpha Pre-release
Pre-release
  • 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

17 Nov 08:38

Choose a tag to compare

G+Smo 0.8.2 Alpha Pre-release
Pre-release

This maintenance release includes many improvements and performance updates, as well as some restructuring.

G+Smo 0.8.1 Alpha

08 Aug 10:45

Choose a tag to compare

G+Smo 0.8.1 Alpha Pre-release
Pre-release

This maintenance release includes many fixes and performance updates, as well as some restructuring of the class hierarchy.