|
PICurv 0.1.0
A Parallel Particle-In-Cell Solver for Curvilinear LES
|
Main header file for a complex fluid dynamics solver. More...
#include "petscvec.h"#include "petscdmda.h"#include "petscksp.h"#include "petscsnes.h"#include "petscdmswarm.h"#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>Go to the source code of this file.
Data Structures | |
| struct | Cmpnts |
| A 3D point or vector with PetscScalar components. More... | |
| struct | Cmpnts2 |
| A 2D point or vector with PetscScalar components. More... | |
| struct | Cpt2D |
| A 2D vector of PETSc real numbers (for geometry/coordinates). More... | |
| struct | FlowWave |
| Represents a single point in a time-varying flow waveform. More... | |
| struct | BCS |
| Boundary condition data used by the BC pipeline and ghost cell machinery. More... | |
| struct | BoundingBox |
| Defines a 3D axis-aligned bounding box. More... | |
| struct | Cell |
| Defines the vertices of a single hexahedral grid cell. More... | |
| struct | Particle |
| Defines a particle's core properties for Lagrangian tracking. More... | |
| struct | RankNeighbors |
| Stores the MPI ranks of neighboring subdomains. More... | |
| struct | RankCellInfo |
| A lean struct to hold the global cell ownership range for a single MPI rank. More... | |
| struct | MigrationInfo |
| Information needed to migrate a single particle between MPI ranks. More... | |
| struct | VerificationDiffusivityConfig |
| Verification-only analytical diffusivity override settings. More... | |
| struct | VerificationScalarConfig |
| Verification-only analytical scalar override settings. More... | |
| struct | SearchMetricsState |
| Aggregated per-timestep search instrumentation counters. More... | |
| struct | BC_Param_s |
| A node in a linked list for storing key-value parameters from the bcs.dat file. More... | |
| struct | BCContext |
| Provides execution context for a boundary condition handler. More... | |
| struct | BoundaryCondition |
| The "virtual table" struct for a boundary condition handler object. More... | |
| struct | BoundaryFaceConfig |
| Holds the complete configuration for one of the six boundary faces. More... | |
| struct | IBMInfo |
| Holds interpolation and distance information for a single IBM point. More... | |
| struct | IBMNodes |
| Represents a collection of nodes forming a surface for the IBM. More... | |
| struct | IBMVNodes |
| Represents a collection of nodes forming a volume for the IBM. More... | |
| struct | node |
| A generic C-style linked list node for integers. More... | |
| struct | list |
| Head of a generic C-style linked list. More... | |
| struct | list_node |
| A generic C-style linked list node for indices. More... | |
| struct | IBMListNode |
| A linked list node containing IBM interpolation info. More... | |
| struct | IBMList |
| Head of a linked list for IBM data. More... | |
| struct | SurfElmtInfo |
| Information about a surface element for FSI calculations. More... | |
| struct | FSInfo |
| Holds all data related to the state and motion of a body in FSI. More... | |
| struct | Cstart |
| Defines prescribed body motion using splines. More... | |
| struct | MGCtx |
| Context for Multigrid operations. More... | |
| struct | UserMG |
| User-level context for managing the entire multigrid hierarchy. More... | |
| struct | PostProcessParams |
| Holds all configuration parameters for a post-processing run. More... | |
| struct | VTKFieldInfo |
| Stores all necessary information for a single data array in a VTK file. More... | |
| struct | VTKMetaData |
| struct | ScalingCtx |
| struct | SimCtx |
| The master context for the entire simulation. More... | |
| struct | UserCtx |
| User-defined context containing data specific to a single computational grid level. More... | |
Macros | |
| #define | COEF_TIME_ACCURACY 1.5 |
| Coefficient controlling the temporal accuracy scheme (e.g., 1.5 for 2nd Order Backward Difference). | |
| #define | MAX_PIPELINE_LENGTH 1024 |
| #define | MAX_FIELD_LIST_LENGTH 1024 |
| #define | MAX_FILENAME_LENGTH 256 |
| #define | MAX_POINT_DATA_FIELDS 20 |
| Defines the maximum number of data fields for VTK point data. | |
| #define | MAX_VTK_FIELD_NAME_LENGTH 64 |
| Maximum length for VTK field names. | |
Typedefs | |
| typedef struct SimCtx | SimCtx |
| The master context for the entire simulation. | |
| typedef struct UserCtx | UserCtx |
| User-defined context containing data specific to a single computational grid level. | |
| typedef struct BC_Param_s | BC_Param |
| typedef struct BoundaryCondition | BoundaryCondition |
| The "virtual table" struct for a boundary condition handler object. | |
| typedef struct BoundaryFaceConfig | BoundaryFaceConfig |
| Holds the complete configuration for one of the six boundary faces. | |
| typedef struct IBMNodes | IBMNodes |
| Represents a collection of nodes forming a surface for the IBM. | |
| typedef struct IBMVNodes | IBMVNodes |
| Represents a collection of nodes forming a volume for the IBM. | |
| typedef struct FSInfo | FSInfo |
| Holds all data related to the state and motion of a body in FSI. | |
| typedef struct UserMG | UserMG |
| User-level context for managing the entire multigrid hierarchy. | |
| typedef struct BoundingBox | BoundingBox |
| Defines a 3D axis-aligned bounding box. | |
| typedef struct Cell | Cell |
| Defines the vertices of a single hexahedral grid cell. | |
| typedef struct Particle | Particle |
| Defines a particle's core properties for Lagrangian tracking. | |
| typedef struct RankNeighbors | RankNeighbors |
| Stores the MPI ranks of neighboring subdomains. | |
| typedef struct RankCellInfo | RankCellInfo |
| A lean struct to hold the global cell ownership range for a single MPI rank. | |
| typedef struct MigrationInfo | MigrationInfo |
| Information needed to migrate a single particle between MPI ranks. | |
| typedef struct Cstart | Cstart |
| Defines prescribed body motion using splines. | |
| typedef struct MGCtx | MGCtx |
| Context for Multigrid operations. | |
| typedef struct PostProcessParams | PostProcessParams |
| Holds all configuration parameters for a post-processing run. | |
| typedef struct VTKFieldInfo | VTKFieldInfo |
| Stores all necessary information for a single data array in a VTK file. | |
| typedef struct VTKMetaData | VTKMetaData |
| typedef struct IBMInfo | IBMInfo |
| Holds interpolation and distance information for a single IBM point. | |
| typedef struct SurfElmtInfo | SurfElmtInfo |
| Information about a surface element for FSI calculations. | |
| typedef struct ScalingCtx | ScalingCtx |
| typedef struct Cmpnts | Cmpnts |
| A 3D point or vector with PetscScalar components. | |
| typedef struct Cmpnts2 | Cmpnts2 |
| A 2D point or vector with PetscScalar components. | |
| typedef struct Cpt2D | Cpt2D |
| A 2D vector of PETSc real numbers (for geometry/coordinates). | |
| typedef struct FlowWave | FlowWave |
| Represents a single point in a time-varying flow waveform. | |
| typedef struct BCS | BCS |
| Boundary condition data used by the BC pipeline and ghost cell machinery. | |
| typedef struct VerificationDiffusivityConfig | VerificationDiffusivityConfig |
| Verification-only analytical diffusivity override settings. | |
| typedef struct VerificationScalarConfig | VerificationScalarConfig |
| Verification-only analytical scalar override settings. | |
| typedef struct SearchMetricsState | SearchMetricsState |
| Aggregated per-timestep search instrumentation counters. | |
| typedef struct BCContext | BCContext |
| Provides execution context for a boundary condition handler. | |
| typedef struct node | node |
| A generic C-style linked list node for integers. | |
| typedef struct list | List |
| Head of a generic C-style linked list. | |
| typedef struct list_node | Node_List |
| A generic C-style linked list node for indices. | |
| typedef struct IBMListNode | IBMListNode |
| A linked list node containing IBM interpolation info. | |
| typedef struct IBMList | IBMList |
| Head of a linked list for IBM data. | |
Main header file for a complex fluid dynamics solver.
This file defines the core data structures, global variables, and function prototypes for a CFD application. It combines features for a curvilinear, multi-block, immersed boundary (IBM) solver with fluid-structure interaction (FSI), a modern particle tracking system, a modular boundary condition framework, and post-processing utilities. It heavily utilizes the PETSc library.
*** REVISION NOTE *** This version introduces a central SimulationContext struct to encapsulate all simulation-wide configuration, replacing the legacy system of global variables. The UserCtx struct has been refactored to hold only data specific to a single grid level and now contains a back-pointer to the SimulationContext. All struct definitions now follow the typedef struct Name { ... } Name; convention.
Definition in file variables.h.
| struct Cmpnts |
A 3D point or vector with PetscScalar components.
Definition at line 100 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscScalar | x | |
| PetscScalar | y | |
| PetscScalar | z | |
| struct Cmpnts2 |
A 2D point or vector with PetscScalar components.
Definition at line 105 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscScalar | x | |
| PetscScalar | y | |
| struct Cpt2D |
A 2D vector of PETSc real numbers (for geometry/coordinates).
Definition at line 110 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscReal | x | |
| PetscReal | y | |
| struct FlowWave |
Represents a single point in a time-varying flow waveform.
Definition at line 115 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscReal | t | |
| PetscReal | f | |
| struct BCS |
Boundary condition data used by the BC pipeline and ghost cell machinery.
Definition at line 120 of file variables.h.
| struct BoundingBox |
Defines a 3D axis-aligned bounding box.
Definition at line 154 of file variables.h.
| Data Fields | ||
|---|---|---|
| Cmpnts | min_coords | Minimum x, y, z coordinates of the bounding box. |
| Cmpnts | max_coords | Maximum x, y, z coordinates of the bounding box. |
| struct Cell |
Defines the vertices of a single hexahedral grid cell.
Definition at line 160 of file variables.h.
| Data Fields | ||
|---|---|---|
| Cmpnts | vertices[8] | Coordinates of the eight vertices of the cell. |
| struct Particle |
Defines a particle's core properties for Lagrangian tracking.
Definition at line 165 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscInt64 | PID | |
| PetscInt | cell[3] | |
| Cmpnts | loc | |
| Cmpnts | vel | |
| Cmpnts | weights | |
| ParticleLocationStatus | location_status | |
| PetscMPIInt | destination_rank | |
| PetscReal | diffusivity | |
| Cmpnts | diffusivitygradient | |
| PetscReal | psi | |
| struct RankNeighbors |
Stores the MPI ranks of neighboring subdomains.
Definition at line 179 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscMPIInt | rank_xm | |
| PetscMPIInt | rank_xp | |
| PetscMPIInt | rank_ym | |
| PetscMPIInt | rank_yp | |
| PetscMPIInt | rank_zm | |
| PetscMPIInt | rank_zp | |
| struct RankCellInfo |
A lean struct to hold the global cell ownership range for a single MPI rank.
Definition at line 186 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscInt | xs_cell | |
| PetscInt | ys_cell | |
| PetscInt | zs_cell | |
| PetscInt | xm_cell | |
| PetscInt | ym_cell | |
| PetscInt | zm_cell | |
| struct MigrationInfo |
Information needed to migrate a single particle between MPI ranks.
Definition at line 192 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscInt | local_index | |
| PetscInt | target_rank | |
| struct VerificationDiffusivityConfig |
Verification-only analytical diffusivity override settings.
Definition at line 198 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscBool | enabled | |
| char | mode[32] | |
| char | profile[32] | |
| PetscReal | gamma0 | |
| PetscReal | slope_x | |
| struct VerificationScalarConfig |
Verification-only analytical scalar override settings.
Definition at line 207 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscBool | enabled | |
| char | mode[32] | |
| char | profile[32] | |
| PetscReal | value | |
| PetscReal | phi0 | |
| PetscReal | slope_x | |
| PetscReal | amplitude | |
| PetscReal | kx | |
| PetscReal | ky | |
| PetscReal | kz | |
| struct SearchMetricsState |
Aggregated per-timestep search instrumentation counters.
Definition at line 221 of file variables.h.
| struct BC_Param_s |
A node in a linked list for storing key-value parameters from the bcs.dat file.
Definition at line 304 of file variables.h.
| Data Fields | ||
|---|---|---|
| char * | key | |
| char * | value | |
| struct BC_Param_s * | next | |
| struct BCContext |
Provides execution context for a boundary condition handler.
Definition at line 311 of file variables.h.
| Data Fields | ||
|---|---|---|
| UserCtx * | user | |
| BCFace | face_id | |
| const PetscReal * | global_inflow_sum | |
| const PetscReal * | global_farfield_inflow_sum | |
| const PetscReal * | global_farfield_outflow_sum | |
| const PetscReal * | global_outflow_sum | |
| struct BoundaryFaceConfig |
Holds the complete configuration for one of the six boundary faces.
Definition at line 334 of file variables.h.
| Data Fields | ||
|---|---|---|
| BCFace | face_id | |
| BCType | mathematical_type | |
| BCHandlerType | handler_type | |
| BC_Param * | params | |
| BoundaryCondition * | handler | |
| struct IBMInfo |
Holds interpolation and distance information for a single IBM point.
Definition at line 347 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscInt | i1 | |
| PetscInt | j1 | |
| PetscInt | k1 | |
| PetscInt | i2 | |
| PetscInt | j2 | |
| PetscInt | k2 | |
| PetscInt | i3 | |
| PetscInt | j3 | |
| PetscInt | k3 | |
| PetscReal | cr1 | |
| PetscReal | cr2 | |
| PetscReal | cr3 | |
| PetscReal | d_i | |
| PetscInt | imode | |
| PetscInt | ni | |
| PetscInt | nj | |
| PetscInt | nk | |
| PetscReal | d_s | |
| Cmpnts | pmin | |
| PetscInt | cell | |
| PetscReal | cs1 | |
| PetscReal | cs2 | |
| PetscReal | cs3 | |
| PetscInt | i11 | |
| PetscInt | j11 | |
| PetscInt | k11 | |
| PetscInt | i22 | |
| PetscInt | j22 | |
| PetscInt | k22 | |
| PetscInt | i33 | |
| PetscInt | j33 | |
| PetscInt | k33 | |
| PetscReal | cr11 | |
| PetscReal | cr22 | |
| PetscReal | cr33 | |
| PetscReal | d_ii | |
| PetscInt | iimode | |
| PetscReal | cs11 | |
| PetscReal | cs22 | |
| PetscReal | cs33 | |
| PetscInt | ii1 | |
| PetscInt | jj1 | |
| PetscInt | kk1 | |
| PetscInt | ii2 | |
| PetscInt | jj2 | |
| PetscInt | kk2 | |
| PetscInt | ii3 | |
| PetscInt | jj3 | |
| PetscInt | kk3 | |
| PetscReal | ct1 | |
| PetscReal | ct2 | |
| PetscReal | ct3 | |
| PetscInt | smode | |
| PetscInt | ii11 | |
| PetscInt | jj11 | |
| PetscInt | kk11 | |
| PetscInt | ii22 | |
| PetscInt | jj22 | |
| PetscInt | kk22 | |
| PetscInt | ii33 | |
| PetscInt | jj33 | |
| PetscInt | kk33 | |
| PetscReal | ct11 | |
| PetscReal | ct22 | |
| PetscReal | ct33 | |
| PetscReal | d_ss | |
| PetscInt | ssmode | |
| struct IBMNodes |
Represents a collection of nodes forming a surface for the IBM.
Definition at line 372 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscInt | nbnumber | |
| PetscInt | n_v | |
| PetscInt | n_elmt | |
| PetscInt * | nv1 | |
| PetscInt * | nv2 | |
| PetscInt * | nv3 | |
| PetscReal * | nf_x | |
| PetscReal * | nf_y | |
| PetscReal * | nf_z | |
| PetscReal * | x_bp | |
| PetscReal * | y_bp | |
| PetscReal * | z_bp | |
| PetscReal * | x_bp0 | |
| PetscReal * | y_bp0 | |
| PetscReal * | z_bp0 | |
| PetscReal * | x_bp_o | |
| PetscReal * | y_bp_o | |
| PetscReal * | z_bp_o | |
| PetscReal * | cf | |
| PetscReal * | cfsum | |
| PetscReal * | CCp | |
| PetscReal | x_bp_in[101][3270] | |
| PetscReal | y_bp_in[101][3270] | |
| PetscReal | z_bp_in[101][3270] | |
| Cmpnts * | u | |
| Cmpnts * | uold | |
| Cmpnts * | urm1 | |
| PetscReal * | dA | |
| PetscReal * | nt_x | |
| PetscReal * | nt_y | |
| PetscReal * | nt_z | |
| PetscReal * | ns_x | |
| PetscReal * | ns_y | |
| PetscReal * | ns_z | |
| PetscReal * | cent_x | |
| PetscReal * | cent_y | |
| PetscReal * | cent_z | |
| PetscReal * | pres | |
| PetscReal * | tau0 | |
| PetscReal * | tauN | |
| PetscReal * | Bvel_u | |
| PetscReal * | Bvel_v | |
| PetscReal * | Bvel_w | |
| PetscReal | x_min | |
| PetscReal | x_max | |
| PetscReal | y_min | |
| PetscReal | y_max | |
| PetscReal | z_min | |
| PetscReal | z_max | |
| Cmpnts * | qvec | |
| PetscReal * | radvec | |
| struct IBMVNodes |
Represents a collection of nodes forming a volume for the IBM.
Definition at line 392 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscInt | nbnumber | |
| PetscInt | n_v | |
| PetscInt | n_elmt | |
| PetscInt * | nv1 | |
| PetscInt * | nv2 | |
| PetscInt * | nv3 | |
| PetscInt * | nv4 | |
| PetscReal * | x_bp | |
| PetscReal * | y_bp | |
| PetscReal * | z_bp | |
| PetscReal * | x_bp0 | |
| PetscReal * | y_bp0 | |
| PetscReal * | z_bp0 | |
| PetscReal * | x_bp_o | |
| PetscReal * | y_bp_o | |
| PetscReal * | z_bp_o | |
| Cmpnts * | u | |
| Cmpnts * | uold | |
| Cmpnts * | urm1 | |
| PetscReal | V | |
| PetscReal * | dV0 | |
| PetscReal * | cent_x | |
| PetscReal * | cent_y | |
| PetscReal * | cent_z | |
| PetscReal | x_c | |
| PetscReal | y_c | |
| PetscReal | z_c | |
| PetscReal | J[3][3] | |
| PetscReal | I_inv[3][3] | |
| struct node |
A generic C-style linked list node for integers.
Definition at line 407 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscInt | Node | |
| struct node * | next | |
| struct list |
Head of a generic C-style linked list.
Definition at line 413 of file variables.h.
| Data Fields | ||
|---|---|---|
| node * | head | |
| struct list_node |
A generic C-style linked list node for indices.
Definition at line 418 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscInt | index | |
| struct list_node * | next | |
| struct IBMListNode |
A linked list node containing IBM interpolation info.
Definition at line 424 of file variables.h.
| Data Fields | ||
|---|---|---|
| IBMInfo | ibm_intp | |
| struct IBMListNode * | next | |
| struct IBMList |
Head of a linked list for IBM data.
Definition at line 430 of file variables.h.
| Data Fields | ||
|---|---|---|
| IBMListNode * | head | |
| struct SurfElmtInfo |
Information about a surface element for FSI calculations.
Definition at line 435 of file variables.h.
| struct FSInfo |
Holds all data related to the state and motion of a body in FSI.
Definition at line 445 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscReal | S_new[6] | |
| PetscReal | S_old[6] | |
| PetscReal | S_real[6] | |
| PetscReal | S_realm1[6] | |
| PetscReal | S_ang_n[6] | |
| PetscReal | S_ang_o[6] | |
| PetscReal | S_ang_r[6] | |
| PetscReal | S_ang_rm1[6] | |
| PetscReal | red_vel | |
| PetscReal | damp | |
| PetscReal | mu_s | |
| PetscReal | F_x | |
| PetscReal | F_y | |
| PetscReal | F_z | |
| PetscReal | A_tot | |
| PetscReal | F_x_old | |
| PetscReal | F_y_old | |
| PetscReal | F_z_old | |
| PetscReal | F_x_real | |
| PetscReal | F_y_real | |
| PetscReal | F_z_real | |
| PetscReal | M_x | |
| PetscReal | M_y | |
| PetscReal | M_z | |
| PetscReal | M_x_old | |
| PetscReal | M_y_old | |
| PetscReal | M_z_old | |
| PetscReal | M_x_real | |
| PetscReal | M_y_real | |
| PetscReal | M_z_real | |
| PetscReal | M_x_rm2 | |
| PetscReal | M_y_rm2 | |
| PetscReal | M_z_rm2 | |
| PetscReal | M_x_rm3 | |
| PetscReal | M_y_rm3 | |
| PetscReal | M_z_rm3 | |
| PetscReal | x_c | |
| PetscReal | y_c | |
| PetscReal | z_c | |
| PetscReal | a_c[3] | |
| PetscReal | Mdpdn_x | |
| PetscReal | Mdpdn_y | |
| PetscReal | Mdpdn_z | |
| PetscReal | Mdpdn_x_old | |
| PetscReal | Mdpdn_y_old | |
| PetscReal | Mdpdn_z_old | |
| PetscReal | Power | |
| PetscReal | clone | |
| PetscInt | pbc[3] | |
| PetscReal | I_inv[3][3] | |
| PetscReal | L_n[3] | |
| PetscReal | L_o[3] | |
| PetscReal | L_r[3] | |
| PetscReal | alpha[3] | |
| PetscReal | acc[3] | |
| PetscReal | R[3][3] | |
| PetscReal | q[4] | |
| PetscReal | q_r[4] | |
| PetscReal | dS[6] | |
| PetscReal | dS_o[6] | |
| PetscReal | atk | |
| PetscReal | atk_o | |
| SurfElmtInfo * | elmtinfo | |
| IBMInfo * | fsi_intp | |
| PetscReal | Max_xbc | |
| PetscReal | Min_xbc | |
| PetscReal | Max_ybc | |
| PetscReal | Min_ybc | |
| PetscReal | Max_zbc | |
| PetscReal | Min_zbc | |
| PetscInt | CV_ys | |
| PetscInt | CV_ye | |
| PetscInt | CV_zs | |
| PetscInt | CV_ze | |
| struct Cstart |
Defines prescribed body motion using splines.
Definition at line 475 of file variables.h.
| struct MGCtx |
Context for Multigrid operations.
Definition at line 527 of file variables.h.
| Data Fields | ||
|---|---|---|
| UserCtx * | user | |
| PetscInt | thislevel | |
| DM | packer | |
| struct UserMG |
User-level context for managing the entire multigrid hierarchy.
Definition at line 534 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscInt | mglevels | |
| PetscInt | thislevel | |
| PetscBool | isc | |
| PetscBool | jsc | |
| PetscBool | ksc | |
| MGCtx * | mgctx | |
| DM | packer | |
| SNES | snespacker | |
| struct PostProcessParams |
Holds all configuration parameters for a post-processing run.
This is an enhanced version combining command-line and file-based settings.
Definition at line 553 of file variables.h.
| struct VTKFieldInfo |
Stores all necessary information for a single data array in a VTK file.
Definition at line 589 of file variables.h.
| Data Fields | ||
|---|---|---|
| char | name[64] | |
| PetscInt | num_components | |
| PetscScalar * | data | |
| struct VTKMetaData |
Definition at line 601 of file variables.h.
| Data Fields | ||
|---|---|---|
| VTKFileType | fileType | |
| PetscInt | mx | |
| PetscInt | my | |
| PetscInt | mz | |
| PetscInt | npoints | |
| PetscScalar * | coords | |
| VTKFieldInfo | point_data_fields[20] | |
| PetscInt | num_point_data_fields | |
| PetscInt * | connectivity | |
| PetscInt * | offsets | |
| struct ScalingCtx |
Definition at line 624 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscReal | L_ref | |
| PetscReal | U_ref | |
| PetscReal | rho_ref | |
| PetscReal | P_ref | |
| struct SimCtx |
The master context for the entire simulation.
This struct encapsulates all global configuration flags, physical parameters, simulation control settings, and top-level data objects. It replaces the numerous global variables from the legacy codebase, providing a single, explicit source of truth for the simulation's setup.
Definition at line 643 of file variables.h.
| Data Fields | ||
|---|---|---|
| PetscMPIInt | rank | |
| PetscMPIInt | size | |
| PetscInt | step | |
| PetscReal | ti | |
| PetscInt | StartStep | |
| PetscInt | StepsToRun | |
| PetscInt | tiout | |
| PetscInt | particleConsoleOutputFreq | |
| PetscReal | StartTime | |
| PetscReal | dt | |
| PetscBool | OnlySetup | |
| PetscBool | continueMode | |
| PetscViewer | logviewer | |
| ExecutionMode | exec_mode | |
| char | eulerianSource[PETSC_MAX_PATH_LEN] | |
| char | restart_dir[PETSC_MAX_PATH_LEN] | |
| char | output_dir[PETSC_MAX_PATH_LEN] | |
| char | euler_subdir[PETSC_MAX_PATH_LEN] | |
| char | particle_subdir[PETSC_MAX_PATH_LEN] | |
| char | log_dir[PETSC_MAX_PATH_LEN] | |
| char | _io_context_buffer[PETSC_MAX_PATH_LEN] | |
| char * | current_io_directory | |
| PetscInt | immersed | |
| PetscInt | movefsi | |
| PetscInt | rotatefsi | |
| PetscInt | sediment | |
| PetscInt | rheology | |
| PetscInt | invicid | |
| PetscInt | TwoD | |
| PetscInt | thin | |
| PetscInt | moveframe | |
| PetscInt | rotateframe | |
| PetscInt | blank | |
| PetscInt | dgf_x | |
| PetscInt | dgf_y | |
| PetscInt | dgf_z | |
| PetscInt | dgf_ax | |
| PetscInt | dgf_ay | |
| PetscInt | dgf_az | |
| char | AnalyticalSolutionType[PETSC_MAX_PATH_LEN] | |
| PetscInt | cop | |
| PetscInt | fish | |
| PetscInt | fish_c | |
| PetscInt | fishcyl | |
| PetscInt | eel | |
| PetscInt | pizza | |
| PetscInt | turbine | |
| PetscInt | Pipe | |
| PetscInt | wing | |
| PetscInt | hydro | |
| PetscInt | MHV | |
| PetscInt | LV | |
| PetscInt | channelz | |
| MomentumSolverType | mom_solver_type | |
| PetscInt | mom_max_pseudo_steps | |
| PetscReal | mom_atol | |
| PetscReal | mom_rtol | |
| PetscReal | imp_stol | |
| PetscInt | mglevels | |
| PetscInt | mg_MAX_IT | |
| PetscInt | mg_idx | |
| PetscInt | mg_preItr | |
| PetscInt | mg_poItr | |
| PetscInt | poisson | |
| PetscReal | poisson_tol | |
| PetscInt | STRONG_COUPLING | |
| PetscInt | central | |
| PetscReal | ren | |
| PetscReal | pseudo_cfl | |
| PetscReal | cdisx | |
| PetscReal | cdisy | |
| PetscReal | cdisz | |
| PetscReal | pseudo_cfl_reduction_factor | |
| PetscReal | pseudo_cfl_growth_factor | |
| PetscReal | max_pseudo_cfl | |
| PetscReal | min_pseudo_cfl | |
| PetscReal | mom_dt_rk4_residual_norm_noise_allowance_factor | |
| PetscBool | ps_ksp_pic_monitor_true_residual | |
| PetscInt | FieldInitialization | |
| Cmpnts | InitialConstantContra | |
| Cmpnts | AnalyticalUniformVelocity | |
| VerificationDiffusivityConfig | verificationDiffusivity | |
| VerificationScalarConfig | verificationScalar | |
| PetscInt | NumberOfBodies | |
| PetscReal | Flux_in | |
| PetscReal | angle | |
| PetscReal | max_angle | |
| PetscReal | CMx_c | |
| PetscReal | CMy_c | |
| PetscReal | CMz_c | |
| PetscReal | psrc_x | |
| PetscReal | psrc_y | |
| PetscReal | psrc_z | Point source location for PARTICLE_INIT_POINT_SOURCE. |
| ScalingCtx | scaling | |
| PetscReal | wall_roughness_height | |
| PetscReal | schmidt_number | |
| PetscReal | Turbulent_schmidt_number | |
| PetscInt | block_number | |
| PetscInt | inletprofile | |
| PetscInt | grid1d | |
| PetscInt | Ogrid | |
| PetscInt | i_periodic | |
| PetscInt | j_periodic | |
| PetscInt | k_periodic | |
| PetscInt | blkpbc | |
| PetscInt | pseudo_periodic | |
| PetscBool | generate_grid | |
| PetscReal | grid_rotation_angle | |
| PetscReal | Croty | |
| PetscReal | Crotz | |
| char | grid_file[PETSC_MAX_PATH_LEN] | |
| PetscInt | da_procs_x | |
| PetscInt | da_procs_y | |
| PetscInt | da_procs_z | |
| PetscInt | num_bcs_files | |
| char ** | bcs_files | |
| PetscReal | FluxInSum | |
| PetscReal | FluxOutSum | |
| PetscReal | Fluxsum | |
| PetscReal | FarFluxInSum | |
| PetscReal | FarFluxOutSum | |
| PetscReal | drivingForceMagnitude | |
| PetscReal | forceScalingFactor | |
| PetscReal | targetVolumetricFlux | |
| PetscReal | bulkVelocityCorrection | |
| PetscReal | AreaInSum | |
| PetscReal | AreaOutSum | |
| PetscReal | U_bc | |
| PetscInt | ccc | |
| PetscReal | ratio | |
| PetscInt | les | |
| PetscInt | rans | |
| PetscInt | wallfunction | |
| PetscInt | mixed | |
| PetscInt | clark | |
| PetscInt | dynamic_freq | |
| PetscReal | max_cs | |
| PetscReal | Const_CS | |
| PetscInt | testfilter_ik | |
| PetscInt | testfilter_1d | |
| PetscInt | i_homo_filter | |
| PetscInt | j_homo_filter | |
| PetscInt | k_homo_filter | |
| PetscBool | averaging | |
| PetscInt | np | |
| PetscBool | readFields | |
| DM | dm_swarm | |
| BoundingBox * | bboxlist | |
| ParticleInitializationType | ParticleInitialization | |
| InterpolationMethod | interpolationMethod | |
| char | particleRestartMode[16] | |
| PetscInt | particlesLostLastStep | |
| PetscInt | particlesLostCumulative | |
| PetscInt | migrationPassesLastStep | |
| PetscInt | particlesMigratedLastStep | |
| PetscInt | occupiedCellCount | |
| PetscReal | particleLoadImbalance | |
| SearchMetricsState | searchMetrics | |
| PetscRandom | BrownianMotionRNG | |
| PetscReal | C_IEM | |
| IBMNodes * | ibm | |
| IBMVNodes * | ibmv | |
| FSInfo * | fsi | |
| PetscBool | rstart_fsi | |
| PetscInt | duplicate | |
| UserMG | usermg | |
| char | allowedFile[PETSC_MAX_PATH_LEN] | |
| PetscBool | useCfg | |
| char ** | allowedFuncs | |
| PetscInt | nAllowed | |
| PetscInt | LoggingFrequency | |
| PetscReal | summationRHS | |
| PetscReal | MaxDiv | |
| PetscInt | MaxDivFlatArg | |
| PetscInt | MaxDivx | |
| PetscInt | MaxDivy | |
| PetscInt | MaxDivz | |
| char | profilingSelectedFuncsFile[PETSC_MAX_PATH_LEN] | |
| PetscBool | useProfilingSelectedFuncsCfg | |
| char ** | profilingSelectedFuncs | |
| PetscInt | nProfilingSelectedFuncs | |
| char | profilingTimestepMode[32] | |
| char | profilingTimestepFile[PETSC_MAX_PATH_LEN] | |
| PetscBool | profilingFinalSummary | |
| PetscBool | walltimeGuardEnabled | |
| PetscBool | walltimeGuardActive | |
| PetscInt | walltimeGuardWarmupSteps | |
| PetscReal | walltimeGuardMultiplier | |
| PetscReal | walltimeGuardMinSeconds | |
| PetscReal | walltimeGuardEstimatorAlpha | |
| PetscReal | walltimeGuardJobStartEpochSeconds | |
| PetscReal | walltimeGuardLimitSeconds | |
| PetscInt | walltimeGuardCompletedSteps | |
| PetscReal | walltimeGuardWarmupTotalSeconds | |
| PetscReal | walltimeGuardWarmupAverageSeconds | |
| PetscBool | walltimeGuardHasEWMA | |
| PetscReal | walltimeGuardEWMASeconds | |
| PetscReal | walltimeGuardLatestStepSeconds | |
| char | PostprocessingControlFile[PETSC_MAX_PATH_LEN] | |
| PostProcessParams * | pps | |
| PetscReal | r[101] | |
| PetscReal | tin[101] | |
| PetscReal | uinr[101][1001] | |
| struct UserCtx |
User-defined context containing data specific to a single computational grid level.
This is the primary data structure passed to low-level numerical and solver functions.
Definition at line 811 of file variables.h.
| Data Fields | ||
|---|---|---|
| SimCtx * | simCtx | Back-pointer to the master simulation context. |
| DM | da | |
| DM | fda | |
| DM | fda2 | |
| DMDALocalInfo | info | |
| AO | ao | |
| PetscInt | IM | |
| PetscInt | JM | |
| PetscInt | KM | |
| PetscReal | Max_X | |
| PetscReal | Max_Y | |
| PetscReal | Max_Z | |
| PetscReal | Min_X | |
| PetscReal | Min_Y | |
| PetscReal | Min_Z | |
| BoundingBox | bbox | |
| RankNeighbors | neighbors | |
| PetscInt | GridOrientation | |
| PetscInt | isc | |
| PetscInt | jsc | |
| PetscInt | ksc | |
| PetscInt | _this | |
| PetscReal | rx | |
| PetscReal | ry | |
| PetscReal | rz | |
| PetscInt | cgrid | |
| BoundaryFaceConfig | boundary_faces[6] | |
| PetscBool | inletFaceDefined | |
| BCFace | identifiedInletBCFace | |
| BCS | Bcs | |
| Vec | lFriction_Velocity | |
| PetscReal | FluxIntpSum | |
| PetscReal | FluxIntfcSum | |
| Vec | Ucont | |
| Vec | lUcont | |
| Vec | Ucat | |
| Vec | lUcat | |
| Vec | P | |
| Vec | lP | |
| Vec | Phi | |
| Vec | lPhi | |
| Vec | Nvert | |
| Vec | lNvert | |
| Vec | Diffusivity | |
| Vec | lDiffusivity | |
| Vec | DiffusivityGradient | |
| Vec | lDiffusivityGradient | |
| Vec | Ucont_o | |
| Vec | lUcont_o | |
| Vec | Ucat_o | |
| Vec | P_o | |
| Vec | Nvert_o | |
| Vec | lNvert_o | |
| Vec | Ucont_rm1 | |
| Vec | lUcont_rm1 | |
| Vec | Rhs | |
| Vec | dUcont | |
| Vec | pUcont | |
| Vec | CellFieldAtCorner | |
| Vec | lCellFieldAtCorner | |
| Mat | A | |
| Mat | C | |
| KSP | ksp | |
| MatNullSpace | nullsp | |
| PetscInt * | KSKE | |
| PetscBool | multinullspace | |
| Vec | B | |
| Vec | R | |
| Mat | MR | |
| Mat | MP | |
| PetscBool | assignedA | |
| Vec | Cent | |
| Vec | lCent | |
| Vec | Csi | |
| Vec | Eta | |
| Vec | Zet | |
| Vec | Aj | |
| Vec | lCsi | |
| Vec | lEta | |
| Vec | lZet | |
| Vec | lAj | |
| Vec | GridSpace | |
| Vec | lGridSpace | |
| Vec | Centx | |
| Vec | Centy | |
| Vec | Centz | |
| Vec | ICsi | |
| Vec | IEta | |
| Vec | IZet | |
| Vec | IAj | |
| Vec | lICsi | |
| Vec | lIEta | |
| Vec | lIZet | |
| Vec | lIAj | |
| Vec | JCsi | |
| Vec | JEta | |
| Vec | JZet | |
| Vec | JAj | |
| Vec | lJCsi | |
| Vec | lJEta | |
| Vec | lJZet | |
| Vec | lJAj | |
| Vec | KCsi | |
| Vec | KEta | |
| Vec | KZet | |
| Vec | KAj | |
| Vec | lKCsi | |
| Vec | lKEta | |
| Vec | lKZet | |
| Vec | lKAj | |
| Vec | Nu_t | |
| Vec | lNu_t | |
| Vec | CS | |
| Vec | lCs | |
| Vec | K_Omega | |
| Vec | lK_Omega | |
| Vec | K_Omega_o | |
| Vec | lK_Omega_o | |
| Vec | Distance | |
| Vec | Ucat_sum | |
| Vec | Ucat_cross_sum | |
| Vec | Ucat_square_sum | |
| Vec | P_sum | |
| IBMNodes * | ibm | |
| IBMList * | ibmlist | |
| PetscInt | thislevel | |
| PetscInt | mglevels | |
| UserCtx * | user_f | |
| UserCtx * | user_c | |
| DM * | da_f | |
| DM * | da_c | |
| Vec * | lNvert_c | |
| DM | swarm | |
| RankCellInfo * | RankCellInfoMap | |
| Vec | ParticleCount | |
| Vec | lParticleCount | |
| Vec | Psi | |
| Vec | lPsi | |
| DM | post_swarm | |
| Vec | P_nodal | |
| Vec | Ucat_nodal | |
| Vec | Qcrit | |
| Vec | Psi_nodal | |
| #define COEF_TIME_ACCURACY 1.5 |
Coefficient controlling the temporal accuracy scheme (e.g., 1.5 for 2nd Order Backward Difference).
Definition at line 57 of file variables.h.
| #define MAX_PIPELINE_LENGTH 1024 |
Definition at line 543 of file variables.h.
| #define MAX_FIELD_LIST_LENGTH 1024 |
Definition at line 544 of file variables.h.
| #define MAX_FILENAME_LENGTH 256 |
Definition at line 545 of file variables.h.
| #define MAX_POINT_DATA_FIELDS 20 |
Defines the maximum number of data fields for VTK point data.
Definition at line 547 of file variables.h.
| #define MAX_VTK_FIELD_NAME_LENGTH 64 |
Maximum length for VTK field names.
Definition at line 548 of file variables.h.
The master context for the entire simulation.
This struct encapsulates all global configuration flags, physical parameters, simulation control settings, and top-level data objects. It replaces the numerous global variables from the legacy codebase, providing a single, explicit source of truth for the simulation's setup.
Definition at line 73 of file variables.h.
User-defined context containing data specific to a single computational grid level.
This is the primary data structure passed to low-level numerical and solver functions.
Definition at line 74 of file variables.h.
| typedef struct BC_Param_s BC_Param |
Definition at line 75 of file variables.h.
| typedef struct BoundaryCondition BoundaryCondition |
The "virtual table" struct for a boundary condition handler object.
Definition at line 76 of file variables.h.
| typedef struct BoundaryFaceConfig BoundaryFaceConfig |
Holds the complete configuration for one of the six boundary faces.
Definition at line 77 of file variables.h.
Represents a collection of nodes forming a surface for the IBM.
Definition at line 78 of file variables.h.
Represents a collection of nodes forming a volume for the IBM.
Definition at line 79 of file variables.h.
Holds all data related to the state and motion of a body in FSI.
Definition at line 80 of file variables.h.
User-level context for managing the entire multigrid hierarchy.
Definition at line 81 of file variables.h.
| typedef struct BoundingBox BoundingBox |
Defines a 3D axis-aligned bounding box.
Definition at line 82 of file variables.h.
Defines the vertices of a single hexahedral grid cell.
Definition at line 83 of file variables.h.
Defines a particle's core properties for Lagrangian tracking.
Definition at line 84 of file variables.h.
| typedef struct RankNeighbors RankNeighbors |
Stores the MPI ranks of neighboring subdomains.
Definition at line 85 of file variables.h.
| typedef struct RankCellInfo RankCellInfo |
A lean struct to hold the global cell ownership range for a single MPI rank.
Definition at line 86 of file variables.h.
| typedef struct MigrationInfo MigrationInfo |
Information needed to migrate a single particle between MPI ranks.
Definition at line 87 of file variables.h.
Defines prescribed body motion using splines.
Definition at line 88 of file variables.h.
Context for Multigrid operations.
Definition at line 89 of file variables.h.
| typedef struct PostProcessParams PostProcessParams |
Holds all configuration parameters for a post-processing run.
This is an enhanced version combining command-line and file-based settings.
Definition at line 90 of file variables.h.
| typedef struct VTKFieldInfo VTKFieldInfo |
Stores all necessary information for a single data array in a VTK file.
Definition at line 91 of file variables.h.
| typedef struct VTKMetaData VTKMetaData |
Definition at line 92 of file variables.h.
Holds interpolation and distance information for a single IBM point.
Definition at line 93 of file variables.h.
| typedef struct SurfElmtInfo SurfElmtInfo |
Information about a surface element for FSI calculations.
Definition at line 94 of file variables.h.
| typedef struct ScalingCtx ScalingCtx |
Definition at line 95 of file variables.h.
| typedef struct VerificationDiffusivityConfig VerificationDiffusivityConfig |
Verification-only analytical diffusivity override settings.
| typedef struct VerificationScalarConfig VerificationScalarConfig |
Verification-only analytical scalar override settings.
| typedef struct SearchMetricsState SearchMetricsState |
Aggregated per-timestep search instrumentation counters.
| typedef struct IBMListNode IBMListNode |
A linked list node containing IBM interpolation info.
Defines the state of a particle with respect to its location and migration status during the iterative SettleParticles() process.
| Enumerator | |
|---|---|
| NEEDS_LOCATION | |
| ACTIVE_AND_LOCATED | |
| MIGRATING_OUT | |
| LOST | |
| UNINITIALIZED | |
Definition at line 135 of file variables.h.
| enum Face |
Enumerates the six faces of a cubic cell for distance calculations.
| Enumerator | |
|---|---|
| LEFT | |
| RIGHT | |
| BOTTOM | |
| TOP | |
| FRONT | |
| BACK | |
| NUM_FACES | |
Definition at line 144 of file variables.h.
| enum BCFace |
Identifies the six logical faces of a structured computational block.
| Enumerator | |
|---|---|
| BC_FACE_NEG_X | |
| BC_FACE_POS_X | |
| BC_FACE_NEG_Y | |
| BC_FACE_POS_Y | |
| BC_FACE_NEG_Z | |
| BC_FACE_POS_Z | |
Definition at line 244 of file variables.h.
| enum BCType |
Defines the general mathematical/physical Category of a boundary.
| Enumerator | |
|---|---|
| WALLFUNCTION | |
| INTERFACE | |
| WALL | |
| MOVING_WALL | |
| SYMMETRY | |
| OUTLET | |
| INLET | |
| FARFIELD | |
| PERIODIC | |
| CHARACTERISTIC_BC | |
| ANALYTICAL_VORTEX | |
| JUNCTION | |
| ANNULUS | |
| OGRID | |
| RHEOLOGY | |
Definition at line 251 of file variables.h.
| enum BCHandlerType |
Defines the specific computational "strategy" for a boundary handler.
Definition at line 271 of file variables.h.
| enum BCPriorityType |
| Enumerator | |
|---|---|
| BC_PRIORITY_UNDEFINED | |
| BC_PRIORITY_INLET | |
| BC_PRIORITY_FARFIELD | |
| BC_PRIORITY_WALL | |
| BC_PRIORITY_OUTLET | |
Definition at line 291 of file variables.h.
| enum LESModelType |
Identifies the six logical faces of a structured computational block.
| Enumerator | |
|---|---|
| NO_LES_MODEL | |
| CONSTANT_SMAGORINSKY | |
| DYNAMIC_SMAGORINSKY | |
Definition at line 488 of file variables.h.
| enum MomentumSolverType |
Enumerator to identify the implemented momentum solver strategies.
Add new enum values only when the parser, runtime dispatch, docs, and tests are updated in the same change.
| Enumerator | |
|---|---|
| MOMENTUM_SOLVER_EXPLICIT_RK | |
| MOMENTUM_SOLVER_DUALTIME_PICARD_RK4 | |
Definition at line 502 of file variables.h.
Enumerator to identify the particle initialization strategy.
Definition at line 508 of file variables.h.
| enum InterpolationMethod |
Selects the grid-to-particle interpolation method.
| Enumerator | |
|---|---|
| INTERP_TRILINEAR | |
| INTERP_CORNER_AVERAGED | |
Definition at line 521 of file variables.h.
| enum VTKFileType |
Enumerates the type of VTK file to be written.
| Enumerator | |
|---|---|
| VTK_STRUCTURED | |
| VTK_POLYDATA | |
Definition at line 596 of file variables.h.
| enum ExecutionMode |
Defines the execution mode of the application.
| Enumerator | |
|---|---|
| EXEC_MODE_SOLVER | |
| EXEC_MODE_POSTPROCESSOR | |
| EXEC_MODE_UNKNOWN | |
Definition at line 615 of file variables.h.