sandbox/acastillo/output_fields/test_output5.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
    
    #include "grid/octree.h"
    #include "FEDataStructures.h"
    #include "CatalystAdaptor.h"
    
    #define r2 (sq(x) + sq(y))
    int main(int argc, char* argv[]){
    	L0 = 1 ;
    	X0 = Y0 = Z0 = -L0/2;
      N = 1<<4;
      init_grid (N);
    
    #if TREE
     refine(((r2 < sq(0.25)) && (r2 > sq(0.1))) && level < 6);
    #endif
    
      scalar s[];
      vector u[];
      foreach ()
      {
        s[] = pid();
        foreach_dimension()
        {
          u.x[] = sq(x) + sq(y) + sq(z);
        }
      }
      boundary({s, u});
    
      CAttributes cattributes;
      CGrid cgrid = (CGrid){ .no_points = 0, .points = 0, .no_cells = 0, .cells = 0};
    
      InitializeGrid(&cgrid);
      InitializeAttributes(&cattributes, &cgrid);
    
    #ifdef USE_CATALYST
      do_catalyst_initialization(argc, argv);
    #endif
    
      double time = 0.;
    #ifdef USE_CATALYST
      for (int i = 0; i < 10; i++) {
        time = i * 0.1;
        foreach ()
          s[] = 1/(sq(x) + sq(y) + sq(z)) + 0.1*noise();
        UpdateFields(&cattributes, time, s, u);
        do_catalyst_execute(i, time, &cgrid, &cattributes);
      }
    #endif
    
    
    #ifdef USE_CATALYST
      do_catalyst_finalization();
    #endif
    }