-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
42 lines (28 loc) · 1.25 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
MINIPFASST
==========
MINIPFASST is a mini implementation of the Parallel Full Approximation
Scheme in Space and Time (PFASST) algorithm.
Currently a very simple 1d advection/diffusion example is included in
MINIPFASST. To run the example, modify examples/advection/Makefile to
your needs and:
$ cd examples/advection
$ make
$ mpirun -n 4 ./main.exe
Differences from LIBPFASST
==========================
MINIPFASST uses flat arrays to store solutions and function
evaluations instead of "encapsulations".
MINIPFASST defines transfer routines, SDC sweepers, and user data
contexts etc AT COMPILE TIME.
Please see:
* sweeper_dtype.f90 - this defines `type(pf_sweeper)`
* sweeper.f90 - this defines `sweeper_setup` and `sweeper_destroy`
routines that are called per level
* user_dtype.f90 - this defines `type(pf_user)`
* user.f90 - this defines `user_setup` and `user_destroy` routines
that are called per level
* transfer.f90 - this defines `interpolate` and `restrict` routines
Many routines (eg, sweep and transfer routines) get passed a
`type(pf_level)` structure which contains both `type(pf_sweeper)` and
`type(pf_user)` structures. This provides a simple way of managing
and passing level specific data to sweeper and user routines.