79 for (
int _d = 0;
_d < 1;
_d++)
91 for (
int _s = 0;
_s < 1;
_s++)
119 for (
int _s = 0;
_s < 1;
_s++) {
123 if (
_layer == 0 ||
s.block == 1)
138 if (
s.stencil.width > 0)
143 if (
s.v.x.
i ==
s.
i) {
150 else if (!(
s.stencil.bc &
s_face))
160 else if (
s.stencil.width > 0)
176 "%s:%d: warning: scalar '%s' should be assigned with"
177 " a for (int _i = 0; _i < _N; _i++) /* foreach_vertex */ loop\n",
183 "%s:%d: warning: vector '%s' should be assigned with"
184 " a for (int _i = 0; _i < _N; _i++) /* foreach_face */ loop\n",
187 else if (
loop->face) {
191 if (
loop->face ==
d) {
192 s.face = 2,
s.v.x.
i =
s.
i;
196 "%s:%d: turned %s into a vector %c-component\n",
204 "%s:%d: warning: scalar '%s' should be assigned with "
205 "a for (int _i = 0; _i < _N; _i++) /* foreach_face */ loop\n",
212 char *
s = name +
strlen(name) - 1;
213 while (
s != name && *
s !=
'.')
s--;
214 if (
s != name) *
s =
'\0';
238 else if (
loop->vertex) {
263 for (
int _d = 0;
_d < 1;
_d++)
286 for (
int _s = 0;
_s < 1;
_s++)
304 for (
int _s = 0;
_s < 1;
_s++)
319 for (
int _s = 0;
_s < 1;
_s++)
323 for (
int _s = 0;
_s < 1;
_s++)
define double double char flags
define double double char Reduce reductions
define VT _attribute[s.i] v y scalar * list
scalar(* init_vertex_scalar)(scalar, const char *)
static _Attributes * _attribute
int list_lookup(scalar *l, scalar s)
vector(* init_face_vector)(vector, const char *)
scalar * list_append(scalar *list, scalar s)
define sysmalloc malloc define syscalloc calloc define sysrealloc realloc define sysfree free define systrdup strdup define file
define sysmalloc malloc define syscalloc calloc define sysrealloc realloc define sysfree free define systrdup strdup define line line line line strdup(s) @ define tracing(...) @ define end_tracing(...) @define tid() 0 @define pid() 0 @define npe() 1 @define mpi_all_reduce(v
trace bool box(bool notics=false, float lc[3]={0}, float lw=1.)
scalar scalar coord coord double bc
which uses a global _layer index *int _layer
static bool which(const char *command)
macro2 foreach_point_stencil(double xp, double yp, double zp, char flags, Reduce reductions)
before each foreach a minimal version of the loop body The flags indicate the status of boundary conditions and whether the field is used as input or output within a given loop The width is the width of the access stencil *enum @11 StencilFlags
macro2 foreach_region_stencil(coord p, coord box[2], coord n, char flags, Reduce reductions)
macro2 _stencil_is_face_z(ForeachData l=_loop)
def false def true def S_LINENO def S_LINENO define _k define _k define _k define _k define _k define _k define _k define j
def false def true def S_LINENO def S_LINENO define _k define _k define _k define _k define _k define _stencil_coarse_a(a, _i, _j, _k) _stencil_val_a(a
void boundary_stencil(ForeachData *loop)
This functions applies the boundary conditions, as defined by check_stencil().
def _stencil_val(a, _i, _j, _k) stencil_val(point
macro2 foreach_level_stencil(int l, char flags, Reduce reductions)
def false def true def S_LINENO def S_LINENO define _k define _k define _k define _k define _k define _k define _k define k define k define _stencil_aparent_a(i, j, k) @define _stencil_aparent_r(i
macro2 _stencil_is_face_x(ForeachData l=_loop)
void(* boundary_face)(vectorl)
macro2 foreach_coarse_level_stencil(int l, char flags, Reduce reductions)
macro2 _stencil_is_face_y(ForeachData l=_loop)
def false def true def S_LINENO def _stencil_val_r(a, _i, _j, _k) stencil_val_a(point
def false def true def S_LINENO def true
macro2 foreach_stencil(char flags, Reduce reductions)
def false def true def S_LINENO def S_LINENO define _k define _k define _k define _k define _k define _k define _stencil_coarse_r(a, _i, _j, _k) _stencil_val_r(a
void stencil_val_a(Point p, scalar s, int i, int j, int k, bool input, const char *file, int line)
macro2 foreach_face_stencil(char flags, Reduce reductions, const char *order)
static void set_dirty_stencil(scalar s)
define _stencil_val_higher_dimension(_stencil_nop=1) @define _stencil__val_constant(a
def false def true def S_LINENO def S_LINENO define _stencil_fine(a, _i, _j, _k) _stencil_val(a
void stencil_val(Point p, scalar s, int i, int j, int k, const char *file, int line, bool overflow)
def false def true def S_LINENO def S_LINENO define _k define _k define _k define _k define _k define _k define _k define k define _stencil_child(i, j, k) @define _stencil_aparent(i
void boundary_internal(scalar *list, const char *fname, int line)
There are two types of boundary conditions: "full" boundary conditions, done by boundary_internal() a...
macro2 foreach_vertex_stencil(char flags, Reduce reductions)
def false def true def _stencil_val_a(a, _i, _j, _k) stencil_val_a(point
static bool scalar_is_dirty(scalar s)
def false def true def S_LINENO def S_LINENO define _k define _k define _k define _k define _k define _k define _k define k define k define k define _stencil_allocated(i, j, k) true @define _stencil_neighborp(i
void check_stencil(ForeachData *loop)
This function is called after the stencil access detection, just before the (real) foreach loop is ex...
def false def true def S_LINENO def S_LINENO define _k define _k define _k define _k define _k define _k define _k define r_assign(x) @define _assign(x) @define _stencil_neighbor(i
def false def true def S_LINENO def S_LINENO define _k define _k define _k define _k define _stencil_coarse(a, _i, _j, _k) _stencil_val(a
macro2 foreach_level_or_leaf_stencil(int l, char flags, Reduce reductions)
def false def _stencil_val_o(a, _i, _j, _k) stencil_val(point
def false def true def S_LINENO def S_LINENO define _k define _k define _stencil_fine_a(a, _i, _j, _k) _stencil_val_a(a
def false def true def false
def false def true def S_LINENO def S_LINENO define _k define _k define _k define _stencil_fine_r(a, _i, _j, _k) _stencil_val_r(a
static bool scalar_depends_from(scalar a, scalar b)
Does the boundary conditions on a depend on those on b?
def false def true def S_LINENO def S_LINENO define _k define _k define _k define _k define _k define _k define _k define k define k define k define k neighborp(i, j, k) int _stencil_nop