|
Basilisk CFD
Adaptive Cartesian mesh PDE framework
|
Go to the source code of this file.
Data Structures | |
| struct | _External |
| struct | ForeachData |
Typedefs | |
| typedef struct _External | External |
Enumerations | |
| enum | { s_centered = 1 << 0 , s_face = 1 << 1 , s_restriction = 1 << 2 , s_input = 1 << 3 , s_output = 1 << 4 , s_nowarning = 1 << 5 } |
Variables | |
| before each foreach | loop |
| 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 { ... } | StencilFlags |
| attribute | |
| void(* | boundary_face )(vectorl) |
| def | a |
| def | _i |
| def | _j |
| def | _k |
| def | S__FILE__ |
| def | S_LINENO |
| def false def true def | false |
| def false def true def S_LINENO def | true |
| 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 |
| Enumerator | |
|---|---|
| s_centered | |
| s_face | |
| s_restriction | |
| s_input | |
| s_output | |
| s_nowarning | |
Definition at line 18 of file stencils.h.
| define _k | ( | _stencil_nop | = 1 | ) |
| 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 | |||
| ) |
| 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 | |||
| ) |
| 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 | |||
| ) |
| 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 | |||
| ) |
| 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 | |||
| ) |
| 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 | |||
| ) |
| def false def true def S_LINENO def S_LINENO define _k define _k define _stencil_fine_a | ( | a | , |
| _i | , | ||
| _j | , | ||
| _k | |||
| ) |
| def false def true def S_LINENO def S_LINENO define _k define _k define _k define _stencil_fine_r | ( | a | , |
| _i | , | ||
| _j | , | ||
| _k | |||
| ) |
| macro2 _stencil_is_face_x | ( | ForeachData | l = _loop | ) |
Definition at line 395 of file stencils.h.
References l.
| macro2 _stencil_is_face_y | ( | ForeachData | l = _loop | ) |
Definition at line 396 of file stencils.h.
References l.
| macro2 _stencil_is_face_z | ( | ForeachData | l = _loop | ) |
Definition at line 397 of file stencils.h.
References l.
| define _stencil_val_higher_dimension | ( | _stencil_nop | = 1 | ) |
There are two types of boundary conditions: "full" boundary conditions, done by boundary_internal() and "flux" boundary conditions (i.e.
normal components on faces only) done by boundary_face().
Definition at line 541 of file cartesian-common.h.
References boundary_face, boundary_level, cm, dimension, flux, free(), scalar::i, i, list, list_add(), list_add_depends(), s, s_centered, s_face, scalar_is_dirty(), vectorl::x, and x.
Referenced by boundary_stencil().
| void boundary_stencil | ( | ForeachData * | loop | ) |
This functions applies the boundary conditions, as defined by check_stencil().
We apply "full" boundary conditions.
We update the dirty status of fields which will be write-accessed by the foreach loop.
Definition at line 274 of file stencils.h.
References boundary_face, boundary_internal(), dimension, flux, free(), scalar::i, i, loop, s, set_dirty_stencil(), and x.
Referenced by cartesian_init_scalar(), cartesian_scalar_clone(), and foreach_stencil().
| void check_stencil | ( | ForeachData * | loop | ) |
This function is called after the stencil access detection, just before the (real) foreach loop is executed.
This is where we use the stencil access pattern to see whether boundary conditions need to be applied.
We check the accesses for each field...
If the field is read and dirty, we need to check if boundary conditions need to be applied.
If this is a face field, we check whether "full" BCs need to be applied, or whether "face" BCs are sufficient.
For dirty, centered fields BCs need to be applied if the stencil is wider than zero.
Write accesses need to be consistent with the declared field type (i.e. face or vertex).
If the field is write-accessed, we add it to the 'dirty' list.
Definition at line 112 of file stencils.h.
References _layer, d, dimension, free(), scalar::i, i, init_face_vector, init_vertex_scalar, input(), left, list_append(), list_lookup(), loop, right, s, s_face, s_input, s_nowarning, s_output, scalar_depends_from(), scalar_is_dirty(), strdup(), v, vertex, x, y, and z.
Referenced by foreach_stencil(), and foreach_stencil_generic().
| for | ( | ) |
Definition at line 373 of file stencils.h.
References flags, foreach_level_stencil(), l, and reductions.
Definition at line 359 of file stencils.h.
References flags, foreach_stencil(), and reductions.
Definition at line 378 of file stencils.h.
References flags, foreach_level_stencil(), l, and reductions.
Definition at line 364 of file stencils.h.
Referenced by foreach_coarse_level_stencil(), and foreach_level_or_leaf_stencil().
Definition at line 383 of file stencils.h.
References flags, foreach_stencil(), and reductions.
Definition at line 389 of file stencils.h.
References flags, foreach_stencil(), and reductions.
Definition at line 329 of file stencils.h.
References _attribute, baseblock, boundary_stencil(), check_stencil(), ForeachData::fname, scalar::i, i, point, s, S__FILE__, S_LINENO, and x.
Referenced by foreach_face_stencil(), foreach_point_stencil(), foreach_region_stencil(), and foreach_vertex_stencil().
Definition at line 352 of file stencils.h.
References flags, foreach_stencil(), reductions, and x.
| 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 | |||
| ) |
| 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 | ) |
Does the boundary conditions on a depend on those on b?
Definition at line 88 of file stencils.h.
References a, b, scalar::i, s, and x.
Referenced by check_stencil().
Boundary conditions need to be applied if s is dirty, or if any of the field d it depends on is dirty.
Definition at line 74 of file stencils.h.
References d, s, s_centered, and x.
Referenced by boundary_internal(), and check_stencil().
Definition at line 34 of file stencils.h.
References s.
Referenced by boundary_stencil(), input_gfs(), mpi_boundary_refine(), mpi_boundary_update(), set_prolongation(), and set_restriction().
| define _i |
Definition at line 405 of file stencils.h.
Referenced by adapt_wavelet(), advance_generic(), advance_saint_venant(), advect(), advection(), advection_centered(), advection_upwind(), axistream(), balance(), centered_gradient(), check_flags(), check_two_one(), column_propagation(), compile_expression(), constant_NNT(), correct_qz(), correction(), curvature(), debug_mpi(), dphidt(), equilibrium_tide(), event_acceleration(), event_adapt(), event_advance(), event_advection_term(), event_defaults(), event_end_timestep(), event_face_fields(), event_init(), event_metric(), event_pressure(), event_properties(), event_stability(), event_tracer_advection(), event_tracer_diffusion(), event_update_eta(), event_velocity(), event_viscous_term(), event_vof(), face_fraction(), fault(), flag_border_cells(), foreach_boundary_dir(), foreach_child(), foreach_mem(), foreach_neighbor(), foreach_segment(), foreach_tree(), foreach_visible(), fraction(), fractions_cleanup(), gradients(), h_relax(), h_residual(), horizontal_diffusion(), if(), implicit_horizontal_diffusion(), input_gfs(), input_pgm(), lambda2(), levelset_to_vof(), mg_cycle(), momentum(), mpi_boundary_coarsen(), mpi_boundary_refine(), mpi_boundary_update_buffers(), msolve(), neighborhood(), no_coalescence(), ohmic_flux(), output_tree(), prediction(), project(), reconstruction(), refine(), refine_level(), relax(), relax_diffusion(), relax_GN(), relax_hydro(), relax_nh(), relax_nh(), relax_nh1(), relax_psi(), relax_thermal(), relax_viscosity(), remove_droplets(), residual(), residual_diffusion(), residual_hydro(), residual_nh(), residual_psi(), residual_thermal(), residual_viscosity(), restore_mpi(), RPE(), run(), runge_kutta(), solid(), solve(), subtree_size(), tag(), timestep(), tracer_fluxes(), tree_boundary_level(), tree_check(), unrefine(), update(), update_cache_f(), update_conservation(), update_green_naghdi(), update_saint_venant(), update_tracer(), vertical_fluxes(), vertical_remapping(), vertical_velocity(), viscosity(), viscosity_explicit(), vof_advection(), vorticity(), and z_indexing().
| define _j |
Definition at line 405 of file stencils.h.
Referenced by foreach_child(), and foreach_neighbor().
| define _k |
Definition at line 405 of file stencils.h.
Referenced by box_boundary_level(), box_boundary_level_normal(), box_boundary_level_tangent(), foreach(), foreach_child(), foreach_face_generic(), foreach_neighbor(), is_refined_check(), and msolve().
Definition at line 405 of file stencils.h.
Referenced by scalar_depends_from().
| attribute |
Definition at line 28 of file stencils.h.
Definition at line 104 of file stencils.h.
Referenced by boundary_stencil().
| 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 j |
Definition at line 429 of file stencils.h.
Definition at line 11 of file stencils.h.
Referenced by boundary_stencil(), check_stencil(), and residual_viscosity().
Definition at line 405 of file stencils.h.
Referenced by BEGIN_FOREACH(), foreach_stencil(), and foreach_stencil_generic().
Definition at line 405 of file stencils.h.
Referenced by BEGIN_FOREACH(), foreach_stencil(), and foreach_stencil_generic().
| 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 { ... } StencilFlags |