sissa-mhpc-theory-and-practice-of-fem:博士和MHPC课程

  • Y6_364454
    了解作者
  • 74.9MB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • VIP专享
    资源类型
  • 0
    下载次数
  • 2022-05-09 17:35
    上传日期
1.有限元方法的理论与实践 这是数学分析,建模的SISSA博士轨道之间当然共享和应用程序(math.sissa.it)和高性能计算的硕士( )。 该课程遵循两条平行线:有限元方法论(研究生水平,〜20小时)和有限元方法实践(mhpc学生水平,〜20小时)。 本课程的目的是向学生提供用于有限元方法的高级分析工具,以及为实际实施部分提供的最新编程知识。 该理论的范围从基本的FEM和功能分析论据(例如Lax-Milgram,Cea和Bramble Hilbert引理)到更高级的主题,例如inf-up条件和后验误差分析。 练习部分的目的是使从事PDE数值分析的博士学位或MHPC学生能够使用现代C ++库实现并行运行的最新自适应有限元代码。 该实施将基于deal.II库( )。 您将学到什么: 高级有限元理论 如何使用现代的C ++ IDE来构建和调试代码 如何使用大型FEM库解决复杂
sissa-mhpc-theory-and-practice-of-fem-master.zip
  • sissa-mhpc-theory-and-practice-of-fem-master
  • slides
  • 00_course_presentation.pdf
    2.6MB
  • 07_poisson.pdf
    2.7MB
  • 05_dofs_and_Vh.pdf
    10.3MB
  • 03_Lagrangian_finite_elements.pdf
    16.9MB
  • 08_denis_lion_bramble_hilbert.pdf
    12.6MB
  • 01_Lax_Milgram.pdf
    13.8MB
  • 09_bramble_hilbert_dealii.pdf
    2MB
  • 02_fem_environment.pdf
    10.2MB
  • 06_mapping.pdf
    11.3MB
  • 04_tria_dh_fe.pdf
    5.3MB
  • scripts
  • indent
    441B
  • run_command_on_docker.sh
    159B
  • check_indentation.sh
    60B
  • docker
  • Dockerfile
    428B
  • .github
  • workflows
  • indentation.yml
    299B
  • README.md
    4.7KB
  • .clang-format
    4.6KB
  • LICENSE
    6.9KB
内容介绍
# 1. Theory and Practice of Finite Element Methods This is shared course between the SISSA PhD track on Mathematical Analysis, Modeling, and Applications (math.sissa.it) and the Master in High Performance Computing (www.mhpc.it). It is a course that follows two parallel lines: theory of finite element methods (graduate students level, ~20 hours) and practice of finite element methods (mhpc students levels, ~20 hours). The goal of the course is to provide to the students advanced analysis tools for finite element methods, as well as state-of-the-art programming knowledge for the actual implementation part. The theory ranges from basic FEM and functional analysis arguments, like Lax-Milgram, Cea, and Bramble Hilbert lemmas, to more advanced topics, like inf-sup conditions and a-posteriori error analysis. The goal of the practice part is to enable a PhD or MHPC student working on numerical analysis of PDEs to implement a state-of-the-art adaptive finite element code, that runs in parallel, using modern C++ libraries. The implementation will be based on the `deal.II` library (www.dealii.org). What you will learn: - Advanced Finite Element theory - How to use a modern C++ IDE, to build and debug your codes - How to use a large FEM library to solve complex PDE problems - How to properly document your code using Doxygen - How to use a proper Git workflow to develop your applications - How to leverage GitHub actions, google tests, and docker images to test and deploy your application - How hybrid parallelisation (threads + MPI + GPU) works in real life FEM applications ## Useful links Course main page, with schedule and up to date information - https://www.math.sissa.it/course/phd-course/theory-and-practice-finite-element-methods Course classroom on GitHub (for assignments/exercises) - https://classroom.github.com/classrooms/79978118-finite-element-methods-using-deal-ii-sissa-mhpc Course slides, notes, materials, and codes: - https://github.com/dealii-courses/sissa-mhpc-theory-and-practice-of-fem Course recordings: - https://bit.ly/2NY46LZ ## Course program A tentative detailed program is shown below (this will be updated during the course to reflect the actual course content) 1. Practical Introduction to Galerkin methods 2. Implementation of a serial Poisson solver 1. Introduction to tools (Python VS C++/IDE) 2. Paraview 3. [C++] Triangulation 4. [C++] Elementary FiniteElement types 5. [C++] Degrees of Freedom 6. [C++] ParameterHandler and ParsedFunction 7. [C++] Different types of boundary conditions 8. [C++] Curved geometries, high order mappings 3. Lax-Milgram Lemma, Cea’s Lemma, Bramble-Hilbert Lemma, Nitsche's trick 4. Construction of Manufactured solutions 1. [C++] Working on successively (uniformly) refined grids 2. [C++] Studying the convergence rates of FEM codes 3. [C++] ConvergenceTable 5. Petrov-Galerkin finite element methods (BNB condition) 6. Mixed and hybrid finite element methods 7. Ladyzhhenskaya, Brezzi, Babuska VS Lax Milgram 8. A priori error estimates for Mixed Problems 1. [C++] Mixed Laplace Problem (Raviar Thomas FEM) 2. [C++] Stokes problem 3. [C++] Convergence analysis of Stokes problem 9. A posteriori Error Analysis (Poisson) 1. [C++] Adaptive Finite Element Methods 2. [C++] Convergence Analysis for AFEM If time permits: 10. Time dependent and non-linear problems 1. [C++] Navier-Stokes 11. Parallelization techniques 1. [C++] Shared memory parallelization 2. [C++] Distributed memory parallelization 3. [C++] Parallel problems 4. [C++] From step-4 to step-40 12. Preconditioning techniques 1. [C++] Multigrid methods 2. [C++] Block preconditioning ## Assignments - [Git & GitHub fundamentals](https://classroom.github.com/a/jgOfbppY) - [Environment setup](https://classroom.github.com/a/NmHY4jke) - [Triangulation, DoFHandler, and FiniteElement](https://classroom.github.com/a/dtA1drjC) - [Poisson problem](https://classroom.github.com/a/07X-eFIP) - [Bramble-Hilbert Lemma in action](https://classroom.github.com/a/UP_uUQKS) <!-- 1. Drift Diffusion problems 1. [C++] Poisson + Strong advection term = instability 2. [C++] Implementation of SUPG 3. [C++] Implementation of GLS 4. [C++] Convergence study for Drift-Diffusion problems --> <!-- 13. Non-linear and time dependent problems 1. [C++] Exploiting SUNDIALS libraries 2. [C++] Navier-Stokes implementation with SUNDIALS --> <!-- 14. Variational Crimes, or Discontinuous Galerkin Methods 15. Stabilization of DG Methods 1. [C++] SIPG implementation 16. Hybridizable Discontinous Galerkin methods (HDG) 1. [C++] HDG implementation --> <!-- 19. Non-matching methods 1. [C++] Distributed Lagrange Multiplier methods 2. [C++] Immersed methods -->
评论
    相关推荐