- Notifications
You must be signed in to change notification settings - Fork90
G+Smo (pronounced gismo or gizmo) is a C++ library for isogeometric analysis (IGA). Geometry plus simulation modules aims at the seamless integration of Computer-aided Design (CAD) and Finite Element Analysis (FEA).
License
gismo/gismo
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
GGGGGGGGG GGGG GGGGGGGGG GGGGGG GGGGGG GGGGGGGGGG GGGG GGGG GGGG GGGGGG GGGGGG GGGG GGGG GGGG GGGGGGGGGGGG GGGGGGGGG G GGGG G GGGG GGGG GGGG GGGG GGGGGG GGGGGGGGGGGGG GGGGGGGGGG GG GGGG GG GGGG GGGG GGGGG GGGGG GGGGG GGGGGGGGGGGG GGGGGGGGG GG GGGGGG GGGG GGGG GGGG GGGG GGGG GGGG GGGG GG GGGG GGGG GGGG GGGG GGGGGGGGGG GGGG GGGGGGGGG GG GGG GGGG GGGGGGGGGG=========================================================================== Geometry plus Simulation modules ========== https://github.com/gismo ===========================================================================
System | Status | More information |
---|---|---|
CDash | Report results from all builds | |
Circle CI | MacOS XCode 14.3 (x86_64/arm64) | |
GitLab | Linux non-default configurations | |
GitHub Actions | Latest Linux/MacOS/Windows | |
GitLab-Inria | CI at Inria | |
OpenSUSE | Latest OpenSUSE build as part of thescience repository | |
GCC Farm | Status | Builders from the GCC Farm |
OBS | binaries | Upstream package builds for many Linux distributions |
Launchpad | binaries | Upstream package builds for Ubuntu distributions |
This README file contains brief information. More details are found inatheWiki pages.
The latest revision of the code can be obtained using git (via https):
git clone https://github.com/gismo/gismo.git
or using subversion:
svn co https://github.com/gismo/gismo/trunk gismo
or as a tar.gz or zip file:
- https://github.com/gismo/gismo/archive/stable.tar.gz
- https://github.com/gismo/gismo/archive/stable.zip
Operating systems:
- MS Windows
- Linux
- macOS
- FreeBSD
Configuration:CMake 2.8.12 or newer.
Compilers tested include recent versions of
- AMD Optimizing C/C++ Compiler
- AppleClang seehere for OpenMP support
- Clang
- GNU GCC
- Intel C++ compiler
- Mingw64
- MS Visual Studio C++
- PGI C/C++ only with
GISMO_WITH_OPENMP=OFF
Compilers known to not work
- Oracle Developer Studio fails to compile Eigen
- IBM XLC C/C++ fails to compile Eigen
Recommended:
The compilation requires configuration usingCMakeat a new, empty folder (in-source builds are disabled).
OnLinux/macOS: A Unix makefile exists in the root sourcefolder. Running
make
creates a sub folder namedbuild
andexecutes CMake and compilation inside that folder. Alternatively,choose your own build folder and execute CMake pointing to thesources.OnMS Windows:
To compile G+Smo natively, you can use MS Visual Studio which hasbuilt-in CMakesupportsince version 2015. Alternatively, you can run the
cmake-gui
tool(from an environment that is configured with your compiler) togenerate makefiles (or Visual Studio project files). Then executethe make tool to launch compilation. Alternatively, use theQtCreator GUI and open the CMakeLists.txt file on the root folder tocreate a QtCreator project.Another option is to installWindows Subsystem for Linuxwhich:
lets developers install a Linux distribution [...] and use Linux applications, utilities,and Bash command-line tools directly on Windows, unmodified, without the overhead ofa traditional virtual machine or dualboot setup.
Then you can download, compile and use G+Smo as if your were using a native Linux machine.
After successful compilation a dynamic library is created in./lib
andexecutable example programs are output at the./bin
subdirectory ofthe build folder.
Additionally, ifDoxygen is available onthe system one can execute (eg. on Linux):
make doc
to obtain the Doxygen documentation in HTML format. The main doxygenpage is at./doc/html/index.html
.
More information athttps://github.com/gismo/gismo/wiki
There is a number of optional modules that may be enabled.
Name | Description |
---|---|
gsOpenCascade | Extends functionality using OpenCascade |
gsElasticity | |
gsKLShell | |
gsStructuralAnalysis |
To enable e.g. gsSpectra and gsOpenCascade set the following option in CMake:
-D GISMO_OPTIONAL="gsSpectra;gsOpenCascade"
The available options are displayed at CMake configuration. Shortdescription and default setting follows:
CMAKE_BUILD_TYPERelease
Available values are the standard CMake build configurations: Debug,Release, RelWithDebInfo, MinSizeRel.
GISMO_COEFF_TYPEdouble
The arithmetic type to be used for all computations. Available optionsinclude double, long double, float.
GISMO_EXTRA_INSTANCEnot set
If set to one or more of the options available for GISMO_COEFF_TYPEthe G+Smo library is compiled with extra arithmetic types enabled.
GISMO_WITH_XDEBUGOFF
If set to ON additional debugging tools are enabled duringcompilation. These include checked iterators for GCC and MSVCcompilers and call stack back-trace printout when a runtime exceptionoccurs.
GISMO_BUILD_LIBON
If enabled a dynamic library is created using GISMO_COEFF_TYPEarithmetic. A target for a static library named gismo_static is alsocreated but not compiled by default.
GISMO_BUILD_EXAMPLESON
If enabled the programs in the examples folder are compiled, andexecutables are created in build-folder/bin.
GISMO_BUILD_UNITTESTSOFF
If enabled the tests in the unittests folder are compiled, and anexecutable is created in build-folder/bin.
GISMO_PLUGIN_AXLOFF
If enabled the plugin for Axel modeler is compiled (requires Axel).
gsOpennurbs
Extension for reading and writing of Rhinoceros' 3DM.
CMAKE_INSTALL_PREFIX (system dependent)
The location for installation of the library, e.g. /usr/local on someLinux systems.
The source tree consists of the following sub-folders:
- src
Contains all source files. Code is partitioned into modules. Currentlyeleven modules are present as sub-folders:
- gsCore
- gsMatrix
- gsNurbs
- gsHSplines
- gsModeling
- gsAssembler
- gsSolver
- gsPde
- gsTensor
- gsIO
- gsUtils
examples
Examples of usage, small programs and tutorials.
unittests
Unittests for some parts of the codebase.
filedata
Data files in the XML format the G+Smo can read and write.
extensions
Optional additional features that can be compiled along G+Smo.
plugins
The plugins for:
- Axel modeler
- Rhinoceros' 3DM
cmake
Cmake configuration files.
doc
Files related to doxygen documentation.
- openSUSE Science Project:https://en.opensuse.org/openSUSE:Science_Math
- FreeBSD port:https://www.freshports.org/math/gismo/
- Ubuntu upstream packages:https://launchpad.net/~g+smo/+archive/ubuntu/upstream
Wiki pages:
Bug reports:
Questions (Q&A):
Coordinator and maintainer: Angelos Mantzaflaris
See full list inour wiki pages
The G+Smo library is distributed under the Mozilla Public License v2.0. (seeLICENSE.txt).
About
G+Smo (pronounced gismo or gizmo) is a C++ library for isogeometric analysis (IGA). Geometry plus simulation modules aims at the seamless integration of Computer-aided Design (CAD) and Finite Element Analysis (FEA).