Example showing how create different types of computational domains.
1#include "../src/cpp_macros.h"
2
3
4program computational_domain
6
7 implicit none
8
9 integer :: n_cell = 4
10 type(af_t) :: tree
11 integer :: grid_size(NDIM)
12 real(dp) :: domain_size(NDIM)
13 logical :: periodic(NDIM)
14
15
16 grid_size(:) = n_cell
17 grid_size(1) = 2 * n_cell
18 domain_size = 1.0_dp * grid_size
19
20 call af_add_cc_variable(tree, "phi")
21 call af_init(tree, n_cell, domain_size, grid_size, mem_limit_gb=0.1_dp)
22 call af_write_silo(tree, "output/computational_domain_" // dimname // "_1")
23 call af_destroy(tree)
24
25
26 grid_size(:) = n_cell
27#if NDIM > 1
28 grid_size(2) = 2 * n_cell
29#endif
30 domain_size = 1.0_dp * grid_size
31
32 call af_add_cc_variable(tree, "phi")
33 call af_init(tree, n_cell, domain_size, grid_size, mem_limit_gb=0.1_dp)
34 call af_write_silo(tree, "output/computational_domain_" // dimname // "_2")
35 call af_destroy(tree)
36
37
38 grid_size(:) = n_cell
39 grid_size(1) = 2 * n_cell
40 periodic(:) = .true.
41 domain_size = 1.0_dp * grid_size
42
43 call af_add_cc_variable(tree, "phi")
44 call af_init(tree, n_cell, domain_size, grid_size, mem_limit_gb=0.1_dp)
45 call af_write_silo(tree, "output/computational_domain_" // dimname // "_3")
46 call af_destroy(tree)
47
48end program computational_domain
Module which contains all Afivo modules, so that a user does not have to include them separately.