PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
Loading...
Searching...
No Matches
variables.h
Go to the documentation of this file.
1/**
2 * @file variables.h
3 * @author Vishal Kandala
4 * @brief Main header file for a complex fluid dynamics solver.
5 *
6 * This file defines the core data structures, global variables, and function
7 * prototypes for a CFD application. It combines features for a curvilinear,
8 * multi-block, immersed boundary (IBM) solver with fluid-structure interaction (FSI),
9 * a modern particle tracking system, a modular boundary condition framework,
10 * and post-processing utilities. It heavily utilizes the PETSc library.
11 *
12 * *** REVISION NOTE ***
13 * This version introduces a central `SimulationContext` struct to encapsulate all
14 * simulation-wide configuration, replacing the legacy system of global variables.
15 * The `UserCtx` struct has been refactored to hold only data specific to a
16 * single grid level and now contains a back-pointer to the `SimulationContext`.
17 * All struct definitions now follow the `typedef struct Name { ... } Name;` convention.
18 */
19
20#ifndef VARIABLES_H
21#define VARIABLES_H
22
23/*================================================================================*
24 * PETSC & SYSTEM LIBRARIES *
25 *================================================================================*/
26
27// --- PETSc Includes ---
28#include "petscvec.h"
29#include "petscdmda.h"
30#include "petscksp.h"
31#include "petscsnes.h"
32#include "petscdmswarm.h"
33
34// --- Standard C/C++ Includes ---
35#include <stdio.h>
36#include <stdlib.h>
37#include <string.h>
38#include <unistd.h>
39
40// --- C++ Specific Includes ---
41#if defined(__cplusplus)
42#include <vector>
43#include <algorithm>
44#include <cassert>
45#endif
46
47// Define a C-compatible interface for C++ compilers
48#ifdef __cplusplus
49extern "C" {
50#endif
51
52/*================================================================================*
53 * MACROS & GLOBAL VARIABLES *
54 *================================================================================*/
55
56/// Coefficient controlling the temporal accuracy scheme (e.g., 1.5 for 2nd Order Backward Difference).
57#define COEF_TIME_ACCURACY 1.5
58
59/* --- NOTE: All legacy global 'extern' variables have been removed. --- */
60/* They are now members of the SimulationContext struct. */
61
62
63/*================================================================================*
64 * CORE DATA STRUCTURES & TYPEDEFS *
65 *================================================================================*/
66
67//--------------------------------------------------------------------------------
68// 1. FORWARD DECLARATIONS & BASIC TYPES
69//--------------------------------------------------------------------------------
70
71// --- Forward Declarations ---
72// These declarations allow pointers to these types before their full definition.
73typedef struct SimCtx SimCtx;
74typedef struct UserCtx UserCtx;
75typedef struct BC_Param_s BC_Param; /* Retains _s for linked list safety */
78typedef struct IBMNodes IBMNodes;
79typedef struct IBMVNodes IBMVNodes;
80typedef struct FSInfo FSInfo;
81typedef struct UserMG UserMG;
82typedef struct BoundingBox BoundingBox;
83typedef struct Cell Cell;
84typedef struct Particle Particle;
88typedef struct Cstart Cstart;
89typedef struct MGCtx MGCtx;
92typedef struct VTKMetaData VTKMetaData;
93typedef struct IBMInfo IBMInfo;
95typedef struct ScalingCtx ScalingCtx;
96
97// --- Foundational Geometric and Data Types ---
98
99/** @brief A 3D point or vector with PetscScalar components. */
100typedef struct Cmpnts {
101 PetscScalar x, y, z;
103
104/** @brief A 2D point or vector with PetscScalar components. */
105typedef struct Cmpnts2 {
106 PetscScalar x, y;
108
109/** @brief A 2D vector of PETSc real numbers (for geometry/coordinates). */
110typedef struct Cpt2D {
111 PetscReal x, y;
113
114/** @brief Represents a single point in a time-varying flow waveform. */
115typedef struct FlowWave {
116 PetscReal t, f;
118
119/** @brief Boundary condition data used by the BC pipeline and ghost cell machinery. */
120typedef struct BCS {
121 Vec Ubcs; ///< Physical Cartesian velocity at boundary faces. Full 3D array but only boundary-face entries are meaningful; interior is unused. Consumed by UpdateDummyCells for ghost cell extrapolation.
122 Vec Uch; ///< Characteristic velocity for boundary conditions.
124
125
126//--------------------------------------------------------------------------------
127// 2. PARTICLE LOCATION SYSTEM ENUMS
128//--------------------------------------------------------------------------------
129
130/**
131 * @enum ParticleLocationStatus
132 * @brief Defines the state of a particle with respect to its location and migration
133 * status during the iterative SettleParticles() process.
134 */
142
143/** @brief Enumerates the six faces of a cubic cell for distance calculations. */
144typedef enum {
147
148
149//--------------------------------------------------------------------------------
150// 3. PARTICLE LOCATION SYSTEM STRUCTS
151//--------------------------------------------------------------------------------
152
153/** @brief Defines a 3D axis-aligned bounding box. */
154typedef struct BoundingBox {
155 Cmpnts min_coords; ///< Minimum x, y, z coordinates of the bounding box.
156 Cmpnts max_coords; ///< Maximum x, y, z coordinates of the bounding box.
158
159/** @brief Defines the vertices of a single hexahedral grid cell. */
160typedef struct Cell {
161 Cmpnts vertices[8]; ///< Coordinates of the eight vertices of the cell.
162} Cell;
163
164/** @brief Defines a particle's core properties for Lagrangian tracking. */
177
178/** @brief Stores the MPI ranks of neighboring subdomains. */
179typedef struct RankNeighbors {
180 PetscMPIInt rank_xm, rank_xp;
181 PetscMPIInt rank_ym, rank_yp;
182 PetscMPIInt rank_zm, rank_zp;
184
185/** @brief A lean struct to hold the global cell ownership range for a single MPI rank. */
186typedef struct RankCellInfo {
190
191/** @brief Information needed to migrate a single particle between MPI ranks. */
192typedef struct MigrationInfo {
193 PetscInt local_index;
194 PetscInt target_rank;
196
197/** @brief Verification-only analytical diffusivity override settings. */
199 PetscBool enabled;
200 char mode[32];
201 char profile[32];
202 PetscReal gamma0;
203 PetscReal slope_x;
205
206/** @brief Verification-only analytical scalar override settings. */
208 PetscBool enabled;
209 char mode[32];
210 char profile[32];
211 PetscReal value;
212 PetscReal phi0;
213 PetscReal slope_x;
214 PetscReal amplitude;
215 PetscReal kx;
216 PetscReal ky;
217 PetscReal kz;
219
220/** @brief Aggregated per-timestep search instrumentation counters. */
237
238
239//--------------------------------------------------------------------------------
240// 4. BOUNDARY CONDITION SYSTEM ENUMS
241//--------------------------------------------------------------------------------
242
243/** @brief Identifies the six logical faces of a structured computational block. */
249
250/** @brief Defines the general mathematical/physical Category of a boundary. */
251typedef enum {
254 WALL = 1 ,
258 INLET = 5,
265 OGRID = 12,
267 // Note: Legacy 14 can be a JUNCTION with a specific handler.
268} BCType;
269
270/** @brief Defines the specific computational "strategy" for a boundary handler. */
289
290
298
299//--------------------------------------------------------------------------------
300// 5. BOUNDARY CONDITION SYSTEM STRUCTS
301//--------------------------------------------------------------------------------
302
303/** @brief A node in a linked list for storing key-value parameters from the bcs.dat file. */
305 char *key;
306 char *value;
308};
309
310/** @brief Provides execution context for a boundary condition handler. */
319
320/** @brief The "virtual table" struct for a boundary condition handler object. */
321typedef struct BoundaryCondition {
324 void *data;
325 PetscErrorCode (*Initialize)(BoundaryCondition *self, BCContext *ctx);
326 PetscErrorCode (*PreStep)(BoundaryCondition *self, BCContext *ctx, PetscReal *local_inflow, PetscReal *local_outflow);
327 PetscErrorCode (*Apply)(BoundaryCondition *self, BCContext *ctx);
328 PetscErrorCode (*PostStep)(BoundaryCondition *self, BCContext *ctx, PetscReal *local_inflow, PetscReal *local_outflow);
329 PetscErrorCode (*UpdateUbcs)(BoundaryCondition *self,BCContext *ctx);
330 PetscErrorCode (*Destroy)(BoundaryCondition *self);
332
333/** @brief Holds the complete configuration for one of the six boundary faces. */
341
342//--------------------------------------------------------------------------------
343// 6. IMBERSED BOUNDARY METHOD (IBM) & FSI STRUCTS
344//--------------------------------------------------------------------------------
345
346/** @brief Holds interpolation and distance information for a single IBM point. */
347typedef struct IBMInfo {
348 PetscInt i1, j1, k1, i2, j2, k2, i3, j3, k3;
349 PetscReal cr1, cr2, cr3;
350 PetscReal d_i;
351 PetscInt imode;
352 PetscInt ni, nj, nk;
353 PetscReal d_s;
355 PetscInt cell;
356 PetscReal cs1, cs2, cs3;
357 PetscInt i11, j11, k11, i22, j22, k22, i33, j33, k33;
358 PetscReal cr11, cr22, cr33;
359 PetscReal d_ii;
360 PetscInt iimode;
361 PetscReal cs11, cs22, cs33;
362 PetscInt ii1, jj1, kk1, ii2, jj2, kk2, ii3, jj3, kk3;
363 PetscReal ct1, ct2, ct3;
364 PetscInt smode;
365 PetscInt ii11, jj11, kk11, ii22, jj22, kk22, ii33, jj33, kk33;
366 PetscReal ct11, ct22, ct33;
367 PetscReal d_ss;
368 PetscInt ssmode;
369} IBMInfo;
370
371/** @brief Represents a collection of nodes forming a surface for the IBM. */
372typedef struct IBMNodes {
373 PetscInt nbnumber;
374 PetscInt n_v, n_elmt;
375 PetscInt *nv1, *nv2, *nv3;
376 PetscReal *nf_x, *nf_y, *nf_z;
377 PetscReal *x_bp, *y_bp, *z_bp;
378 PetscReal *x_bp0, *y_bp0, *z_bp0;
379 PetscReal *x_bp_o, *y_bp_o, *z_bp_o;
380 PetscReal *cf, *cfsum, *CCp;
381 PetscReal x_bp_in[101][3270], y_bp_in[101][3270], z_bp_in[101][3270];
383 PetscReal *dA, *nt_x, *nt_y, *nt_z, *ns_x, *ns_y, *ns_z;
384 PetscReal *cent_x, *cent_y, *cent_z;
385 PetscReal *pres, *tau0, *tauN, *Bvel_u, *Bvel_v, *Bvel_w;
388 PetscReal *radvec;
389} IBMNodes;
390
391/** @brief Represents a collection of nodes forming a volume for the IBM. */
392typedef struct IBMVNodes {
393 PetscInt nbnumber;
394 PetscInt n_v, n_elmt;
395 PetscInt *nv1, *nv2, *nv3, *nv4;
396 PetscReal *x_bp, *y_bp, *z_bp;
397 PetscReal *x_bp0, *y_bp0, *z_bp0;
398 PetscReal *x_bp_o, *y_bp_o, *z_bp_o;
400 PetscReal V, *dV0;
401 PetscReal *cent_x, *cent_y, *cent_z;
402 PetscReal x_c, y_c, z_c;
403 PetscReal J[3][3], I_inv[3][3];
404} IBMVNodes;
405
406/** @brief A generic C-style linked list node for integers. */
407typedef struct node{
408 PetscInt Node;
409 struct node *next;
411
412/** @brief Head of a generic C-style linked list. */
413typedef struct list{
416
417/** @brief A generic C-style linked list node for indices. */
418typedef struct list_node {
419 PetscInt index;
422
423/** @brief A linked list node containing IBM interpolation info. */
428
429/** @brief Head of a linked list for IBM data. */
433
434/** @brief Information about a surface element for FSI calculations. */
435typedef struct SurfElmtInfo {
436 PetscReal P;
437 PetscInt n_P;
438 PetscReal Tow_ws, Tow_wt, Tow_wn;
440 PetscInt icell, jcell, kcell;
443
444/** @brief Holds all data related to the state and motion of a body in FSI. */
445typedef struct FSInfo {
446 PetscReal S_new[6], S_old[6], S_real[6], S_realm1[6];
447 PetscReal S_ang_n[6], S_ang_o[6], S_ang_r[6], S_ang_rm1[6];
448 PetscReal red_vel, damp, mu_s;
449 PetscReal F_x, F_y, F_z, A_tot;
452 PetscReal M_x, M_y, M_z;
457 PetscReal x_c, y_c, z_c;
458 PetscReal a_c[3];
461 PetscReal Power, clone;
462 PetscInt pbc[3];
463 PetscReal I_inv[3][3];
464 PetscReal L_n[3], L_o[3], L_r[3];
465 PetscReal alpha[3], acc[3];
466 PetscReal R[3][3], q[4], q_r[4];
467 PetscReal dS[6], dS_o[6], atk, atk_o;
471 PetscInt CV_ys, CV_ye, CV_zs, CV_ze;
472} FSInfo;
473
474/** @brief Defines prescribed body motion using splines. */
475typedef struct Cstart {
477 PetscReal *x_midp, *y_midp, *z_midp;
478 PetscReal *x_com, *y_com, *head_ang;
479 PetscReal *s1, *s2, *s3, *st1, *st2, *st3;
480 Mat Mphi;
481 PetscReal xmin, xmax, ymin, ymax, zmin, zmax;
482} Cstart;
483
484//--------------------------------------------------------------------------------
485// 7. LES/RANS TURBULENCE MODEL STRUCTS & ENUMS
486//--------------------------------------------------------------------------------
487/** @brief Identifies the six logical faces of a structured computational block. */
493//--------------------------------------------------------------------------------
494// 8. MULTIGRID, SOLVERS AND POST-PROCESSING STRUCTS AND ENUMS
495//--------------------------------------------------------------------------------
496
497/** @brief Enumerator to identify the implemented momentum solver strategies.
498 *
499 * Add new enum values only when the parser, runtime dispatch, docs, and tests
500 * are updated in the same change.
501 */
506
507/** @brief Enumerator to identify the particle initialization strategy. */
508typedef enum {
509 PARTICLE_INIT_SURFACE_RANDOM = 0, /**< Random placement on the inlet face */
510 PARTICLE_INIT_VOLUME = 1, /**< Random volumetric distribution across the domain */
511 PARTICLE_INIT_POINT_SOURCE = 2, /**< All particles at a fixed (psrc_x,psrc_y,psrc_z) — for validation */
512 PARTICLE_INIT_SURFACE_EDGES = 3 /**< Deterministic placement at inlet face edges */
514
515/**
516 * @brief Selects the grid-to-particle interpolation method.
517 *
518 * - INTERP_TRILINEAR: Direct trilinear from 8 nearest cell centers (second-order on curvilinear grids).
519 * - INTERP_CORNER_AVERAGED: Legacy center-to-corner average, then trilinear from corners.
520 */
525
526/** @brief Context for Multigrid operations. */
527typedef struct MGCtx {
529 PetscInt thislevel;
531} MGCtx;
532
533/** @brief User-level context for managing the entire multigrid hierarchy. */
534typedef struct UserMG {
535 PetscInt mglevels;
536 PetscInt thislevel;
537 PetscBool isc, jsc, ksc;
541} UserMG;
542
543#define MAX_PIPELINE_LENGTH 1024
544#define MAX_FIELD_LIST_LENGTH 1024
545#define MAX_FILENAME_LENGTH 256
546/// Defines the maximum number of data fields for VTK point data.
547#define MAX_POINT_DATA_FIELDS 20
548#define MAX_VTK_FIELD_NAME_LENGTH 64 ///< Maximum length for VTK field names.
549/**
550 * @brief Holds all configuration parameters for a post-processing run.
551 * This is an enhanced version combining command-line and file-based settings.
552 */
553typedef struct PostProcessParams {
554 // -- Source Directory --- (For Data)
555 char source_dir[PETSC_MAX_PATH_LEN];
556
557 // --- Time Controls (can be set by command line or file) ---
558 PetscInt startTime;
559 PetscInt endTime;
560 PetscInt timeStep;
562
563 // --- Configuration primarily from the .cfg file ---
572
573 // --- Statistics Pipeline (global reductions → CSV files) ---
574 char statistics_pipeline[MAX_PIPELINE_LENGTH]; /**< e.g. "ComputeMSD" */
575 char statistics_output_prefix[MAX_FILENAME_LENGTH]; /**< basename for CSV output, e.g. "Stats" */
576
577 // --- Legacy settings ---
578 char eulerianExt[8]; // from original PostProcessParams (repurposed for PreCheckAndResize() as the input file extension.)
579 char particleExt[8]; // from original PostProcessParams
580
581 // --- Processing Parameters ---
582 PetscInt reference[3]; // Reference point for normalizing any field against.
583
585
586/**
587 * @brief Stores all necessary information for a single data array in a VTK file.
588 */
589typedef struct VTKFieldInfo {
590 char name[MAX_VTK_FIELD_NAME_LENGTH]; // Name of the data field
591 PetscInt num_components; // 1 for scalar, 3 for vector
592 PetscScalar* data; // Pointer to the raw data array (must be freed by caller)
594
595/** @brief Enumerates the type of VTK file to be written. */
600
611
612/**
613 * @brief Defines the execution mode of the application.
614 */
615typedef enum {
616 EXEC_MODE_SOLVER, // The application is running as the main fluid solver.
617 EXEC_MODE_POSTPROCESSOR, // The application is running as the post-processor.
618 EXEC_MODE_UNKNOWN // Default/error state.
620
621//-------------------------------------------------------------------------------
622// 9. SCALING AND DIMENSIONAL ANALYSIS STRUCTS
623//-------------------------------------------------------------------------------
624typedef struct ScalingCtx{
625 PetscReal L_ref;
626 PetscReal U_ref;
627 PetscReal rho_ref;
628 PetscReal P_ref;
630//-------------------------------------------------------------------------------
631/*================================================================================*
632 * MAIN APPLICATION CONTEXT *
633 *================================================================================*/
634
635/**
636 * @brief The master context for the entire simulation.
637 *
638 * This struct encapsulates all global configuration flags, physical parameters,
639 * simulation control settings, and top-level data objects. It replaces the
640 * numerous global variables from the legacy codebase, providing a single,
641 * explicit source of truth for the simulation's setup.
642 */
643typedef struct SimCtx {
644
645 //================ Group 1: Parallelism & MPI Information ================
646 PetscMPIInt rank;
647 PetscMPIInt size;
648
649 //================ Group 2: Simulation Control, Time, and I/O ================
650
651 PetscInt step;
652 PetscReal ti;
653 PetscInt StartStep;
654 PetscInt StepsToRun;
655 PetscInt tiout;
657 PetscReal StartTime;
658 PetscReal dt;
659 PetscBool OnlySetup;
660 PetscBool continueMode;
661 PetscViewer logviewer;
663 char eulerianSource[PETSC_MAX_PATH_LEN];
664 char restart_dir[PETSC_MAX_PATH_LEN];
665 char output_dir[PETSC_MAX_PATH_LEN];
666 char euler_subdir[PETSC_MAX_PATH_LEN];
667 char particle_subdir[PETSC_MAX_PATH_LEN];
668 char log_dir[PETSC_MAX_PATH_LEN];
669 char _io_context_buffer[PETSC_MAX_PATH_LEN]; // Persistent store for I/O context strings.
670 char *current_io_directory; // Pointer into the above buffer.
671
672 //================ Group 3: High-Level Physics & Model Selection Flags ================
676 char AnalyticalSolutionType[PETSC_MAX_PATH_LEN];
677
678 //================ Group 4: Specific Simulation Case Flags ================
680 PetscInt channelz;
681
682 //================ Group 5: Solver & Numerics Parameters ================
687 PetscInt poisson;
688 PetscReal poisson_tol;
690
693 PetscReal max_pseudo_cfl, min_pseudo_cfl; // New addition for adaptive pseudo-CFL
694 PetscReal mom_dt_rk4_residual_norm_noise_allowance_factor; // New addition for divergence detection
695 PetscBool ps_ksp_pic_monitor_true_residual; // Parsed once from options for custom Poisson monitor logging.
701
702 //================ Group 6: Physical & Geometric Parameters ================
705 PetscReal CMx_c, CMy_c, CMz_c;
706 PetscReal psrc_x, psrc_y, psrc_z; /**< Point source location for PARTICLE_INIT_POINT_SOURCE */
710
711 //================ Group 7: Grid, Domain, and Boundary Condition Settings ================
714 PetscBool generate_grid;
716 PetscReal Croty, Crotz;
717 char grid_file[PETSC_MAX_PATH_LEN];
720 char **bcs_files;
722 // Turbulent Flat Channel with Forcing term
724 PetscReal targetVolumetricFlux; // for DRIVEN flow.
727 PetscReal U_bc;
728 PetscInt ccc;
729 PetscReal ratio;
730
731 //================ Group 8: Turbulence Modeling (LES/RANS) ================
732 PetscInt les, rans;
734 PetscReal max_cs,Const_CS;
736 PetscBool averaging;
737
738 //================ Group 9: Particle / DMSwarm Data & Settings ================
739 PetscInt np;
740 PetscBool readFields;
753 PetscRandom BrownianMotionRNG;
754 PetscReal C_IEM;
755
756 //================ Group 10: Immersed Boundary & FSI Data Object Pointers ================
760 PetscBool rstart_fsi;
761 PetscInt duplicate;
762
763 //================ Group 11: Top-Level Managers, Custom Configuration,Logging/Monitoring ====
765 char allowedFile[PETSC_MAX_PATH_LEN];
766 PetscBool useCfg;
768 PetscInt nAllowed;
770 PetscReal summationRHS;
771 PetscReal MaxDiv;
773 // Profiling
774 char profilingSelectedFuncsFile[PETSC_MAX_PATH_LEN];
779 char profilingTimestepFile[PETSC_MAX_PATH_LEN];
795
796 //================ Group 12: Post-Processing =================================================
797 char PostprocessingControlFile[PETSC_MAX_PATH_LEN];
799
800 //=============== Group 13: Miscellaneous =============================================
801 PetscReal r[101], tin[101], uinr[101][1001];
802
803} SimCtx;
804
805
806/**
807 * @brief User-defined context containing data specific to a single computational
808 * grid level. This is the primary data structure passed to low-level
809 * numerical and solver functions.
810 */
811typedef struct UserCtx {
812
813 // --- The Critical Link to Global Configuration ---
814 SimCtx *simCtx; ///< Back-pointer to the master simulation context.
815
816 // --- Grid, Geometry & Parallelization (Per-Level) ---
817 DM da, fda, fda2;
818 DMDALocalInfo info;
819 AO ao;
820 PetscInt IM, JM, KM; // No.of grid points.
825 PetscReal rx, ry, rz;
826 PetscInt cgrid;
827
828 // --- Boundary Conditions & Interfacing ---
835
836 // --- Primary Flow Fields (Global & Local Views) ---
838
839 // --- Secondary Flow & Derived Fields ---
842
843 // --- Time-Stepping & Solver Workspace Fields ---
847
848 // --- Pressure-Poisson System ---
849 Mat A, C; KSP ksp; MatNullSpace nullsp;
850 PetscInt *KSKE;
851 PetscBool multinullspace;
852 Vec B,R;
853 Mat MR, MP;
854 PetscBool assignedA;
855
856
857 // --- Grid Metrics (Global and Local) ---
859 Vec Centx,Centy,Centz; // these are already local vectors.
863
864 // --- Turbulence Modeling (LES/RANS) ---
866
867 // --- Statistical Averaging ---
869
870 // --- Immersed Boundary Method (IBM) ---
872
873 // --- Multigrid Hierarchy ---
876 DM *da_f, *da_c;
878
879 // --- Particle System ---
883 Vec Psi, lPsi; //scalar dummy to demonstrate scatter.
884
885 // --- Post-Processing ---
889 Vec Qcrit;
891
892} UserCtx;
893
894#ifdef __cplusplus
895}
896#endif
897
898#endif // VARIABLES_H
The "virtual table" struct for a boundary condition handler object.
Definition variables.h:321
PetscErrorCode(* PostStep)(BoundaryCondition *self, BCContext *ctx, PetscReal *local_inflow, PetscReal *local_outflow)
Definition variables.h:328
PetscErrorCode(* PreStep)(BoundaryCondition *self, BCContext *ctx, PetscReal *local_inflow, PetscReal *local_outflow)
Definition variables.h:326
BCHandlerType type
Definition variables.h:322
PetscErrorCode(* Destroy)(BoundaryCondition *self)
Definition variables.h:330
PetscErrorCode(* Initialize)(BoundaryCondition *self, BCContext *ctx)
Definition variables.h:325
PetscErrorCode(* UpdateUbcs)(BoundaryCondition *self, BCContext *ctx)
Definition variables.h:329
PetscErrorCode(* Apply)(BoundaryCondition *self, BCContext *ctx)
Definition variables.h:327
BCPriorityType priority
Definition variables.h:323
PetscReal M_x_rm3
Definition variables.h:456
PetscReal y_c
Definition variables.h:402
PetscReal * x_bp_o
Definition variables.h:379
PetscMPIInt rank_zm
Definition variables.h:182
LESModelType
Identifies the six logical faces of a structured computational block.
Definition variables.h:488
@ DYNAMIC_SMAGORINSKY
Definition variables.h:491
@ NO_LES_MODEL
Definition variables.h:489
@ CONSTANT_SMAGORINSKY
Definition variables.h:490
PetscInt MHV
Definition variables.h:679
Vec lFriction_Velocity
Definition variables.h:833
const PetscReal * global_outflow_sum
Definition variables.h:317
Vec lDiffusivityGradient
Definition variables.h:841
PetscInt isc
Definition variables.h:824
PetscInt CV_ye
Definition variables.h:471
Cmpnts * urm1
Definition variables.h:399
DM packer
Definition variables.h:539
PetscInt turbine
Definition variables.h:679
PetscReal P
Definition variables.h:436
PetscInt ii22
Definition variables.h:365
PetscInt fishcyl
Definition variables.h:679
PetscInt clark
Definition variables.h:733
PetscReal FarFluxInSum
Definition variables.h:721
char statistics_output_prefix[256]
basename for CSV output, e.g.
Definition variables.h:575
PetscInt movefsi
Definition variables.h:673
Vec lCent
Definition variables.h:858
BCType
Defines the general mathematical/physical Category of a boundary.
Definition variables.h:251
@ MOVING_WALL
Definition variables.h:255
@ INLET
Definition variables.h:258
@ INTERFACE
Definition variables.h:253
@ ANNULUS
Definition variables.h:264
@ ANALYTICAL_VORTEX
Definition variables.h:262
@ RHEOLOGY
Definition variables.h:266
@ FARFIELD
Definition variables.h:259
@ CHARACTERISTIC_BC
Definition variables.h:261
@ SYMMETRY
Definition variables.h:256
@ WALLFUNCTION
Definition variables.h:252
@ OGRID
Definition variables.h:265
@ OUTLET
Definition variables.h:257
@ PERIODIC
Definition variables.h:260
@ JUNCTION
Definition variables.h:263
@ WALL
Definition variables.h:254
PetscReal M_x_rm2
Definition variables.h:455
Vec GridSpace
Definition variables.h:858
PetscInt j2
Definition variables.h:348
struct list_node * next
Definition variables.h:420
PetscBool continueMode
Definition variables.h:660
PetscReal * dA
Definition variables.h:383
PetscInt jj11
Definition variables.h:365
PetscReal F_x
Definition variables.h:449
PetscInt moveframe
Definition variables.h:674
Vec P_nodal
Definition variables.h:887
Vec JCsi
Definition variables.h:861
Vec KAj
Definition variables.h:862
Cmpnts vel
Definition variables.h:169
PetscReal * cent_y
Definition variables.h:384
PetscInt TwoD
Definition variables.h:674
PetscInt pseudo_periodic
Definition variables.h:713
UserCtx * user
Definition variables.h:528
PetscInt fish_c
Definition variables.h:679
PetscReal d_s
Definition variables.h:353
PetscReal FarFluxOutSum
Definition variables.h:721
Mat Mphi
Definition variables.h:480
PetscInt ssmode
Definition variables.h:368
#define MAX_POINT_DATA_FIELDS
Defines the maximum number of data fields for VTK point data.
Definition variables.h:547
PetscInt k22
Definition variables.h:357
PetscReal I_inv[3][3]
Definition variables.h:403
PetscInt ys_cell
Definition variables.h:187
PetscReal clone
Definition variables.h:461
PetscInt n_elmt
Definition variables.h:394
PetscInt npoints
Definition variables.h:604
PetscInt dgf_z
Definition variables.h:675
PetscInt i22
Definition variables.h:357
PetscBool inletFaceDefined
Definition variables.h:830
Vec JEta
Definition variables.h:861
PetscInt i1
Definition variables.h:348
PetscReal S_ang_o[6]
Definition variables.h:447
PetscReal poisson_tol
Definition variables.h:688
Vec Zet
Definition variables.h:858
PetscInt j11
Definition variables.h:357
PetscInt i3
Definition variables.h:348
PetscInt icell
Definition variables.h:440
Vec Rhs
Definition variables.h:845
IBMList * ibmlist
Definition variables.h:871
PetscInt num_components
Definition variables.h:591
PetscInt j3
Definition variables.h:348
PetscReal * y_bp
Definition variables.h:396
PetscBool profilingFinalSummary
Definition variables.h:780
char particle_output_prefix[256]
Definition variables.h:570
PetscInt xs_cell
Definition variables.h:187
PetscReal y_bp_in[101][3270]
Definition variables.h:381
PetscReal schmidt_number
Definition variables.h:709
PetscMPIInt rank
Definition variables.h:646
PetscInt imode
Definition variables.h:351
PetscInt kk22
Definition variables.h:365
PetscInt mglevels
Definition variables.h:874
char profilingTimestepFile[PETSC_MAX_PATH_LEN]
Definition variables.h:779
PetscInt fish
Definition variables.h:679
PetscInt LV
Definition variables.h:679
PetscReal mu_s
Definition variables.h:448
PetscReal angle
Definition variables.h:704
PetscReal Turbulent_schmidt_number
Definition variables.h:709
PetscReal cr33
Definition variables.h:358
PetscInt target_rank
Definition variables.h:194
PetscReal tin[101]
Definition variables.h:801
PetscInt cgrid
Definition variables.h:826
PetscReal f
Definition variables.h:116
BoundaryFaceConfig boundary_faces[6]
Definition variables.h:829
PetscMPIInt rank_yp
Definition variables.h:181
PetscInt64 searchLocatedCount
Definition variables.h:224
PetscInt thin
Definition variables.h:674
PetscReal z_bp_in[101][3270]
Definition variables.h:381
PetscReal * s2
Definition variables.h:479
MatNullSpace nullsp
Definition variables.h:849
PetscInt grid1d
Definition variables.h:712
PetscInt block_number
Definition variables.h:712
Vec lIEta
Definition variables.h:860
PetscInt nbnumber
Definition variables.h:393
PetscReal * y_com
Definition variables.h:478
PetscInt num_point_data_fields
Definition variables.h:607
PetscReal * radvec
Definition variables.h:388
PetscReal * cent_y
Definition variables.h:401
PetscInt * KSKE
Definition variables.h:850
PetscReal * Bvel_v
Definition variables.h:385
PetscReal mom_rtol
Definition variables.h:685
PetscReal F_z_old
Definition variables.h:450
PetscInt64 searchLostCount
Definition variables.h:225
PetscInt ii1
Definition variables.h:362
BCFace identifiedInletBCFace
Definition variables.h:831
PetscInt da_procs_z
Definition variables.h:718
PetscInt blkpbc
Definition variables.h:713
PetscReal M_z
Definition variables.h:452
PetscInt sediment
Definition variables.h:673
PetscInt CV_zs
Definition variables.h:471
PetscReal J[3][3]
Definition variables.h:403
PetscReal R[3][3]
Definition variables.h:466
PetscReal F_y_real
Definition variables.h:451
PetscReal targetVolumetricFlux
Definition variables.h:724
PetscInt cell[3]
Definition variables.h:167
PetscReal Max_ybc
Definition variables.h:470
PetscReal xmax
Definition variables.h:481
PetscInt jj2
Definition variables.h:362
PetscReal * z_bp_o
Definition variables.h:398
PetscBool walltimeGuardActive
Definition variables.h:782
SNES snespacker
Definition variables.h:540
Vec lIZet
Definition variables.h:860
UserCtx * user_f
Definition variables.h:875
PetscInt channelz
Definition variables.h:680
Vec lNvert
Definition variables.h:837
Vec Phi
Definition variables.h:837
char euler_subdir[PETSC_MAX_PATH_LEN]
Definition variables.h:666
PetscReal walltimeGuardWarmupTotalSeconds
Definition variables.h:790
Cmpnts pmin
Definition variables.h:354
PetscInt CV_ys
Definition variables.h:471
PetscReal forceScalingFactor
Definition variables.h:723
PetscReal pseudo_cfl_reduction_factor
Definition variables.h:692
SimCtx * simCtx
Back-pointer to the master simulation context.
Definition variables.h:814
PetscInt rans
Definition variables.h:732
ParticleInitializationType
Enumerator to identify the particle initialization strategy.
Definition variables.h:508
@ PARTICLE_INIT_SURFACE_RANDOM
Random placement on the inlet face.
Definition variables.h:509
@ PARTICLE_INIT_SURFACE_EDGES
Deterministic placement at inlet face edges.
Definition variables.h:512
@ PARTICLE_INIT_POINT_SOURCE
All particles at a fixed (psrc_x,psrc_y,psrc_z) — for validation.
Definition variables.h:511
@ PARTICLE_INIT_VOLUME
Random volumetric distribution across the domain.
Definition variables.h:510
PetscReal zmin
Definition variables.h:481
PetscReal StartTime
Definition variables.h:657
PetscReal Mdpdn_x_old
Definition variables.h:460
ParticleLocationStatus
Defines the state of a particle with respect to its location and migration status during the iterativ...
Definition variables.h:135
@ LOST
Definition variables.h:139
@ NEEDS_LOCATION
Definition variables.h:136
@ ACTIVE_AND_LOCATED
Definition variables.h:137
@ UNINITIALIZED
Definition variables.h:140
@ MIGRATING_OUT
Definition variables.h:138
PetscReal * st3
Definition variables.h:479
PetscInt dgf_az
Definition variables.h:675
PetscReal * z_midp
Definition variables.h:477
PetscReal FluxOutSum
Definition variables.h:721
PetscReal * cent_x
Definition variables.h:401
PetscMPIInt rank_ym
Definition variables.h:181
PetscBool walltimeGuardHasEWMA
Definition variables.h:792
PetscReal CMy_c
Definition variables.h:705
Vec K_Omega_o
Definition variables.h:865
PetscReal cs2
Definition variables.h:356
PetscInt jj1
Definition variables.h:362
PetscReal cr22
Definition variables.h:358
Vec IZet
Definition variables.h:860
PetscMPIInt rank_xp
Definition variables.h:180
Vec Centz
Definition variables.h:859
char output_prefix[256]
Definition variables.h:567
PetscInt n_P
Definition variables.h:437
char ** bcs_files
Definition variables.h:720
PetscReal * x_bp_o
Definition variables.h:398
struct BC_Param_s * next
Definition variables.h:307
PetscReal max_angle
Definition variables.h:704
Vec IEta
Definition variables.h:860
PetscReal cr1
Definition variables.h:349
PetscReal Tow_wt
Definition variables.h:438
PetscReal acc[3]
Definition variables.h:465
PetscReal Min_X
Definition variables.h:821
PetscReal min_pseudo_cfl
Definition variables.h:693
PetscReal * head_ang
Definition variables.h:478
PetscInt64 boundaryClampCount
Definition variables.h:231
char * key
Definition variables.h:305
PetscInt * nv1
Definition variables.h:395
PetscInt ksc
Definition variables.h:824
PetscInt particlesLostLastStep
Definition variables.h:746
PetscReal Tow_wn
Definition variables.h:438
PetscInt KM
Definition variables.h:820
Vec Distance
Definition variables.h:865
PetscInt duplicate
Definition variables.h:761
PetscInt tiout
Definition variables.h:655
PetscReal xmin
Definition variables.h:481
Vec lZet
Definition variables.h:858
PetscBool assignedA
Definition variables.h:854
UserMG usermg
Definition variables.h:764
#define MAX_FIELD_LIST_LENGTH
Definition variables.h:544
PetscReal walltimeGuardMinSeconds
Definition variables.h:785
char allowedFile[PETSC_MAX_PATH_LEN]
Definition variables.h:765
PetscInt local_index
Definition variables.h:193
Vec Csi
Definition variables.h:858
PetscInt da_procs_y
Definition variables.h:718
PetscReal d_i
Definition variables.h:350
PetscReal L_ref
Definition variables.h:625
PetscInt Clsnbpt_j
Definition variables.h:439
PetscInt64 traversalStepsSum
Definition variables.h:226
PetscReal cs1
Definition variables.h:356
PetscInt n_subit
Definition variables.h:476
Vec K_Omega
Definition variables.h:865
PetscInt testfilter_1d
Definition variables.h:735
BCHandlerType
Defines the specific computational "strategy" for a boundary handler.
Definition variables.h:271
@ BC_HANDLER_INLET_PULSATILE_FLUX
Definition variables.h:280
@ BC_HANDLER_PERIODIC_GEOMETRIC
Definition variables.h:284
@ BC_HANDLER_INLET_PARABOLIC
Definition variables.h:277
@ BC_HANDLER_INLET_CONSTANT_VELOCITY
Definition variables.h:276
@ BC_HANDLER_PERIODIC_DRIVEN_INITIAL_FLUX
Definition variables.h:287
@ BC_HANDLER_INTERFACE_OVERSET
Definition variables.h:285
@ BC_HANDLER_PERIODIC_DRIVEN_CONSTANT_FLUX
Definition variables.h:286
@ BC_HANDLER_WALL_MOVING
Definition variables.h:274
@ BC_HANDLER_INLET_PROFILE_FROM_FILE
Definition variables.h:278
@ BC_HANDLER_WALL_NOSLIP
Definition variables.h:273
@ BC_HANDLER_OUTLET_CONSERVATION
Definition variables.h:282
@ BC_HANDLER_FARFIELD_NONREFLECTING
Definition variables.h:281
@ BC_HANDLER_OUTLET_PRESSURE
Definition variables.h:283
@ BC_HANDLER_SYMMETRY_PLANE
Definition variables.h:275
@ BC_HANDLER_INLET_INTERP_FROM_FILE
Definition variables.h:279
@ BC_HANDLER_UNDEFINED
Definition variables.h:272
char output_fields_averaged[1024]
Definition variables.h:566
PetscReal M_z_real
Definition variables.h:454
PetscReal psrc_x
Definition variables.h:706
PetscReal * ns_y
Definition variables.h:383
PetscInt FieldInitialization
Definition variables.h:696
#define MAX_PIPELINE_LENGTH
Definition variables.h:543
PetscReal ren
Definition variables.h:691
PetscReal Mdpdn_y_old
Definition variables.h:460
PetscReal F_z
Definition variables.h:449
PetscReal Crotz
Definition variables.h:716
BCHandlerType handler_type
Definition variables.h:337
DM post_swarm
Definition variables.h:886
PetscReal * tau0
Definition variables.h:385
PetscReal M_z_rm3
Definition variables.h:456
Vec lUcont_rm1
Definition variables.h:845
PetscInt mixed
Definition variables.h:733
PetscReal * y_bp0
Definition variables.h:397
PetscInt zm_cell
Definition variables.h:188
PetscReal M_y_real
Definition variables.h:454
Vec lIAj
Definition variables.h:860
SurfElmtInfo * elmtinfo
Definition variables.h:468
Cmpnts max_coords
Maximum x, y, z coordinates of the bounding box.
Definition variables.h:156
PetscInt zs_cell
Definition variables.h:187
PetscReal ct33
Definition variables.h:366
Vec lCellFieldAtCorner
Definition variables.h:846
IBMVNodes * ibmv
Definition variables.h:758
Cmpnts diffusivitygradient
Definition variables.h:174
PetscInt _this
Definition variables.h:824
PetscReal uinr[101][1001]
Definition variables.h:801
PetscReal L_o[3]
Definition variables.h:464
Vec lKEta
Definition variables.h:862
PetscInt k1
Definition variables.h:348
PetscInt jj3
Definition variables.h:362
PetscInt * nv3
Definition variables.h:375
PetscInt64 searchPopulation
Definition variables.h:223
Cmpnts * uold
Definition variables.h:382
PetscInt reference[3]
Definition variables.h:582
char output_dir[PETSC_MAX_PATH_LEN]
Definition variables.h:665
PetscInt kcell
Definition variables.h:440
PetscReal walltimeGuardLatestStepSeconds
Definition variables.h:794
PetscReal dt
Definition variables.h:658
PetscReal ry
Definition variables.h:825
PetscReal V
Definition variables.h:400
PetscReal * st1
Definition variables.h:479
PetscInt * connectivity
Definition variables.h:608
PetscInt occupiedCellCount
Definition variables.h:750
PetscInt StepsToRun
Definition variables.h:654
char profilingTimestepMode[32]
Definition variables.h:778
PetscReal y
Definition variables.h:111
const PetscReal * global_farfield_outflow_sum
Definition variables.h:316
PetscInt k_periodic
Definition variables.h:713
PetscInt inletprofile
Definition variables.h:712
PetscReal * cent_z
Definition variables.h:401
PetscInt * offsets
Definition variables.h:609
PetscInt k33
Definition variables.h:357
Vec Ucat_nodal
Definition variables.h:888
RankNeighbors neighbors
Definition variables.h:823
PetscReal bulkVelocityCorrection
Definition variables.h:725
PetscReal * cent_z
Definition variables.h:384
PetscReal cdisy
Definition variables.h:691
PetscReal mom_atol
Definition variables.h:685
PetscReal Max_xbc
Definition variables.h:470
PetscReal * z_bp0
Definition variables.h:397
PetscInt k3
Definition variables.h:348
PetscReal cr11
Definition variables.h:358
PetscInt jj22
Definition variables.h:365
Vec lPsi
Definition variables.h:883
PetscBool rstart_fsi
Definition variables.h:760
PetscInt timeStep
Definition variables.h:560
PetscInt currentSettlementPass
Definition variables.h:235
PetscInt np
Definition variables.h:739
PetscReal cs22
Definition variables.h:361
PetscInt jsc
Definition variables.h:824
PetscReal x_bp_in[101][3270]
Definition variables.h:381
PetscInt smode
Definition variables.h:364
Cmpnts * qvec
Definition variables.h:387
PetscReal Max_Y
Definition variables.h:821
PetscInt thislevel
Definition variables.h:529
PetscBool averaging
Definition variables.h:736
PetscReal y_min
Definition variables.h:386
PetscReal C_IEM
Definition variables.h:754
Vec DiffusivityGradient
Definition variables.h:841
Vec lJCsi
Definition variables.h:861
char * value
Definition variables.h:306
PetscReal * x_com
Definition variables.h:478
PetscInt ccc
Definition variables.h:728
PetscReal * CCp
Definition variables.h:380
BCFace face_id
Definition variables.h:313
PetscReal q_r[4]
Definition variables.h:466
Vec lCs
Definition variables.h:865
PetscReal M_y_rm2
Definition variables.h:455
PetscReal ratio
Definition variables.h:729
#define MAX_FILENAME_LENGTH
Definition variables.h:545
PetscInt Node
Definition variables.h:408
PetscReal d_ss
Definition variables.h:367
PetscInt kk2
Definition variables.h:362
PetscInt mg_idx
Definition variables.h:686
Vec Ucont
Definition variables.h:837
PetscInt thislevel
Definition variables.h:536
PetscReal * z_bp
Definition variables.h:396
PetscInt StartStep
Definition variables.h:653
PetscInt mg_MAX_IT
Definition variables.h:686
PetscReal Mdpdn_z_old
Definition variables.h:460
PetscReal red_vel
Definition variables.h:448
Cmpnts min_coords
Minimum x, y, z coordinates of the bounding box.
Definition variables.h:155
PetscBool OnlySetup
Definition variables.h:659
PetscInt rotatefsi
Definition variables.h:673
PetscReal F_y_old
Definition variables.h:450
PetscInt cell
Definition variables.h:355
PetscReal M_y_rm3
Definition variables.h:456
Vec Ubcs
Physical Cartesian velocity at boundary faces. Full 3D array but only boundary-face entries are meani...
Definition variables.h:121
PetscReal * pres
Definition variables.h:385
MomentumSolverType
Enumerator to identify the implemented momentum solver strategies.
Definition variables.h:502
@ MOMENTUM_SOLVER_EXPLICIT_RK
Definition variables.h:503
@ MOMENTUM_SOLVER_DUALTIME_PICARD_RK4
Definition variables.h:504
PetscReal cdisz
Definition variables.h:691
Vec Qcrit
Definition variables.h:889
PetscInt jcell
Definition variables.h:440
PetscReal S_realm1[6]
Definition variables.h:446
PetscReal * nt_x
Definition variables.h:383
PetscReal * y_bp_o
Definition variables.h:398
PetscScalar x
Definition variables.h:101
Cmpnts loc
Definition variables.h:168
PetscReal y_max
Definition variables.h:386
PetscReal ct11
Definition variables.h:366
Vec JZet
Definition variables.h:861
PetscReal x_c
Definition variables.h:402
PetscReal x_max
Definition variables.h:386
PetscInt64 reSearchCount
Definition variables.h:227
PetscInt dgf_x
Definition variables.h:675
Vec Ucat_square_sum
Definition variables.h:868
PetscReal dS[6]
Definition variables.h:467
char * current_io_directory
Definition variables.h:670
PetscInt pizza
Definition variables.h:679
PetscReal MaxDiv
Definition variables.h:771
PetscMPIInt destination_rank
Definition variables.h:172
Vec P_sum
Definition variables.h:868
Vec Centx
Definition variables.h:859
BCS Bcs
Definition variables.h:832
PetscReal x
Definition variables.h:111
UserCtx * user
Definition variables.h:312
PetscReal atk
Definition variables.h:467
char grid_file[PETSC_MAX_PATH_LEN]
Definition variables.h:717
PetscReal * y_bp0
Definition variables.h:378
PetscReal * x_bp0
Definition variables.h:397
Vec lPhi
Definition variables.h:837
PetscReal max_cs
Definition variables.h:734
Vec lParticleCount
Definition variables.h:882
PetscInt FoundAroundcell
Definition variables.h:441
PetscInt invicid
Definition variables.h:674
char ** allowedFuncs
Definition variables.h:767
PetscInt xm_cell
Definition variables.h:188
char statistics_pipeline[1024]
e.g.
Definition variables.h:574
struct IBMListNode * next
Definition variables.h:426
Vec lUcont_o
Definition variables.h:844
PetscInt * nv4
Definition variables.h:395
PetscInt64 bboxGuessFallbackCount
Definition variables.h:233
InterpolationMethod interpolationMethod
Definition variables.h:744
PetscReal * nf_x
Definition variables.h:376
RankCellInfo * RankCellInfoMap
Definition variables.h:881
PetscReal ymin
Definition variables.h:481
PetscReal psrc_z
Point source location for PARTICLE_INIT_POINT_SOURCE.
Definition variables.h:706
const PetscReal * global_inflow_sum
Definition variables.h:314
PetscReal S_ang_r[6]
Definition variables.h:447
VTKFileType fileType
Definition variables.h:602
PetscReal * nt_y
Definition variables.h:383
DM * da_c
Definition variables.h:876
PetscReal * ns_z
Definition variables.h:383
PetscInt * nv3
Definition variables.h:395
PetscInt mg_poItr
Definition variables.h:686
PetscReal Min_ybc
Definition variables.h:470
PetscInt pbc[3]
Definition variables.h:462
PetscInt STRONG_COUPLING
Definition variables.h:689
PetscInt ym_cell
Definition variables.h:188
VerificationScalarConfig verificationScalar
Definition variables.h:700
PetscReal max_pseudo_cfl
Definition variables.h:693
PetscReal S_real[6]
Definition variables.h:446
PetscReal S_new[6]
Definition variables.h:446
PetscInt nk
Definition variables.h:352
Vec Ucat_o
Definition variables.h:844
char output_fields_instantaneous[1024]
Definition variables.h:565
PetscInt MaxDivx
Definition variables.h:772
PetscReal L_n[3]
Definition variables.h:464
UserCtx * user_c
Definition variables.h:875
PetscInt j33
Definition variables.h:357
PetscInt jj33
Definition variables.h:365
PetscReal t
Definition variables.h:116
PetscReal * nf_y
Definition variables.h:376
PetscInt poisson
Definition variables.h:687
PetscInt k_homo_filter
Definition variables.h:735
PetscInt * nv1
Definition variables.h:375
Cmpnts * u
Definition variables.h:382
PetscScalar * data
Definition variables.h:592
PetscInt iimode
Definition variables.h:360
char profilingSelectedFuncsFile[PETSC_MAX_PATH_LEN]
Definition variables.h:774
PetscInt MaxDivy
Definition variables.h:772
ParticleLocationStatus location_status
Definition variables.h:171
PetscInt NumberOfBodies
Definition variables.h:703
char particleRestartMode[16]
Definition variables.h:745
PetscReal dS_o[6]
Definition variables.h:467
PetscReal * cent_x
Definition variables.h:384
PetscInt Ogrid
Definition variables.h:712
char eulerianExt[8]
Definition variables.h:578
PetscReal F_x_real
Definition variables.h:451
PetscInt Need3rdPoint
Definition variables.h:441
PetscInt64 bboxGuessSuccessCount
Definition variables.h:232
char particle_subdir[PETSC_MAX_PATH_LEN]
Definition variables.h:667
PetscInt MaxDivz
Definition variables.h:772
PetscInt Clsnbpt_k
Definition variables.h:439
PetscReal damp
Definition variables.h:448
BoundingBox * bboxlist
Definition variables.h:742
PetscInt j_homo_filter
Definition variables.h:735
Vec lKZet
Definition variables.h:862
PetscReal * x_midp
Definition variables.h:477
Vec Eta
Definition variables.h:858
PetscReal * cfsum
Definition variables.h:380
PetscReal Max_zbc
Definition variables.h:470
PetscInt n_elmt
Definition variables.h:374
PetscInt eel
Definition variables.h:679
char log_dir[PETSC_MAX_PATH_LEN]
Definition variables.h:668
PetscReal Mdpdn_x
Definition variables.h:459
PetscInt MaxDivFlatArg
Definition variables.h:772
Vec lNu_t
Definition variables.h:865
PetscReal FluxInSum
Definition variables.h:721
PetscReal * s3
Definition variables.h:479
PetscMPIInt rank_xm
Definition variables.h:180
Vec Nu_t
Definition variables.h:865
PetscInt walltimeGuardCompletedSteps
Definition variables.h:789
DM * da_f
Definition variables.h:876
PetscInt64 maxParticlePassDepth
Definition variables.h:234
PetscReal rz
Definition variables.h:825
char source_dir[PETSC_MAX_PATH_LEN]
Definition variables.h:555
PetscReal d_ii
Definition variables.h:359
PetscReal * ns_x
Definition variables.h:383
PetscReal z_c
Definition variables.h:402
Vec lJEta
Definition variables.h:861
Vec lCsi
Definition variables.h:858
PetscInt j1
Definition variables.h:348
PetscReal M_z_rm2
Definition variables.h:455
PetscReal CMz_c
Definition variables.h:705
Vec lGridSpace
Definition variables.h:858
PetscInt64 maxTraversalSteps
Definition variables.h:228
PetscBool generate_grid
Definition variables.h:714
PetscInt thislevel
Definition variables.h:874
char particle_pipeline[1024]
Definition variables.h:568
PetscInt * nv2
Definition variables.h:375
Cmpnts AnalyticalUniformVelocity
Definition variables.h:698
BC_Param * params
Definition variables.h:338
char eulerianSource[PETSC_MAX_PATH_LEN]
Definition variables.h:663
PetscReal * nf_z
Definition variables.h:376
PetscReal imp_stol
Definition variables.h:685
PetscReal cr2
Definition variables.h:349
PetscInt nAllowed
Definition variables.h:768
PetscBool walltimeGuardEnabled
Definition variables.h:781
Vec ICsi
Definition variables.h:860
PetscReal z_max
Definition variables.h:386
PetscReal wall_roughness_height
Definition variables.h:708
PetscBool useProfilingSelectedFuncsCfg
Definition variables.h:775
PetscInt walltimeGuardWarmupSteps
Definition variables.h:783
ParticleInitializationType ParticleInitialization
Definition variables.h:743
PetscScalar z
Definition variables.h:101
Vec pUcont
Definition variables.h:845
InterpolationMethod
Selects the grid-to-particle interpolation method.
Definition variables.h:521
@ INTERP_CORNER_AVERAGED
Definition variables.h:523
@ INTERP_TRILINEAR
Definition variables.h:522
Vec lK_Omega_o
Definition variables.h:865
Vec lKCsi
Definition variables.h:862
Vec Ucat
Definition variables.h:837
PetscReal ct3
Definition variables.h:363
Vec ParticleCount
Definition variables.h:882
PetscReal * z_bp0
Definition variables.h:378
IBMInfo ibm_intp
Definition variables.h:425
PetscReal S_ang_n[6]
Definition variables.h:447
ScalingCtx scaling
Definition variables.h:707
PetscReal FluxIntfcSum
Definition variables.h:834
PetscBool ksc
Definition variables.h:537
PetscReal Const_CS
Definition variables.h:734
Vec lK_Omega
Definition variables.h:865
IBMInfo * fsi_intp
Definition variables.h:469
Vec Ucont_o
Definition variables.h:844
struct node * next
Definition variables.h:409
PetscInt i_homo_filter
Definition variables.h:735
PetscInt index
Definition variables.h:419
Vec CellFieldAtCorner
Definition variables.h:846
PetscReal ct2
Definition variables.h:363
PetscInt JM
Definition variables.h:820
PetscReal M_x_old
Definition variables.h:453
PetscInt wallfunction
Definition variables.h:733
PetscInt ii11
Definition variables.h:365
PetscInt kk1
Definition variables.h:362
PetscInt rheology
Definition variables.h:673
struct list List
Head of a generic C-style linked list.
PetscReal Flux_in
Definition variables.h:704
PetscReal x_min
Definition variables.h:386
char name[64]
Definition variables.h:590
PetscReal I_inv[3][3]
Definition variables.h:463
PetscInt k2
Definition variables.h:348
PetscReal L_r[3]
Definition variables.h:464
PetscScalar * coords
Definition variables.h:605
PetscInt mglevels
Definition variables.h:535
char ** profilingSelectedFuncs
Definition variables.h:776
PetscReal F_z_real
Definition variables.h:451
PetscReal cdisx
Definition variables.h:691
PetscReal F_x_old
Definition variables.h:450
PetscReal Min_Z
Definition variables.h:821
PetscInt dgf_ax
Definition variables.h:675
const PetscReal * global_farfield_inflow_sum
Definition variables.h:315
PetscInt mglevels
Definition variables.h:686
DM packer
Definition variables.h:530
Vec Ucat_sum
Definition variables.h:868
PetscInt num_bcs_files
Definition variables.h:719
PetscReal q[4]
Definition variables.h:466
DM dm_swarm
Definition variables.h:741
PetscBool useCfg
Definition variables.h:766
PetscReal psrc_y
Definition variables.h:706
PetscBool readFields
Definition variables.h:740
PetscInt central
Definition variables.h:689
char process_pipeline[1024]
Definition variables.h:564
PetscInt particle_output_freq
Definition variables.h:571
PetscReal Fluxsum
Definition variables.h:721
PetscReal ct1
Definition variables.h:363
Vec lJZet
Definition variables.h:861
Vec Nvert_o
Definition variables.h:844
PetscReal a_c[3]
Definition variables.h:458
char particle_fields[1024]
Definition variables.h:569
PetscReal pseudo_cfl_growth_factor
Definition variables.h:692
PetscBool outputParticles
Definition variables.h:561
PetscReal Croty
Definition variables.h:716
PetscReal S_old[6]
Definition variables.h:446
PetscInt particlesLostCumulative
Definition variables.h:747
VTKFieldInfo point_data_fields[20]
Definition variables.h:606
PetscInt nProfilingSelectedFuncs
Definition variables.h:777
PetscInt i33
Definition variables.h:357
Vec IAj
Definition variables.h:860
PetscReal mom_dt_rk4_residual_norm_noise_allowance_factor
Definition variables.h:694
PetscInt particlesMigratedLastStep
Definition variables.h:749
PetscReal S_ang_rm1[6]
Definition variables.h:447
PetscReal Mdpdn_y
Definition variables.h:459
PetscReal * z_bp
Definition variables.h:377
PetscReal M_y_old
Definition variables.h:453
PetscInt n_time
Definition variables.h:476
PetscReal * st2
Definition variables.h:479
PetscInt Clsnbpt_i
Definition variables.h:439
PetscReal grid_rotation_angle
Definition variables.h:715
PetscInt dynamic_freq
Definition variables.h:733
PetscReal cs33
Definition variables.h:361
PetscScalar y
Definition variables.h:106
Vec Psi_nodal
Definition variables.h:890
char AnalyticalSolutionType[PETSC_MAX_PATH_LEN]
Definition variables.h:676
PetscInt da_procs_x
Definition variables.h:718
Vec JAj
Definition variables.h:861
PetscReal U_bc
Definition variables.h:727
PetscReal walltimeGuardWarmupAverageSeconds
Definition variables.h:791
Vec KEta
Definition variables.h:862
PetscReal Max_X
Definition variables.h:821
PetscInt particleConsoleOutputFreq
Definition variables.h:656
Cmpnts InitialConstantContra
Definition variables.h:697
PetscMPIInt rank_zp
Definition variables.h:182
Vec Ucont_rm1
Definition variables.h:845
SearchMetricsState searchMetrics
Definition variables.h:752
PetscReal zmax
Definition variables.h:481
PetscReal Min_Y
Definition variables.h:821
PetscInt i_periodic
Definition variables.h:713
PetscReal diffusivity
Definition variables.h:173
Vec lUcont
Definition variables.h:837
PetscBool jsc
Definition variables.h:537
PetscInt step
Definition variables.h:651
Vec Diffusivity
Definition variables.h:840
PetscReal * Bvel_u
Definition variables.h:385
PetscReal M_y
Definition variables.h:452
PetscReal Mdpdn_z
Definition variables.h:459
PetscReal psi
Definition variables.h:175
PetscReal walltimeGuardEWMASeconds
Definition variables.h:793
PetscReal AreaOutSum
Definition variables.h:726
PetscReal * x_bp
Definition variables.h:377
PetscInt dgf_ay
Definition variables.h:675
PetscInt mom_max_pseudo_steps
Definition variables.h:684
PetscReal r[101]
Definition variables.h:801
Vec lAj
Definition variables.h:858
PetscRandom BrownianMotionRNG
Definition variables.h:753
IBMNodes * ibm
Definition variables.h:871
Vec lICsi
Definition variables.h:860
PetscInt testfilter_ik
Definition variables.h:735
PetscInt GridOrientation
Definition variables.h:824
PetscInt mz
Definition variables.h:603
DMDALocalInfo info
Definition variables.h:818
Vec dUcont
Definition variables.h:845
PetscInt ni
Definition variables.h:352
PetscInt hydro
Definition variables.h:679
BCPriorityType
Definition variables.h:291
@ BC_PRIORITY_OUTLET
Definition variables.h:296
@ BC_PRIORITY_FARFIELD
Definition variables.h:294
@ BC_PRIORITY_UNDEFINED
Definition variables.h:292
@ BC_PRIORITY_WALL
Definition variables.h:295
@ BC_PRIORITY_INLET
Definition variables.h:293
Vec lUcat
Definition variables.h:837
PostProcessParams * pps
Definition variables.h:798
PetscInt ii3
Definition variables.h:362
PetscInt migrationPassesLastStep
Definition variables.h:748
PetscScalar y
Definition variables.h:101
PetscInt ii2
Definition variables.h:362
PetscMPIInt size
Definition variables.h:647
PetscInt kk3
Definition variables.h:362
PetscScalar x
Definition variables.h:106
PetscReal Tow_ws
Definition variables.h:438
ExecutionMode
Defines the execution mode of the application.
Definition variables.h:615
@ EXEC_MODE_UNKNOWN
Definition variables.h:618
@ EXEC_MODE_SOLVER
Definition variables.h:616
@ EXEC_MODE_POSTPROCESSOR
Definition variables.h:617
PetscInt IM
Definition variables.h:820
PetscInt * nv2
Definition variables.h:395
char _io_context_buffer[PETSC_MAX_PATH_LEN]
Definition variables.h:669
PetscInt j22
Definition variables.h:357
PetscReal FluxIntpSum
Definition variables.h:834
PetscReal walltimeGuardLimitSeconds
Definition variables.h:788
Cmpnts weights
Definition variables.h:170
Face
Enumerates the six faces of a cubic cell for distance calculations.
Definition variables.h:144
@ TOP
Definition variables.h:145
@ FRONT
Definition variables.h:145
@ BOTTOM
Definition variables.h:145
@ BACK
Definition variables.h:145
@ LEFT
Definition variables.h:145
@ NUM_FACES
Definition variables.h:145
@ RIGHT
Definition variables.h:145
Vec lEta
Definition variables.h:858
PetscReal M_x_real
Definition variables.h:454
KSP ksp
Definition variables.h:849
char particleExt[8]
Definition variables.h:579
PetscReal * y_bp
Definition variables.h:377
PetscInt kk33
Definition variables.h:365
PetscReal A_tot
Definition variables.h:449
PetscBool ps_ksp_pic_monitor_true_residual
Definition variables.h:695
Vec KZet
Definition variables.h:862
Cmpnts * uold
Definition variables.h:399
PetscInt n_v
Definition variables.h:394
Vec Cent
Definition variables.h:858
Vec Ucat_cross_sum
Definition variables.h:868
PetscReal walltimeGuardEstimatorAlpha
Definition variables.h:786
PetscInt kk11
Definition variables.h:365
PetscInt les
Definition variables.h:732
PetscBool isc
Definition variables.h:537
PetscReal cs3
Definition variables.h:356
Vec Nvert
Definition variables.h:837
Vec KCsi
Definition variables.h:862
MGCtx * mgctx
Definition variables.h:538
struct list_node Node_List
A generic C-style linked list node for indices.
PetscInt mg_preItr
Definition variables.h:686
Vec lDiffusivity
Definition variables.h:840
Vec lNvert_o
Definition variables.h:844
BCType mathematical_type
Definition variables.h:336
PetscReal * s1
Definition variables.h:479
Vec Centy
Definition variables.h:859
PetscReal P_ref
Definition variables.h:628
Cmpnts * u
Definition variables.h:399
PetscReal rx
Definition variables.h:825
PetscReal Power
Definition variables.h:461
PetscViewer logviewer
Definition variables.h:661
PetscReal * z_bp_o
Definition variables.h:379
PetscBool multinullspace
Definition variables.h:851
PetscReal * dV0
Definition variables.h:400
PetscReal Min_xbc
Definition variables.h:470
PetscInt n_midp
Definition variables.h:476
PetscReal * Bvel_w
Definition variables.h:385
PetscReal alpha[3]
Definition variables.h:465
PetscInt64 searchAttempts
Definition variables.h:222
ExecutionMode exec_mode
Definition variables.h:662
PetscReal ct22
Definition variables.h:366
PetscInt startTime
Definition variables.h:558
PetscReal rho_ref
Definition variables.h:627
PetscInt nj
Definition variables.h:352
PetscInt64 tieBreakCount
Definition variables.h:230
Vec lJAj
Definition variables.h:861
BoundingBox bbox
Definition variables.h:822
PetscInt my
Definition variables.h:603
PetscInt cop
Definition variables.h:679
PetscReal ti
Definition variables.h:652
PetscReal walltimeGuardMultiplier
Definition variables.h:784
PetscInt Pipe
Definition variables.h:679
PetscReal cr3
Definition variables.h:349
PetscReal Max_Z
Definition variables.h:821
PetscInt rotateframe
Definition variables.h:674
PetscInt64 PID
Definition variables.h:166
PetscReal U_ref
Definition variables.h:626
IBMNodes * ibm
Definition variables.h:757
PetscReal * x_bp
Definition variables.h:396
PetscReal AreaInSum
Definition variables.h:726
PetscInt mx
Definition variables.h:603
PetscInt k11
Definition variables.h:357
MomentumSolverType mom_solver_type
Definition variables.h:683
PetscReal summationRHS
Definition variables.h:770
Vec lKAj
Definition variables.h:862
IBMListNode * head
Definition variables.h:431
PetscReal ymax
Definition variables.h:481
PetscInt immersed
Definition variables.h:673
PetscReal * x_bp0
Definition variables.h:378
PetscInt64 maxTraversalFailCount
Definition variables.h:229
char PostprocessingControlFile[PETSC_MAX_PATH_LEN]
Definition variables.h:797
char restart_dir[PETSC_MAX_PATH_LEN]
Definition variables.h:664
node * head
Definition variables.h:414
VerificationDiffusivityConfig verificationDiffusivity
Definition variables.h:699
PetscReal * y_bp_o
Definition variables.h:379
PetscReal y_c
Definition variables.h:457
PetscInt blank
Definition variables.h:674
PetscInt dgf_y
Definition variables.h:675
Vec * lNvert_c
Definition variables.h:877
PetscReal Min_zbc
Definition variables.h:470
PetscReal z_min
Definition variables.h:386
PetscReal walltimeGuardJobStartEpochSeconds
Definition variables.h:787
PetscReal pseudo_cfl
Definition variables.h:691
PetscReal x_c
Definition variables.h:457
PetscReal * nt_z
Definition variables.h:383
PetscReal M_z_old
Definition variables.h:453
#define MAX_VTK_FIELD_NAME_LENGTH
Maximum length for VTK field names.
Definition variables.h:548
PetscReal cs11
Definition variables.h:361
PetscInt LoggingFrequency
Definition variables.h:769
PetscReal z_c
Definition variables.h:457
Cmpnts vertices[8]
Coordinates of the eight vertices of the cell.
Definition variables.h:161
PetscInt ii33
Definition variables.h:365
PetscReal F_y
Definition variables.h:449
PetscReal CMx_c
Definition variables.h:705
PetscReal drivingForceMagnitude
Definition variables.h:723
PetscInt CV_ze
Definition variables.h:471
PetscReal atk_o
Definition variables.h:467
Vec Psi
Definition variables.h:883
PetscReal particleLoadImbalance
Definition variables.h:751
Cmpnts * urm1
Definition variables.h:382
PetscInt i2
Definition variables.h:348
Vec P_o
Definition variables.h:844
PetscReal M_x
Definition variables.h:452
PetscReal * tauN
Definition variables.h:385
Vec Uch
Characteristic velocity for boundary conditions.
Definition variables.h:122
BCFace
Identifies the six logical faces of a structured computational block.
Definition variables.h:244
@ BC_FACE_NEG_X
Definition variables.h:245
@ BC_FACE_POS_Z
Definition variables.h:247
@ BC_FACE_POS_Y
Definition variables.h:246
@ BC_FACE_NEG_Z
Definition variables.h:247
@ BC_FACE_POS_X
Definition variables.h:245
@ BC_FACE_NEG_Y
Definition variables.h:246
PetscInt i11
Definition variables.h:357
PetscInt j_periodic
Definition variables.h:713
BoundaryCondition * handler
Definition variables.h:339
PetscReal * y_midp
Definition variables.h:477
PetscInt n_v
Definition variables.h:374
VTKFileType
Enumerates the type of VTK file to be written.
Definition variables.h:596
@ VTK_POLYDATA
Definition variables.h:598
@ VTK_STRUCTURED
Definition variables.h:597
PetscInt nbnumber
Definition variables.h:373
PetscInt wing
Definition variables.h:679
PetscReal * cf
Definition variables.h:380
FSInfo * fsi
Definition variables.h:759
Provides execution context for a boundary condition handler.
Definition variables.h:311
Boundary condition data used by the BC pipeline and ghost cell machinery.
Definition variables.h:120
A node in a linked list for storing key-value parameters from the bcs.dat file.
Definition variables.h:304
Holds the complete configuration for one of the six boundary faces.
Definition variables.h:334
Defines a 3D axis-aligned bounding box.
Definition variables.h:154
Defines the vertices of a single hexahedral grid cell.
Definition variables.h:160
A 3D point or vector with PetscScalar components.
Definition variables.h:100
A 2D point or vector with PetscScalar components.
Definition variables.h:105
A 2D vector of PETSc real numbers (for geometry/coordinates).
Definition variables.h:110
Defines prescribed body motion using splines.
Definition variables.h:475
Holds all data related to the state and motion of a body in FSI.
Definition variables.h:445
Represents a single point in a time-varying flow waveform.
Definition variables.h:115
Holds interpolation and distance information for a single IBM point.
Definition variables.h:347
Head of a linked list for IBM data.
Definition variables.h:430
A linked list node containing IBM interpolation info.
Definition variables.h:424
Represents a collection of nodes forming a surface for the IBM.
Definition variables.h:372
Represents a collection of nodes forming a volume for the IBM.
Definition variables.h:392
Context for Multigrid operations.
Definition variables.h:527
Information needed to migrate a single particle between MPI ranks.
Definition variables.h:192
Defines a particle's core properties for Lagrangian tracking.
Definition variables.h:165
Holds all configuration parameters for a post-processing run.
Definition variables.h:553
A lean struct to hold the global cell ownership range for a single MPI rank.
Definition variables.h:186
Stores the MPI ranks of neighboring subdomains.
Definition variables.h:179
Aggregated per-timestep search instrumentation counters.
Definition variables.h:221
The master context for the entire simulation.
Definition variables.h:643
Information about a surface element for FSI calculations.
Definition variables.h:435
User-defined context containing data specific to a single computational grid level.
Definition variables.h:811
User-level context for managing the entire multigrid hierarchy.
Definition variables.h:534
Stores all necessary information for a single data array in a VTK file.
Definition variables.h:589
Verification-only analytical diffusivity override settings.
Definition variables.h:198
Verification-only analytical scalar override settings.
Definition variables.h:207
Head of a generic C-style linked list.
Definition variables.h:413
A generic C-style linked list node for indices.
Definition variables.h:418
A generic C-style linked list node for integers.
Definition variables.h:407