|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
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__ "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 | __FUNCT__ "ApplyWallFunction" |
| #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(). | |
| 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) |
Internal helper implementation: UpdateDummyCells(). | |
| PetscErrorCode | UpdateCornerNodes (UserCtx *user) |
Internal helper implementation: UpdateCornerNodes(). | |
| PetscErrorCode | ApplyWallFunction (UserCtx *user) |
Internal helper implementation: ApplyWallFunction(). | |
| 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__ "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 __FUNCT__ "ApplyWallFunction" |
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.
| 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 660 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 703 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 789 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 850 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 947 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 1018 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 1440 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 1490 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 1537 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 1621 of file Boundaries.c.
|
static |
Resolves one registered persistent single-face-family field.
Definition at line 1687 of file Boundaries.c.
|
static |
Returns whether a registered face field stores physical coordinates.
Definition at line 1719 of file Boundaries.c.
|
static |
Applies geometric translations to wrapped face-center ghost coordinates.
Definition at line 1734 of file Boundaries.c.
|
static |
Transfers one registered face-family field along one periodic axis.
Definition at line 1781 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 1855 of file Boundaries.c.
|
static |
Resolves one registered persistent component-staggered field.
Definition at line 1917 of file Boundaries.c.
|
static |
Transfers one component-staggered field along one periodic axis.
Definition at line 1940 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 1989 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 2034 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 2100 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 2140 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 2169 of file Boundaries.c.
| PetscErrorCode UpdateDummyCells | ( | UserCtx * | user | ) |
Internal helper implementation: UpdateDummyCells().
Updates the dummy cells (ghost nodes) on the faces of the local domain for NON-PERIODIC boundaries.
Local to this translation unit.
Definition at line 2222 of file Boundaries.c.
| PetscErrorCode UpdateCornerNodes | ( | UserCtx * | user | ) |
Internal helper implementation: UpdateCornerNodes().
Updates the corner and edge ghost nodes of the local domain by averaging.
Local to this translation unit.
Definition at line 2314 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 2458 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 2918 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 2958 of file Boundaries.c.