Home
Name Modified Size InfoDownloads / Week
README.txt 2015-02-20 9.0 kB
igafem-v2.zip 2015-02-20 13.5 MB
nitsche-3D.zip 2014-04-18 45.2 kB
nitsche-2D.zip 2014-04-18 679.0 kB
xiga-udine.pdf 2013-05-28 3.4 MB
igafem-nguyen-v1.zip 2013-03-07 19.3 MB
Totals: 6 Items   36.9 MB 41
This is the README file for the 2nd version of the Isogeometric Analysis (IGA) Matlab code. (igafem-v2.zip)
The code supports one, two and three dimensional Poisson and linear elasticity problems, using Galerkin 
method and collocation. Extended IGA for hole, inclusion and crack modelling is also implemented using 
variational formulations.  Structural mechanics problems including Euler beam and Kirchoff plates/shells
(rotation-free formulations), Reissner-Mindlin plates are implemented as well.

The features of the code include:

- Global h-refinement using knot insertion is provided for one and two
dimensional meshes. 

- p- and k-refinement via Geopdes library are also supported.

- Extended IGA which is a Partition of Unity enrichment IGA for 2D traction-free
cracks is also implemented. Level sets are used to detect enriched nodes.
However, enrichment functions are defined in terms of standard geometry i.e.
not in terms of level sets. Holes and inclusions are also implemented.

- An ad hoc implementation for 3D cracks is also provided. In this case,
level sets are used both for enrichment detection and enrichment function evaluation.

- Visualization of displacements, stresses are done in Paraview by exporting the
results to a VTU file. Mesh for visualization purpose is Q4 in 2D and B8 in
3D where B8 denotes tri-linear brick elements.

- Collocation examples are implemented in the collocation folder, together with 
Galerkin method examples that use the same code structure

- Numerical integration: 

   (o) elements cut by cracks: sub-triangulation 
   (o) elements cut by circular holes/inclusions: adaptive sub-cells (used in Finite Cell Method)

- Fast assembly of FE stiffness using the triple sparse matrix format
(see files of which names end with FastAssembly in folder iga)

- Tsplines based on Bezier extraction operators. See folder bezier_extraction.
- Bsplines/NURBS basis functions are implemented using MEX files for better performances.

- Beams and plates/shells without rotation dofs. See folder structural_mechanics.
- Modal analysis. See folder structural-mechanics/.
- 2D/3D large displacement/rotation continuum elements (Total Lagrange).
- Disretisation and model coupling with Arlequin and Nitsche method (development version).
- Material Point Method 2D (development version)

Written by:

 Vinh Phu Nguyen, 
 Delft University of Technology, The Netherlands
 Cardiff University, Wales, UK
 nvinhphu@gmail.com and
 
 which uses MEX files implementation of Bsplines written by
 Robert Simpson 
 Cardiff University, Wales, UK

The code is maintained by the Marie Curie "Initial Training Network - Integrating numerical 
simulation and geometric design technology" (ITN-INSIST)

Contact:
Cosmin Anitescu
Bauhaus University - Weimar, Germany
cosmin.anitescu@uni-weimar.de

Before using the M files, you should first compile some C codes implemented as MEX files.
Open Matlab and in the command line, type the following commands (make sure your PC has C compiler
such as gcc and you did mex -setup in Matlab)

compile

Note: Some of the programs use compiled .mex files, which need to be compiled for your architecture.
The compiled versions for the 64-bit version of OS X, Linux and Windows are included in the C_files directory.
If you would like to compile the files yourself, use the compile.m script on OS X or Linux, or the 
compile_win.m script for Windows.

WORKING WITH VTS FILES

To visualize the VTS files produced by some of the scripts, it is recommended to use Paraview. It can be
freely downloaded from: http://www.paraview.org/ To visualize the output in ParaView, use the following
procedure:
    1. Open the .vts or .vtu file in ParaView
    2. Click on the "Apply" button on the left side of the screen
    3. Make sure under "Representation" that "Surface" or "Surface with Edges" is selected
    4. Under "Coloring" select displacement "U" or stresses "sigma" and the approriate measure 
        (i.e. "Magnitude", X-direction displacement, etc.)

To view the distorted shape, one can use the "Wrap by Vector" tool. It is the 9th icon in the 3rd row
of toolbar icons in Paraview 4.3.1 (it looks like a bent rectangle). Then under "Properties" select Vector
"U" and an appropriate "Scale Factor" (usually 10 is a good guess) then click again "Apply". 

There is also a tutorial available, which can be accessed from:
http://www.paraview.org/Wiki/The_ParaView_Tutorial


The package is structured into sub-folders which are described in what follows.

I. Main script files: one file for one problem. The names of the files are already
self explanatory. These files can be found in sub-folder "iga".

*******************************************************************
1. iga1D.m
2. igaLShaped.m
3. igaPlateCircularHole.m
4. igaPlateTension.m
5. igaTBeamLeastSquare.m
6. igaCurvedBeam.m
7. igaCurvedBeamFastAssembly.m
8. igaBracketMultiPatches.m
*******************************************************************

Files that start with "xiga" are for linear elastic fracture mechanics problems. 
These files can be found in folder "xiga".

*******************************************************************
1. xigaEdgeCrack.m
2. xigaEdgeShearCrack.m
3. xigaTwoEdgeCracks.m
4. xigaCenterCrack.m
5. xigaInfiniteCrackModeI.m
6. xigaInfiniteCrackModeII.m
7. xigaInfiniteCrackModeILM.m
8. xigaInfiniteCrackModeILeastSquare.m
9. xigaEdgeCrack3d.m
10. xigaInfiniteCrack3d.m
11. xigaEdgeCrackHalfModel.m

*******************************************************************

Some simple 3D elasticity problems are also included in the "iga" folder:

*******************************************************************
1. iga3dBeam.m
2. igaThickCylinder.m
3. igaPinchedCylinder.m
*******************************************************************

Collocation examples, together with a Galerkin implementation with the same code structure,
are located in the "collocation" folder:

*******************************************************************
1. poisson2d\igaAnnulusGalerkin.m
2. poisson2d\igaAnnulusGrevilleCol.m
3. poisson2d\igaAnnulusSuperCol.m
4. elasticity2d\igaPlateHoleGalerkin.m
5. elasticity2d\igaPlateHoleGalerkinNeu.m
6. elasticity2d\igaPlateHoleGrevilleCol.m
7. elasticity2d\igaPlateHoleGrevilleNeu.m
8. elasticity2d\igaPlateHoleSuperCol.m
9. elasticity2d\igaPlateHoleSuperColNeu.m
10. poisson3d\igaHemisphereGalerkin.m
11. poisson3d\igaHemisphereGrevilleCol.m
12. poisson3d\igaHemisphereSuperCol.m
*******************************************************************


II. Data files: control points, knots, orders. These files can be found in
folder "data".


*******************************************************************
1. plateHoleData.m
2. LShapedData.m
3. LShapedC1Data.m
4. plateC1Data.m
5. plateC2Data.m
*******************************************************************

III. Functions or procedures used in main scripts. They are located in different sub-folders depending on their functionalities.

Most of them have comments and quite self explanatory. I therefore
do not describe them here. For post-processing, the following routines are
used:

  1. plotStress1: compute displacements and stresses at nodes of a
visualization mesh (Q4 mesh) and export the data to a VTU file.
  2. plotStressXIGA: does just the same thing for XIGA problems.
  3. crackedMesh      : visualize cracked mesh as truly cracked domain (Q4 FEM
only)
  4. crackedMeshNURBS : the same but for high-order NURBS

IV. C_files: contains C implementation of some NURBS algorithms.

V. FEM problem files: start with "fem". These files can be found in folder
"fem".

These files are FEM codes to solve the same problems solved with IGA.
Used as reference solution to check IGA implementation.
Usually the FEM code reads GMSH mesh files (files with extension *.msh).
The *.msh files are created from the GMSH geometry files *.geo.

VI. Some stand alone scripts used to generate figures in the paper.
These files can be found in folder "examples".


1. circle.m:            a full circle by quadratic NURBS curve
2. curves1dWeights.m:   effects of weights on NURBS curves
3. deCasteljauExample.m
4. C_files/NURBSplotter.m: plot B-spline basis  functions 
5. discontinuity1d.m: an example showing the insertion of a knot p+1 times to create a discontinuity 
6. hRefinementExample.m: illustrate h-refinement for 1D B-splines

VI. Output files (folder "results")

   Output files include postscript files (*.EPS) and VTU files (*.vtu).
   VTU files can be processed by Paraview to plot displacements, stresses
   contours.

VII. The NURBS toolbox: in folder "nurbs-geopdes". Some routines in this toolbox are used for p- and k-refinement.

VIII. Finite Cell Method: simple implementation of the finite cell method with B-spline basis functions. The corresponding files are in folder "finite-cell-method".

IX. Multi-patch IGA code: compatible multi-patch IGA code is resided in folder "@patch2D".
Source: README.txt, updated 2015-02-20