All Projects → modern-fortran → Tsunami

modern-fortran / Tsunami

Licence: mit
A parallel shallow water equations solver

Programming Languages

fortran
972 projects

Labels

Projects that are alternatives of or similar to Tsunami

Awesome Python Primer
自学入门 Python 优质中文资源索引,包含 书籍 / 文档 / 视频,适用于 爬虫 / Web / 数据分析 / 机器学习 方向
Stars: ✭ 57 (-25%)
Mutual labels:  book
Funbook Old
I have a dream, to be a novelist someday.
Stars: ✭ 65 (-14.47%)
Mutual labels:  book
Patterns
Complete catalog of all classical patterns in the Archimate language
Stars: ✭ 70 (-7.89%)
Mutual labels:  book
Awesome Vehicle Security And Safety
🚗 A curated list of resources for learning about vehicle security and safety.
Stars: ✭ 59 (-22.37%)
Mutual labels:  book
Nlp Py 2e Zh
📖 [译] Python 自然语言处理 中文第二版
Stars: ✭ 62 (-18.42%)
Mutual labels:  book
Livro Nodejs
Livro de NodeJS
Stars: ✭ 68 (-10.53%)
Mutual labels:  book
Bookdown Crc
A minimal example of using bookdown to write a book for Chapman & Hall/CRC
Stars: ✭ 50 (-34.21%)
Mutual labels:  book
The Python Standard Library By Example
《Python3 标准库》电子书和配套代码 "The Python Standard Library by Example" ebook and source code 一本又厚又全的讲解Python3标准库的书籍(1000多页)适合当作字典参考或者闲暇时慢慢阅读。
Stars: ✭ 74 (-2.63%)
Mutual labels:  book
Novel Plus
小说精品屋-plus是一个多端(PC、WAP)阅读、功能完善的原创文学CMS系统,由前台门户系统、作家后台管理系统、平台后台管理系统、爬虫管理系统等多个子系统构成,支持多模版、会员充值、订阅模式、新闻发布和实时统计报表等功能,新书自动入库,老书自动更新。
Stars: ✭ 1,122 (+1376.32%)
Mutual labels:  book
21 Recipes
📕 An R/rtweet edition of Matthew A. Russell's Python Twitter Recipes Book
Stars: ✭ 69 (-9.21%)
Mutual labels:  book
Programming Basics Book Csharp Bg
Textbook for the "Programming Basics" course @ SoftUni (C#, Bulgarian)
Stars: ✭ 59 (-22.37%)
Mutual labels:  book
Rust Cookbook Zh
🇨🇳翻译: <rust-cookbook> Rust 生态系统 crate包的良好实践合集 ❤️ 校对 ✅
Stars: ✭ 62 (-18.42%)
Mutual labels:  book
Real Time Rendering 3rd Cn Summary Ebook
📘 电子书 -《Real-Time Rendering 3rd》提炼总结 | 全书共9万7千余字。你可以把它看做中文通俗版的《Real-Time Rendering 3rd》,也可以把它看做《Real-Time Rendering 3rd》的解读版与配套学习伴侣,或者《Real-Time Rendering 4th》的前置阅读材料。
Stars: ✭ 1,159 (+1425%)
Mutual labels:  book
Study
Algorithm / Book Reviews / Interview / ETC
Stars: ✭ 58 (-23.68%)
Mutual labels:  book
Learn Vim
Vim 实操教程(Learning Vim)Vim practical tutorial.
Stars: ✭ 1,166 (+1434.21%)
Mutual labels:  book
Gobyexample
Go by Example 通过例子学 Golang
Stars: ✭ 1,066 (+1302.63%)
Mutual labels:  book
The Road To Learn React Portuguese
The Road to Learn React - Tradução para o Português
Stars: ✭ 67 (-11.84%)
Mutual labels:  book
Qt 5 And Opencv 4 Computer Vision Projects
Qt 5 and OpenCV 4 Computer Vision Projects, published by Packt
Stars: ✭ 72 (-5.26%)
Mutual labels:  book
Typescript Book
《浅谈 TypeScript》在线电子手稿
Stars: ✭ 72 (-5.26%)
Mutual labels:  book
Spring Boot Building Api Backend
Code of the 'Practical Guide to Building an API Back End with Spring Boot' book
Stars: ✭ 69 (-9.21%)
Mutual labels:  book

tsunami

A parallel tsunami simulator. Companion running example for Modern Fortran: Building Efficient Parallel Applications.

Organization

  • Chapter 2: We implement our first working solver which solves for linear advection of a wave in one dimension. First encounter with declaration, variables, loops, branches, arithmetic, and writing to console.
  • Chapter 3: We refactor our program from Chapter 2 to use procedures -- a finite difference function and a subroutine to set initial conditions.
  • Chapter 4: We refactor our program from Chapter 3 to define the procedures in external modules. We use this opportunity to augment the simulator to solve for non-linear gravity waves.
  • Chapter 7: We parallelize the program from Chapter 4 using coarrays and observe the speed up.
  • Chapter 8: We refactor our program from Chapter 7 to model our physical quantities (water height and velocity) using a derived type, and implement common arithmetic operations as type-bound methods.
  • Chapter 10: We continue working on the code from Chapter 9 and overload the assignment operator to automatically synchronize the data across parallel images on every assignment.
  • Chapter 12: In the final chapter, we revisit the parallel code from Chapter 10 and explore how Fortran 2018 Teams, Events, and Collectives can be used for some more advanced parallel patterns.

Getting started

Get the code

You can get the latest code by cloning the master branch:

git clone https://github.com/modern-fortran/tsunami

or by downloading it as a zip file.

Build the code

cd tsunami
make -k

You can compile the tsunami versions in chapters 2, 3, and 4 with gfortran alone. For the code in chapters 7, 8, 10, and 12, you'll need the latest stable build of OpenCoarrays, which will give you the caf compiler wrapper.

Set up the Python environment for visualization (optional)

Python scripts are provided to visualize tsunami output.

python3 -m venv venv
source venv/bin/activate
pip install -U pip
pip install -U -r requirements.txt
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].