FEAT2 - Introduction, FAQ, Tutorial
Introduction
- General overview
- Directory structure
- Supported computer systems
- Example:
- Compiling/Executing the Poisson example in Linux
- Opening postprocessing files with Paraview
Language-specific discussions
- Some basic introduction to Fortran
- Links to the Fortran specification & language books
- Differences between Fortran and C/C++
Naming conventions in FEAT2
- Filename restrictions
- Source code indention
- Identifier rules for variables, constants and types
- Identifier rules for subroutines and functions
- Exceptions
Tutorial-based overview - Featflow2/tutorials/tutorial01
- tutorial001 - Hello world, Console output, string management, environment variables, command line parameters
- tutorial002 - Memory management
- tutorial003 - Supplementary routines: File IO, Data files, Parser, Timing, Random numbers,...
- tutorial004 - Data structures: Lists, Trees, Maps,...
- tutorial005 - Low level mathematics
- tutorial006 - Discretisation: Mesh creation, basic VTK output, basic matrix/vector assembly
- tutorial007 - Working with mesh regions
- tutorial008 - Extended matrix assembly, including nonlinear coefficients
- tutorial009 - Extended vector assembly, including nonlinear coefficients
- tutorial010 - Block-type matrix assembly for complex operators
- tutorial011 - Block-type vector assembly for complex operators
- tutorial012 - Mesh refinement
- tutorial013 - Working with analytical boundary definitions
- tutorial014 - Boundary and mesh data structures
- tutorial015 - Dirichlet boundary conditions
- tutorial016 - Basic 1-level linear solvers: CG, BiCGStab, Gauss Elimination
- tutorial017 - Working with multigrid solvers for linear systems
- tutorial018 - The collection structure and general objects (void*)
Overview about basic structures
- The mesh
- The boundary
- Discretisation structures
- Matrices and vectors
- Linear solver
- Postprocessing
FEAT2 programming techniques
- The "collection" - a multi-purpose data container
- Data sharing via memory data handles and template matrices
- Precalculation of constant matrices
- Linear solvers - everything is a preconditioner
- Error handling and aborting the program
- Memory leaks
- Dumping matrices/vectors
- Performance pitfalls
The L2 projection
- Mathematical background
- Mapping of mathematical objects into data structures
- Solution via a linear solver
- Postprocessing: Error analysis and VTK output
- The Q1~ element - DOFs are not necessarily point values
The poisson equation
- Mathematical background
- Mapping of mathematical objects into data structures
- Solution via a linear solver
- Postprocessing: Error analysis and VTK output
Part 2: Realisation of different boundary conditions
Part 3: Sorting of matrices/vectors
The convection-diffusion equation
- Mathematical background
- Mapping of mathematical objects into data structures
- Solution via a linear solver
- Postprocessing: Error analysis and VTK output
Part 2: Stabilisation techniques
Linear elasticity
- Mathematical background
- Discussion of boundary conditions
- Mapping of mathematical objects into data structures
- Solution via a linear solver
- Postprocessing: Error analysis and VTK output
The Stokes equations
- Mathematical background
- Discussion of boundary conditions
- Mapping of mathematical objects into data structures
- Solution via a linear solver
- Postprocessing: Error analysis and VTK output
Part 2: Discussion of boundary conditions
The Navier-Stokes equations
- Mathematical background
- Discussion of boundary conditions
- Mapping of mathematical objects into data structures
- Solution via a linear solver
- Postprocessing: Error analysis and VTK output