Basilisk CFD
Adaptive Cartesian mesh PDE framework
Loading...
Searching...
No Matches
multigrid-common.h File Reference
#include "variables.h"
#include "cartesian-common.h"
Include dependency graph for multigrid-common.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MULTIGRID   1
 

Functions

auto macro2 for (int _i=0;_i< int l, char flags=0, Reduce reductions=None;_i++)
 
void set_prolongation (scalar s, void(*prolongation)(Point, scalar))
 
void set_restriction (scalar s, void(*restriction)(Point, scalar))
 
static void restriction_average (Point point, scalar s)
 
static void restriction_volume_average (Point point, scalar s)
 
static void face_average (Point point, vector v)
 
static void restriction_face (Point point, scalar s)
 
static void restriction_vertex (Point point, scalar s)
 
static void no_restriction (Point point, scalar s)
 
static void no_data (Point point, scalar s)
 
void wavelet (scalar s, scalar w)
 
void inverse_wavelet (scalar s, scalar w)
 
static double bilinear (Point point, scalar s)
 
static void refine_bilinear (Point point, scalar s)
 
static double quadratic (double a, double b, double c)
 
static double biquadratic (Point point, scalar s)
 
static double biquadratic_vertex (Point point, scalar s)
 
static void refine_biquadratic (Point point, scalar s)
 
static void refine_linear_single (Point point, scalar s)
 
static void refine_linear (Point point, scalar s)
 
static void refine_reset (Point point, scalar v)
 
static void refine_injection (Point point, scalar v)
 
static scalar multigrid_init_scalar (scalar s, const char *name)
 
static scalar multigrid_init_vertex_scalar (scalar s, const char *name)
 
static void multigrid_setup_vector (vector v)
 
static vector multigrid_init_vector (vector v, const char *name)
 
static vector multigrid_init_face_vector (vector v, const char *name)
 
static tensor multigrid_init_tensor (tensor t, const char *name)
 
void multigrid_debug (Point point)
 
static trace void multigrid_restriction (scalar *list)
 
void multigrid_methods ()
 
void subtree_size (scalar size, bool leaves)
 

Variables

 attribute
 
void(* restriction )(Point, scalar)
 

Macro Definition Documentation

◆ MULTIGRID

#define MULTIGRID   1

Definition at line 3 of file multigrid-common.h.

Function Documentation

◆ bilinear()

static double bilinear ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 148 of file multigrid-common.h.

References coarse(), s, and x.

Referenced by mg_cycle(), msolve(), refine_bilinear(), refine_distance(), solve(), and update_distance().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ biquadratic()

static double biquadratic ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 178 of file multigrid-common.h.

References assert, coarse(), quadratic, s, and x.

Referenced by refine_biquadratic().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ biquadratic_vertex()

static double biquadratic_vertex ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 199 of file multigrid-common.h.

References assert, and s.

◆ face_average()

static void face_average ( Point  point,
vector  v 
)
inlinestatic

Definition at line 63 of file multigrid-common.h.

References dimension, fine(), v, and x.

Referenced by restriction_face().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ for()

auto macro2 for ( )

Definition at line 8 of file multigrid-common.h.

References flags, l, reductions, and x.

◆ inverse_wavelet()

void inverse_wavelet ( scalar  s,
scalar  w 
)

Definition at line 133 of file multigrid-common.h.

References boundary_level, grid, l, Grid::maxdepth, point, s, w, and x.

◆ multigrid_debug()

void multigrid_debug ( Point  point)

Definition at line 307 of file multigrid-common.h.

References cartesian_debug(), coarse(), fflush(), fine(), fp, k, l, Point::level, m(), point, v, x, y, and z.

Referenced by multigrid_methods().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multigrid_init_face_vector()

static vector multigrid_init_face_vector ( vector  v,
const char name 
)
static

Definition at line 290 of file multigrid-common.h.

References cartesian_init_face_vector(), dimension, no_restriction(), restriction_face(), v, and x.

Referenced by multigrid_methods().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multigrid_init_scalar()

static scalar multigrid_init_scalar ( scalar  s,
const char name 
)
static

Definition at line 260 of file multigrid-common.h.

References cartesian_init_scalar(), refine_bilinear(), restriction_average(), and s.

Referenced by multigrid_methods(), and tree_init_scalar().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multigrid_init_tensor()

static tensor multigrid_init_tensor ( tensor  t,
const char name 
)
static

Definition at line 299 of file multigrid-common.h.

References cartesian_init_tensor(), dimension, multigrid_setup_vector(), t, and x.

Referenced by multigrid_methods(), and tree_init_tensor().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multigrid_init_vector()

static vector multigrid_init_vector ( vector  v,
const char name 
)
static

Definition at line 283 of file multigrid-common.h.

References cartesian_init_vector(), multigrid_setup_vector(), and v.

Referenced by multigrid_methods(), and tree_init_vector().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multigrid_init_vertex_scalar()

static scalar multigrid_init_vertex_scalar ( scalar  s,
const char name 
)
static

Definition at line 268 of file multigrid-common.h.

References cartesian_init_vertex_scalar(), restriction_vertex(), and s.

Referenced by multigrid_methods(), and tree_init_vertex_scalar().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multigrid_methods()

void multigrid_methods ( )

Definition at line 463 of file multigrid-common.h.

References cartesian_methods(), debug, init_face_vector, init_scalar, init_tensor, init_vector, init_vertex_scalar, multigrid_debug(), multigrid_init_face_vector(), multigrid_init_scalar(), multigrid_init_tensor(), multigrid_init_vector(), multigrid_init_vertex_scalar(), multigrid_restriction(), and restriction.

Referenced by gpu_multigrid_methods(), multigrid1D_methods(), multigrid3D_methods(), and tree_methods().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multigrid_restriction()

static trace void multigrid_restriction ( scalar list)
static

Definition at line 426 of file multigrid-common.h.

References boundary_iterate, depth, dimension, free(), l, level, list_add(), no_restriction(), point, restriction_average(), s, s_restriction, and x.

Referenced by multigrid_methods(), and tree_restriction().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ multigrid_setup_vector()

static void multigrid_setup_vector ( vector  v)
static

Definition at line 275 of file multigrid-common.h.

References dimension, refine_bilinear(), restriction_average(), v, and x.

Referenced by multigrid_init_tensor(), and multigrid_init_vector().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ no_data()

static void no_data ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 104 of file multigrid-common.h.

References nodata, s, and x.

Referenced by heights().

Here is the caller graph for this function:

◆ no_restriction()

static void no_restriction ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 102 of file multigrid-common.h.

Referenced by distance(), heights(), list_add_depend(), multigrid_init_face_vector(), multigrid_restriction(), terrain(), tree_boundary_level(), and tree_init_face_vector().

Here is the caller graph for this function:

◆ quadratic()

static double quadratic ( double  a,
double  b,
double  c 
)
inlinestatic

Definition at line 173 of file multigrid-common.h.

References a, b, and c.

◆ refine_bilinear()

static void refine_bilinear ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 166 of file multigrid-common.h.

References bilinear(), point, s, and x.

Referenced by distance(), event_tracer_advection(), momentum_refine(), multigrid_init_scalar(), and multigrid_setup_vector().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ refine_biquadratic()

static void refine_biquadratic ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 212 of file multigrid-common.h.

References biquadratic(), point, s, and x.

Here is the call graph for this function:

◆ refine_injection()

static void refine_injection ( Point  point,
scalar  v 
)
inlinestatic

Definition at line 252 of file multigrid-common.h.

References v, val(), and x.

Referenced by reconstruction(), and tag().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ refine_linear()

static void refine_linear ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 239 of file multigrid-common.h.

References point, refine_linear_single(), and s.

Referenced by event_defaults(), event_defaults0(), prolongation_elevation(), update_conservation(), and update_saint_venant().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ refine_linear_single()

static void refine_linear_single ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 219 of file multigrid-common.h.

References assert, cm, dimension, g, s, sum, vector::x, and x.

Referenced by refine_linear().

Here is the caller graph for this function:

◆ refine_reset()

static void refine_reset ( Point  point,
scalar  v 
)
inlinestatic

Definition at line 245 of file multigrid-common.h.

References v, and x.

◆ restriction_average()

static void restriction_average ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 43 of file multigrid-common.h.

References dimension, s, sum, and x.

Referenced by event_acceleration(), multigrid_init_scalar(), multigrid_restriction(), multigrid_setup_vector(), and tree_boundary_level().

Here is the caller graph for this function:

◆ restriction_face()

static void restriction_face ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 82 of file multigrid-common.h.

References face_average(), point, and s.

Referenced by multigrid_init_face_vector(), and tree_init_face_vector().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ restriction_vertex()

static void restriction_vertex ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 87 of file multigrid-common.h.

References fine(), i, j, and s.

Referenced by multigrid_init_vertex_scalar(), rcv_pid_sync(), and tree_boundary_level().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ restriction_volume_average()

static void restriction_volume_average ( Point  point,
scalar  s 
)
inlinestatic

Definition at line 53 of file multigrid-common.h.

References cm, dimension, s, sum, and x.

Referenced by event_defaults(), event_defaults0(), and vof_advection().

Here is the caller graph for this function:

◆ set_prolongation()

void set_prolongation ( scalar  s,
void(*)(Point, scalar prolongation 
)

Definition at line 27 of file multigrid-common.h.

References s, and set_dirty_stencil().

Referenced by conserve_elevation(), conserve_layered_elevation(), distance(), event_acceleration(), event_defaults(), event_defaults0(), event_properties(), event_tracer_advection(), event_vof(), heights(), tag(), and vof_advection().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_restriction()

void set_restriction ( scalar  s,
void(*)(Point, scalar restriction 
)

Definition at line 33 of file multigrid-common.h.

References restriction, s, and set_dirty_stencil().

Referenced by conserve_elevation(), conserve_layered_elevation(), event_defaults(), event_defaults0(), heights(), and vof_advection().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ subtree_size()

void subtree_size ( scalar  size,
bool  leaves 
)

Size of subtrees

The function below store in size the number of cells (or leaves if leaves* is set to true) of each subtree.

The size of leaf "subtrees" is one.

We do a (parallel) restriction to compute the size of non-leaf subtrees.

Definition at line 481 of file multigrid-common.h.

References _i, boundary_iterate, depth, l, leaves, restriction, size, sum, and x.

Referenced by z_indexing().

Here is the caller graph for this function:

◆ wavelet()

void wavelet ( scalar  s,
scalar  w 
)

Definition at line 110 of file multigrid-common.h.

References boundary_level, grid, l, Grid::maxdepth, point, restriction, s, w, and x.

Variable Documentation

◆ attribute

attribute
Initial value:
{
void (* prolongation) (Point, scalar)
int x
Definition common.h:76
Definition linear.h:21

Definition at line 22 of file multigrid-common.h.

◆ restriction