Basilisk CFD
Adaptive Cartesian mesh PDE framework
Loading...
Searching...
No Matches
multigrid.h File Reference
#include "../multigrid.h"
#include "../stencils.h"
#include "gpu.h"
#include "../multigrid-common.h"
#include "grid.h"
Include dependency graph for multigrid.h:

Go to the source code of this file.

Macros

#define SINGLE_PRECISION   1
 
#define _GPU   1
 
#define GRIDNAME   "Multigrid (GPU)"
 
#define GRIDPARENT   Multigrid
 
#define shift_level(d)   (multigrid->shift[d])
 
#define field_size()   (multigrid->shift[depth() + 1])
 
#define grid_data()   (multigrid->d)
 
#define field_offset(s, level)   (shift_level((level) ? (level) - 1 : depth()) + (s).i*field_size())
 
#define GPU_CODE()
 

Functions

static void gpu_multigrid_methods ()
 

Variables

static bool _gpu_done_ = false
 

Macro Definition Documentation

◆ _GPU

#define _GPU   1

Definition at line 8 of file multigrid.h.

◆ field_offset

#define field_offset (   s,
  level 
)    (shift_level((level) ? (level) - 1 : depth()) + (s).i*field_size())

Definition at line 14 of file multigrid.h.

◆ field_size

#define field_size ( )    (multigrid->shift[depth() + 1])

Definition at line 12 of file multigrid.h.

◆ GPU_CODE

#define GPU_CODE ( )
Value:
"#define valt(s,k,l,m)" \
" _data_val(_index(s,m), point.j + (l) + " \
" (point.i + (k))*(point.n.y + 2*GHOSTS) + _shift[point.level])\n" \
"#define val_red_(s) _data_val((s).i, point.j - GHOSTS +" \
" (point.i - GHOSTS)*NY + _shift[point.level])\n" \
"#define fine(a,k,l,m)" \
" _data_val(_index(a,m), 2*point.j - GHOSTS + (l) +" \
" (2*point.i - GHOSTS + (k))*(point.n.y*2 + 2*GHOSTS) +" \
" _shift[point.level + 1])\n" \
"#define coarse(a,k,l,m)" \
" _data_val(_index(a,m), (point.j + GHOSTS)/2 + (l) +" \
" ((point.i + GHOSTS)/2 + (k))*(point.n.y/2 + 2*GHOSTS) +" \
" _shift[point.level - 1])\n"

Definition at line 16 of file multigrid.h.

◆ grid_data

#define grid_data ( )    (multigrid->d)

Definition at line 13 of file multigrid.h.

◆ GRIDNAME

#define GRIDNAME   "Multigrid (GPU)"

Definition at line 9 of file multigrid.h.

◆ GRIDPARENT

#define GRIDPARENT   Multigrid

Definition at line 10 of file multigrid.h.

◆ shift_level

#define shift_level (   d)    (multigrid->shift[d])

Definition at line 11 of file multigrid.h.

◆ SINGLE_PRECISION

#define SINGLE_PRECISION   1

Definition at line 6 of file multigrid.h.

Function Documentation

◆ gpu_multigrid_methods()

static void gpu_multigrid_methods ( )
static

Definition at line 38 of file multigrid.h.

References boundary_level, gpu_boundary_level(), and multigrid_methods().

Here is the call graph for this function:

Variable Documentation

◆ _gpu_done_

bool _gpu_done_ = false
static

Definition at line 31 of file multigrid.h.