Go to the source code of this file.
Macros | |
| #define | __FUNCT__ "CanRankServiceInletFace" |
| #define | __FUNCT__ "CanRankServiceFace" |
| #define | __FUNCT__ "GetDeterministicFaceGridLocation" |
| #define | __FUNCT__ "GetRandomFCellAndLogicOnInletFace" |
| #define | __FUNCT__ "ClassifyMomentumRow" |
| #define | __FUNCT__ "MomentumRowIsSolidMasked" |
| #define | __FUNCT__ "EnforceRHSBoundaryConditions" |
| #define | __FUNCT__ "BoundaryCondition_Create" |
| #define | __FUNCT__ "BoundarySystem_Validate" |
| #define | __FUNCT__ "BoundarySystem_Initialize" |
| #define | __FUNCT__ "PropagateBoundaryConfigToCoarserLevels" |
| #define | __FUNCT__ "BoundarySystem_ExecuteStep" |
| #define | __FUNCT__ "BoundarySystem_RefreshUbcs" |
| #define | __FUNCT__ "BoundarySystem_Destroy" |
| #define | __FUNCT__ "TransferPeriodicFieldByDirection" |
| #define | __FUNCT__ "SynchronizePeriodicCellFields" |
| #define | __FUNCT__ "GetPersistentFaceField" |
| #define | __FUNCT__ "TransferPeriodicFaceFieldByDirection" |
| #define | __FUNCT__ "SynchronizePeriodicFaceFields" |
| #define | __FUNCT__ "GetPersistentStaggeredField" |
| #define | __FUNCT__ "TransferPeriodicStaggeredFieldByDirection" |
| #define | __FUNCT__ "SynchronizePeriodicStaggeredFields" |
| #define | __FUNCT__ "PreparePeriodicQuickStencilFields" |
| #define | __FUNCT__ "SynchronizePeriodicLocalStaggeredField" |
| #define | __FUNCT__ "ApplyMetricsPeriodicBCs" |
| #define | __FUNCT__ "ApplyPeriodicBCs" |
| #define | __FUNCT__ "UpdateDummyCells" |
| #define | __FUNCT__ "UpdateCornerNodes" |
| #define | EDGE_AVERAGE(tk, tj, ti, ak, aj, ai, bk, bj, bi) for (PetscInt c = 0; c < dof; c++) f[tk][tj][ti][c] = 0.5 * (f[ak][aj][ai][c] + f[bk][bj][bi][c]) |
| #define | __FUNCT__ "ApplyWallFunction" |
| #define | __FUNCT__ "LogWallModelDiagnostics" |
| #define | __FUNCT__ "FinalizePostProjectionCellFields" |
| #define | __FUNCT__ "ApplyBoundaryConditions" |
Functions | |
| PetscErrorCode | CanRankServiceInletFace (UserCtx *user, const DMDALocalInfo *info, PetscInt IM_nodes_global, PetscInt JM_nodes_global, PetscInt KM_nodes_global, PetscBool *can_service_inlet_out) |
Internal helper implementation: CanRankServiceInletFace(). | |
| PetscErrorCode | CanRankServiceFace (const DMDALocalInfo *info, PetscInt IM_nodes_global, PetscInt JM_nodes_global, PetscInt KM_nodes_global, BCFace face_id, PetscBool *can_service_out) |
| Implementation of CanRankServiceFace(). | |
| PetscErrorCode | GetDeterministicFaceGridLocation (UserCtx *user, const DMDALocalInfo *info, PetscInt xs_gnode_rank, PetscInt ys_gnode_rank, PetscInt zs_gnode_rank, PetscInt IM_cells_global, PetscInt JM_cells_global, PetscInt KM_cells_global, PetscInt64 particle_global_id, PetscInt *ci_metric_lnode_out, PetscInt *cj_metric_lnode_out, PetscInt *ck_metric_lnode_out, PetscReal *xi_metric_logic_out, PetscReal *eta_metric_logic_out, PetscReal *zta_metric_logic_out, PetscBool *placement_successful_out) |
Internal helper implementation: GetDeterministicFaceGridLocation(). | |
| PetscErrorCode | GetRandomCellAndLogicalCoordsOnInletFace (UserCtx *user, const DMDALocalInfo *info, PetscInt xs_gnode_rank, PetscInt ys_gnode_rank, PetscInt zs_gnode_rank, PetscInt IM_nodes_global, PetscInt JM_nodes_global, PetscInt KM_nodes_global, PetscRandom *rand_logic_i_ptr, PetscRandom *rand_logic_j_ptr, PetscRandom *rand_logic_k_ptr, PetscInt *ci_metric_lnode_out, PetscInt *cj_metric_lnode_out, PetscInt *ck_metric_lnode_out, PetscReal *xi_metric_logic_out, PetscReal *eta_metric_logic_out, PetscReal *zta_metric_logic_out) |
Internal helper implementation: GetRandomCellAndLogicalCoordsOnInletFace(). | |
| MomentumRowType | ClassifyMomentumRow (UserCtx *user, PetscInt i, PetscInt j, PetscInt k, PetscInt component, PetscInt *ri, PetscInt *rj, PetscInt *rk) |
| Implementation of ClassifyMomentumRow(). | |
| PetscBool | MomentumRowIsSolidMasked (const PetscReal ***nvert, PetscInt i, PetscInt j, PetscInt k, PetscInt component) |
| Implementation of MomentumRowIsSolidMasked(). | |
| PetscErrorCode | EnforceRHSBoundaryConditions (UserCtx *user) |
| Implementation of EnforceRHSBoundaryConditions(). | |
| PetscErrorCode | BoundaryCondition_Create (BCHandlerType handler_type, BoundaryCondition **new_bc_ptr) |
Internal helper implementation: BoundaryCondition_Create(). | |
| PetscErrorCode | BoundarySystem_Validate (UserCtx *user) |
Internal helper implementation: BoundarySystem_Validate(). | |
| PetscErrorCode | BoundarySystem_Initialize (UserCtx *user, const char *bcs_filename) |
| Implementation of BoundarySystem_Initialize(). | |
| PetscErrorCode | PropagateBoundaryConfigToCoarserLevels (SimCtx *simCtx) |
Internal helper implementation: PropagateBoundaryConfigToCoarserLevels(). | |
| PetscErrorCode | BoundarySystem_ExecuteStep (UserCtx *user) |
| Implementation of BoundarySystem_ExecuteStep(). | |
| PetscErrorCode | BoundarySystem_RefreshUbcs (UserCtx *user) |
Internal helper implementation: BoundarySystem_RefreshUbcs(). | |
| PetscErrorCode | BoundarySystem_Destroy (UserCtx *user) |
| Implementation of BoundarySystem_Destroy(). | |
| static PetscErrorCode | TransferPeriodicFieldByDirection (UserCtx *user, FieldId field_id, char direction) |
| Copies one cell field's wrapped local values onto the owned periodic duplicate plane. | |
| PetscErrorCode | SynchronizePeriodicCellFields (UserCtx *user, PetscInt num_fields, const FieldId field_ids[]) |
| Implementation of SynchronizePeriodicCellFields(). | |
| static PetscErrorCode | GetPersistentFaceField (UserCtx *user, FieldId field_id, char face_direction, DM *dm, Vec *global_vec, Vec *local_vec, PetscInt *dof) |
| Resolves one registered persistent single-face-family field. | |
| static PetscErrorCode | IsFaceCenterCoordinateField (FieldId field_id, PetscBool *is_coordinate) |
| Returns whether a registered face field stores physical coordinates. | |
| static PetscErrorCode | TranslatePeriodicFaceCenterGhosts (UserCtx *user, Vec local_vec) |
| Applies geometric translations to wrapped face-center ghost coordinates. | |
| static PetscErrorCode | TransferPeriodicFaceFieldByDirection (UserCtx *user, FieldId field_id, char face_direction, char periodic_direction) |
| Transfers one registered face-family field along one periodic axis. | |
| PetscErrorCode | SynchronizePeriodicFaceFields (UserCtx *user, char face_direction, PetscInt num_fields, const FieldId field_ids[]) |
| Synchronizes persistent fields belonging to one face family. | |
| static PetscErrorCode | GetPersistentStaggeredField (UserCtx *user, FieldId field_id, DM *dm, Vec *global_vec, Vec *local_vec) |
| Resolves one registered persistent component-staggered field. | |
| static PetscErrorCode | TransferPeriodicStaggeredFieldByDirection (UserCtx *user, FieldId field_id, char periodic_direction) |
| Transfers one component-staggered field along one periodic axis. | |
| PetscErrorCode | SynchronizePeriodicStaggeredFields (UserCtx *user, PetscInt num_fields, const FieldId field_ids[]) |
| Implementation of SynchronizePeriodicStaggeredFields(). | |
| PetscErrorCode | PreparePeriodicQuickStencilFields (UserCtx *user, Vec local_vector_field, Vec local_scalar_field) |
| Implementation of PreparePeriodicQuickStencilFields(). | |
| PetscErrorCode | SynchronizePeriodicLocalStaggeredField (UserCtx *user, Vec local_field) |
| Implementation of SynchronizePeriodicLocalStaggeredField(). | |
| PetscErrorCode | ApplyMetricsPeriodicBCs (UserCtx *user) |
Internal helper implementation: ApplyMetricsPeriodicBCs(). | |
| PetscErrorCode | ApplyPeriodicBCs (UserCtx *user) |
Internal helper implementation: ApplyPeriodicBCs(). | |
| PetscErrorCode | UpdateDummyCells (UserCtx *user, FieldId field_id) |
| Implementation of UpdateDummyCells(). | |
| PetscErrorCode | UpdateCornerNodes (UserCtx *user, FieldId field_id) |
| Implementation of UpdateCornerNodes(). | |
| static PetscErrorCode | ApplyWallModelAtCell (UserCtx *user, PetscReal ***pressure, PetscReal ***wall_eddy_viscosity, PetscInt i, PetscInt j, PetscInt k, PetscReal roughness_height, PetscReal distance_reference, PetscReal distance_boundary, Cmpnts velocity_wall, Cmpnts velocity_reference, Cmpnts *velocity_boundary, PetscReal *friction_velocity, PetscReal normal_x, PetscReal normal_y, PetscReal normal_z) |
| Applies the configured wall model at one near-wall cell. | |
| PetscErrorCode | ApplyWallFunction (UserCtx *user) |
Internal helper implementation: ApplyWallFunction(). | |
| PetscErrorCode | LogWallModelDiagnostics (UserCtx *user) |
| Implementation of LogWallModelDiagnostics(). | |
| PetscErrorCode | FinalizePostProjectionCellFields (UserCtx *user) |
| Implementation of FinalizePostProjectionCellFields(). | |
| PetscErrorCode | ApplyBoundaryConditions (UserCtx *user) |
| Implementation of ApplyBoundaryConditions(). | |
| #define __FUNCT__ "CanRankServiceInletFace" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "CanRankServiceFace" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "GetDeterministicFaceGridLocation" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "GetRandomFCellAndLogicOnInletFace" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "ClassifyMomentumRow" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "MomentumRowIsSolidMasked" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "EnforceRHSBoundaryConditions" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "BoundaryCondition_Create" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "BoundarySystem_Validate" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "BoundarySystem_Initialize" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "PropagateBoundaryConfigToCoarserLevels" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "BoundarySystem_ExecuteStep" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "BoundarySystem_RefreshUbcs" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "BoundarySystem_Destroy" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "TransferPeriodicFieldByDirection" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "SynchronizePeriodicCellFields" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "GetPersistentFaceField" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "TransferPeriodicFaceFieldByDirection" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "SynchronizePeriodicFaceFields" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "GetPersistentStaggeredField" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "TransferPeriodicStaggeredFieldByDirection" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "SynchronizePeriodicStaggeredFields" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "PreparePeriodicQuickStencilFields" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "SynchronizePeriodicLocalStaggeredField" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "ApplyMetricsPeriodicBCs" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "ApplyPeriodicBCs" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "UpdateDummyCells" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "UpdateCornerNodes" |
Definition at line 6 of file Boundaries.c.
| #define EDGE_AVERAGE | ( | tk, | |
| tj, | |||
| ti, | |||
| ak, | |||
| aj, | |||
| ai, | |||
| bk, | |||
| bj, | |||
| bi | |||
| ) | for (PetscInt c = 0; c < dof; c++) f[tk][tj][ti][c] = 0.5 * (f[ak][aj][ai][c] + f[bk][bj][bi][c]) |
| #define __FUNCT__ "ApplyWallFunction" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "LogWallModelDiagnostics" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "FinalizePostProjectionCellFields" |
Definition at line 6 of file Boundaries.c.
| #define __FUNCT__ "ApplyBoundaryConditions" |
Definition at line 6 of file Boundaries.c.
| PetscErrorCode CanRankServiceInletFace | ( | UserCtx * | user, |
| const DMDALocalInfo * | info, | ||
| PetscInt | IM_nodes_global, | ||
| PetscInt | JM_nodes_global, | ||
| PetscInt | KM_nodes_global, | ||
| PetscBool * | can_service_inlet_out | ||
| ) |
Internal helper implementation: CanRankServiceInletFace().
Determines if the current MPI rank owns any part of the globally defined inlet face, making it responsible for placing particles on that portion of the surface.
Local to this translation unit.
Definition at line 11 of file Boundaries.c.
| PetscErrorCode CanRankServiceFace | ( | const DMDALocalInfo * | info, |
| PetscInt | IM_nodes_global, | ||
| PetscInt | JM_nodes_global, | ||
| PetscInt | KM_nodes_global, | ||
| BCFace | face_id, | ||
| PetscBool * | can_service_out | ||
| ) |
Implementation of CanRankServiceFace().
Determines if the current MPI rank owns any part of a specified global face.
Full API contract (arguments, ownership, side effects) is documented with the header declaration in include/Boundaries.h.
Definition at line 127 of file Boundaries.c.
| PetscErrorCode GetDeterministicFaceGridLocation | ( | UserCtx * | user, |
| const DMDALocalInfo * | info, | ||
| PetscInt | xs_gnode_rank, | ||
| PetscInt | ys_gnode_rank, | ||
| PetscInt | zs_gnode_rank, | ||
| PetscInt | IM_cells_global, | ||
| PetscInt | JM_cells_global, | ||
| PetscInt | KM_cells_global, | ||
| PetscInt64 | particle_global_id, | ||
| PetscInt * | ci_metric_lnode_out, | ||
| PetscInt * | cj_metric_lnode_out, | ||
| PetscInt * | ck_metric_lnode_out, | ||
| PetscReal * | xi_metric_logic_out, | ||
| PetscReal * | eta_metric_logic_out, | ||
| PetscReal * | zta_metric_logic_out, | ||
| PetscBool * | placement_successful_out | ||
| ) |
Internal helper implementation: GetDeterministicFaceGridLocation().
Places particles in a deterministic grid/raster pattern on a specified domain face.
Local to this translation unit.
Definition at line 213 of file Boundaries.c.
| PetscErrorCode GetRandomCellAndLogicalCoordsOnInletFace | ( | UserCtx * | user, |
| const DMDALocalInfo * | info, | ||
| PetscInt | xs_gnode_rank, | ||
| PetscInt | ys_gnode_rank, | ||
| PetscInt | zs_gnode_rank, | ||
| PetscInt | IM_nodes_global, | ||
| PetscInt | JM_nodes_global, | ||
| PetscInt | KM_nodes_global, | ||
| PetscRandom * | rand_logic_i_ptr, | ||
| PetscRandom * | rand_logic_j_ptr, | ||
| PetscRandom * | rand_logic_k_ptr, | ||
| PetscInt * | ci_metric_lnode_out, | ||
| PetscInt * | cj_metric_lnode_out, | ||
| PetscInt * | ck_metric_lnode_out, | ||
| PetscReal * | xi_metric_logic_out, | ||
| PetscReal * | eta_metric_logic_out, | ||
| PetscReal * | zta_metric_logic_out | ||
| ) |
Internal helper implementation: GetRandomCellAndLogicalCoordsOnInletFace().
Assuming the current rank services the inlet face, this function selects a random cell (owned by this rank on that face) and random logical coordinates within that cell, suitable for placing a particle on the inlet surface.
Local to this translation unit.
Definition at line 400 of file Boundaries.c.
| MomentumRowType ClassifyMomentumRow | ( | UserCtx * | user, |
| PetscInt | i, | ||
| PetscInt | j, | ||
| PetscInt | k, | ||
| PetscInt | component, | ||
| PetscInt * | ri, | ||
| PetscInt * | rj, | ||
| PetscInt * | rk | ||
| ) |
Implementation of ClassifyMomentumRow().
Single source of truth for "which staggered momentum rows are unknowns".
Pure index/boundary-type arithmetic: no field reads, no communication. Precedence matters. A conditioned row is reported first because its explicit Dirichlet value is more specific than the homogeneous fallback, and a periodic duplicate is reported before the homogeneous case because the Newton path needs its representative index to build F = X_dup - X_rep.
Definition at line 597 of file Boundaries.c.
| PetscBool MomentumRowIsSolidMasked | ( | const PetscReal *** | nvert, |
| PetscInt | i, | ||
| PetscInt | j, | ||
| PetscInt | k, | ||
| PetscInt | component | ||
| ) |
Implementation of MomentumRowIsSolidMasked().
Reports whether a momentum row is masked out by the solid-cell field.
Full API contract is documented with the header declaration in include/Boundaries.h.
Definition at line 655 of file Boundaries.c.
| PetscErrorCode EnforceRHSBoundaryConditions | ( | UserCtx * | user | ) |
Implementation of EnforceRHSBoundaryConditions().
Zeroes every momentum RHS row that does not carry an independent unknown.
The sweep is deliberately expressed over every owned location rather than over the six boundary slabs: restating "which indices can be non-physical" here is exactly the duplication that let the periodic duplicate column go unzeroed. ClassifyMomentumRow() is a handful of integer comparisons and the walk is a single pass with no stencil access, which is negligible next to the several ghosted stencil passes ComputeRHS() has already made over the same range. MomentumNewtonKrylov_ApplyConstraints() walks the same range the same way.
Definition at line 686 of file Boundaries.c.
| PetscErrorCode BoundaryCondition_Create | ( | BCHandlerType | handler_type, |
| BoundaryCondition ** | new_bc_ptr | ||
| ) |
Internal helper implementation: BoundaryCondition_Create().
(Private) Creates and configures a specific BoundaryCondition handler object.
Local to this translation unit.
Definition at line 729 of file Boundaries.c.
| PetscErrorCode BoundarySystem_Validate | ( | UserCtx * | user | ) |
Internal helper implementation: BoundarySystem_Validate().
(Public) Validates the consistency and compatibility of the parsed boundary condition system.
Local to this translation unit.
Definition at line 815 of file Boundaries.c.
| PetscErrorCode BoundarySystem_Initialize | ( | UserCtx * | user, |
| const char * | bcs_filename | ||
| ) |
Implementation of BoundarySystem_Initialize().
Initializes the entire boundary system.
Full API contract (arguments, ownership, side effects) is documented with the header declaration in include/Boundaries.h.
Definition at line 876 of file Boundaries.c.
| PetscErrorCode PropagateBoundaryConfigToCoarserLevels | ( | SimCtx * | simCtx | ) |
Internal helper implementation: PropagateBoundaryConfigToCoarserLevels().
Propagates boundary condition configuration from finest to all coarser multigrid levels.
Local to this translation unit.
Definition at line 973 of file Boundaries.c.
| PetscErrorCode BoundarySystem_ExecuteStep | ( | UserCtx * | user | ) |
Implementation of BoundarySystem_ExecuteStep().
Executes one full boundary condition update cycle for a time step.
Full API contract (arguments, ownership, side effects) is documented with the header declaration in include/Boundaries.h.
Definition at line 1044 of file Boundaries.c.
| PetscErrorCode BoundarySystem_RefreshUbcs | ( | UserCtx * | user | ) |
Internal helper implementation: BoundarySystem_RefreshUbcs().
(Private) A lightweight execution engine that calls the UpdateUbcs() method on all relevant handlers.
Local to this translation unit.
Definition at line 1466 of file Boundaries.c.
| PetscErrorCode BoundarySystem_Destroy | ( | UserCtx * | user | ) |
Implementation of BoundarySystem_Destroy().
Cleans up and destroys all boundary system resources.
Full API contract (arguments, ownership, side effects) is documented with the header declaration in include/Boundaries.h.
Definition at line 1516 of file Boundaries.c.
|
static |
Copies one cell field's wrapped local values onto the owned periodic duplicate plane.
Handles scalar and three-component storage for one selected logical axis.
Definition at line 1563 of file Boundaries.c.
| PetscErrorCode SynchronizePeriodicCellFields | ( | UserCtx * | user, |
| PetscInt | num_fields, | ||
| const FieldId | field_ids[] | ||
| ) |
Implementation of SynchronizePeriodicCellFields().
Synchronizes periodic endpoint cells for a list of cell-centered fields.
Full API contract is documented with the header declaration in include/Boundaries.h.
Definition at line 1647 of file Boundaries.c.
|
static |
Resolves one registered persistent single-face-family field.
Definition at line 1713 of file Boundaries.c.
|
static |
Returns whether a registered face field stores physical coordinates.
Definition at line 1745 of file Boundaries.c.
|
static |
Applies geometric translations to wrapped face-center ghost coordinates.
Definition at line 1760 of file Boundaries.c.
|
static |
Transfers one registered face-family field along one periodic axis.
Definition at line 1807 of file Boundaries.c.
| PetscErrorCode SynchronizePeriodicFaceFields | ( | UserCtx * | user, |
| char | face_direction, | ||
| PetscInt | num_fields, | ||
| const FieldId | field_ids[] | ||
| ) |
Synchronizes persistent fields belonging to one face family.
The function performs deterministic I/J/K directional passes with an intermediate ghost refresh after each active periodic direction. It updates persistent global seam/dummy values only; face-specific local stencil repair remains a separate operation.
| user | The main UserCtx struct. | |
| face_direction | Face family shared by every field (‘'i’,'j', or'k'`). | |
| [in] | num_fields | Count of registered face fields. |
| field_ids | Registered persistent face-field identities. |
Definition at line 1881 of file Boundaries.c.
|
static |
Resolves one registered persistent component-staggered field.
Definition at line 1943 of file Boundaries.c.
|
static |
Transfers one component-staggered field along one periodic axis.
Definition at line 1966 of file Boundaries.c.
| PetscErrorCode SynchronizePeriodicStaggeredFields | ( | UserCtx * | user, |
| PetscInt | num_fields, | ||
| const FieldId | field_ids[] | ||
| ) |
Implementation of SynchronizePeriodicStaggeredFields().
Synchronizes persistent component-staggered vector fields.
Definition at line 2015 of file Boundaries.c.
| PetscErrorCode PreparePeriodicQuickStencilFields | ( | UserCtx * | user, |
| Vec | local_vector_field, | ||
| Vec | local_scalar_field | ||
| ) |
Implementation of PreparePeriodicQuickStencilFields().
Repairs the outer adjacent periodic ghosts used by QUICK cell stencils.
Definition at line 2060 of file Boundaries.c.
| PetscErrorCode SynchronizePeriodicLocalStaggeredField | ( | UserCtx * | user, |
| Vec | local_field | ||
| ) |
Implementation of SynchronizePeriodicLocalStaggeredField().
Synchronizes one local-only component-staggered periodic work field.
Definition at line 2126 of file Boundaries.c.
| PetscErrorCode ApplyMetricsPeriodicBCs | ( | UserCtx * | user | ) |
Internal helper implementation: ApplyMetricsPeriodicBCs().
(Orchestrator) Updates all metric-related fields in the local ghost cell regions for periodic boundaries.
Local to this translation unit.
Definition at line 2166 of file Boundaries.c.
| PetscErrorCode ApplyPeriodicBCs | ( | UserCtx * | user | ) |
Internal helper implementation: ApplyPeriodicBCs().
Applies periodic boundary conditions by copying data across domain boundaries for all relevant fields.
Local to this translation unit.
Definition at line 2195 of file Boundaries.c.
Implementation of UpdateDummyCells().
Fills the dummy cells on the non-periodic faces of one cell-centred field.
Full API contract is documented with the header declaration in include/Boundaries.h.
Definition at line 2250 of file Boundaries.c.
Implementation of UpdateCornerNodes().
Fills the edge and corner dummy cells of one cell-centred field by averaging.
Full API contract is documented with the header declaration in include/Boundaries.h.
Definition at line 2334 of file Boundaries.c.
|
static |
Applies the configured wall model at one near-wall cell.
The six face cases differ only in which indices they address, so the choice of law is made here once rather than repeated at each of them. Every model writes the corrected near-wall velocity and the friction velocity through the same two pointers, which is what lets one call site serve all of them.
Cabot's non-equilibrium form takes a pressure gradient, which is why the caller supplies the read-only pressure array: the gradient is evaluated at the cell rather than assumed zero, since zero would silently reduce the model to its equilibrium form. The other two laws ignore that array.
Definition at line 2401 of file Boundaries.c.
| PetscErrorCode ApplyWallFunction | ( | UserCtx * | user | ) |
Internal helper implementation: ApplyWallFunction().
Applies wall function modeling to near-wall velocities for all wall-type boundaries.
Local to this translation unit.
Definition at line 2507 of file Boundaries.c.
| PetscErrorCode LogWallModelDiagnostics | ( | UserCtx * | user | ) |
Implementation of LogWallModelDiagnostics().
Appends one row of near-wall statistics to <run.analysis.metrics>/wall_model.csv.
Full API contract is documented with the header declaration in include/Boundaries.h.
Definition at line 3000 of file Boundaries.c.
| PetscErrorCode FinalizePostProjectionCellFields | ( | UserCtx * | user | ) |
Implementation of FinalizePostProjectionCellFields().
Finalizes cell-centered fields after the projection step.
Full API contract is documented with the header declaration in include/Boundaries.h.
Definition at line 3155 of file Boundaries.c.
| PetscErrorCode ApplyBoundaryConditions | ( | UserCtx * | user | ) |
Implementation of ApplyBoundaryConditions().
Main boundary-condition orchestrator executed during solver timestepping.
Full API contract (arguments, ownership, side effects) is documented with the header declaration in include/Boundaries.h.
Definition at line 3197 of file Boundaries.c.