G+Smo
24.08.0
Geometry + Simulation Modules
|
This example solves a linear shell problem on a multi-patch using the gsThinShellAssembler and the Unstructured splines module module. The goals of the tutorial are the following:
For detailed information about the construction of gsThinShellAssembler and gsMaterialMatrixBase, please consult the tutorial Tutorial: Linear Kirchhoff-Love shell analysis.
The problem to be solved corresponds to the hyperboloid shell example from [1].
Firstly, the geometry is loaded in the same way as we load a geometry in Tutorial: Linear Kirchhoff-Love shell analysis. To be sure that our geometry has interfaces and boundaries, we compute its topology:
Refinement and elevation of the geometry (and the basis) are performed on the multi-patch geometry as is. This is the same as in Tutorial: Linear Kirchhoff-Love shell analysis.
To perform isogeometric analysis on the multi-patch geometry and a smooth corresponding multi-basis, we will use the gsMappedBasis and gsMappedSpline. These objects use a locally defined (non-smooth) basis and a sparse mapping matrix. The smooth basis is defined using the D-Patch construction from [2], available in G+Smo using gsDPatch. The D-Patch is constructed on the gsMultiBasis belonging to our original geometry.
The construction of the smooth basis and the corresponding geometry is done as follows:
The boundary conditions and external forces correspond to the hyperboloid shell case from [1], i.e. one edge of the hyperboloid is fully fixed. The boundary conditions are consequently applied to patch 0 and 1. See Boundary conditions and loads for more details on applying boundary conditions.
Similarly, we define a surface force corresponding to the benchmark problem
The configuration of the material matrix and the shell assembler is the same as in Tutorial: Linear Kirchhoff-Love shell analysis, just with different material parameters, corresponding to the benchmark problem in [1].
Assembly of the problem, as well as solving it, is the same as in Tutorial: Linear Kirchhoff-Love shell analysis.
Construction of the solution works slightly different when a gsMappedBasis is used for analysis. Instead of storing the solutions in a gsMultiPatch, we now store them in a gsMappedSpline. To define the deformed geometry on top of the original geometry, one can use the gsFunctionSum class, which basically evaluates two functions on a parametric point, and sums their values. The full code for the construction of the deformed geometry is here:
As can be seen in the following snippet, the constructed solution object can be used for evaluation:
And for visualization:
[1] Bathe, Klaus-Jürgen, Alexander Iosilevich, and Dominique Chapelle. "An evaluation of the MITC shell elements." Computers & Structures 75.1 (2000): 1-30.
[2] Toshniwal D, Speleers H, Hughes TJ. Smooth cubic spline spaces on unstructured quadrilateral meshes with particular emphasis on extraordinary points: Geometric design and isogeometric analysis considerations. Computer Methods in Applied Mechanics and Engineering. 2017 Dec 1;327:411-58.
Here is the full file linear_shell_multipatch.cpp
. Clicking on a function or class name will lead you to its reference documentation.