-
Notifications
You must be signed in to change notification settings - Fork 369
/
Copy pathREADME_C
92 lines (56 loc) · 2.76 KB
/
README_C
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
The following tutorials demonstrate how to use AMReX:
* `HelloWorld_C`:
this simply shows how to initialize AMReX, create a domain decomposition,
and initialize a MultiFab. This is then looped over using the MFIter
and work is done on it in Fortran.
* `GettingStarted_C`:
The AMReX user's guide includes source code from this example.
This simply shows how to initialize AMReX, create a domain
decomposition, build arrays of MultiFabs, access data in a
MultiFab, and fill interior/periodic boundaries. This is then
looped over using the MFIter and work is done on it in Fortran.
! ************************************************************************************
HeatEquation_EX*_C:
! ************************************************************************************
There are two (more coming soon) C++ HeatEquation examples in this section. All examples
can be running using MPI and/or OpenMP. Here is a brief overview:
* `HeatEquation_EX1_C`:
this is a simple explicit, first-order-in-time implementation of
diffusion on a single level, with periodic boundaries. The domain
is decomposed into boxes and FillBoundary() is used for the ghost
cells.
* `HeatEquation_EX2_C`:
this example shows how to introduce boundary conditions with C++
using StateData but without using Amr or AmrLevel.
* `Tiling_C`:
this sets up a MultFab, does domain decomposition into Boxes, and
loops over the data using logical tiling to do some work
(implemented in Fortran). Two loops are done, the first uses the
default tile size and the second customizes the tiling layout.
* `Tiling_Heat_C`:
this does the first-order explicit-in-time heat equation as
`HeatEquation_EX1_C`, but using tiling for the loops over the
boxes.
* `WaveEquation_C`:
This does a second-order accurate explicit solution of the second-order
wave equation, u_tt = c**2 L u, where L is the Laplacian
* `AMR_Adv_C`:
this is a full-fledged application that uses the AMReX StateData class
to manage data on an adaptive grid. This implements simple 2nd order
accurate advection using a Godunov approach.
* `AMR_Adv_C_v2`:
this is similar to `AMR_Adv_C`, but is implemented with the AmrCoreLib.
* `MultiGrid_C`:
this example shows how to do multigrid to solve a Helmholtz elliptic
problem. Interfaces to AMReX's native multigrid, Hypre, and HPGMG
are provided.
* `MultiColor_C`:
multicolor solves use different MPI communicators to solve the multigrid
problem for different components in the data. This sets up different
RHSs for each of the components and does the solves using colors
These are more specialized tutorials:
* `AMR_Trilinos_C`
* `PIC_C`
* `TwoGrid_PIC_C`
This is for performance testing:
* `MultiFabTests_C`