HyPar  1.0
Finite-Difference Hyperbolic-Parabolic PDE Solver on Cartesian Grids
HyPar Struct Reference

Structure containing all solver-specific variables and functions. More...

#include <hypar.h>

Data Fields

int ndims
 
int nvars
 
int * dim_global
 
int * dim_local
 
int npoints_global
 
int npoints_local
 
int npoints_local_wghosts
 
int ndof_nodes
 
int ndof_cells_wghosts
 
int size_x
 
int ghosts
 
int n_iter
 
int restart_iter
 
int my_idx
 
int nsims
 
double dt
 
int * dim_global_ex
 
char time_scheme [_MAX_STRING_SIZE_]
 
char time_scheme_type [_MAX_STRING_SIZE_]
 
char spatial_scheme_hyp [_MAX_STRING_SIZE_]
 
char interp_type [_MAX_STRING_SIZE_]
 
char SplitHyperbolicFlux [_MAX_STRING_SIZE_]
 
char spatial_type_par [_MAX_STRING_SIZE_]
 
char spatial_scheme_par [_MAX_STRING_SIZE_]
 
int * index
 
double * x
 
double * dxinv
 
double * u
 
double * hyp
 
double * par
 
double * source
 
double * fluxC
 
double * uC
 
double * fluxI
 
double * uL
 
double * uR
 
double * fL
 
double * fR
 
double * Deriv1
 
double * Deriv2
 
int nBoundaryZones
 
void * boundary
 
int * isPeriodic
 
void * time_integrator
 
int screen_op_iter
 
int file_op_iter
 
int write_residual
 
char input_mode [_MAX_STRING_SIZE_]
 
char ip_file_type [_MAX_STRING_SIZE_]
 
char output_mode [_MAX_STRING_SIZE_]
 
char op_file_format [_MAX_STRING_SIZE_]
 
char op_overwrite [_MAX_STRING_SIZE_]
 
char plot_solution [_MAX_STRING_SIZE_]
 
char * filename_index
 
int index_length
 
char solnfilename_extn [_MAX_STRING_SIZE_]
 
char plotfilename_extn [_MAX_STRING_SIZE_]
 
char op_fname_root [_MAX_STRING_SIZE_]
 
char aux_op_fname_root [_MAX_STRING_SIZE_]
 
int(* WriteOutput )(int, int, int *, double *, double *, char *, int *)
 
int(* ApplyBoundaryConditions )(void *, void *, double *, double *, double)
 
int(* ApplyIBConditions )(void *, void *, double *, double)
 
int(* TimeIntegrate )(void *)
 
int(* InterpolateInterfacesHyp )(double *, double *, double *, double *, int, int, void *, void *, int)
 
int(* NonlinearInterp )(double *, void *, void *, double, int(*)(double *, double *, int, void *, double))
 
int(* SetInterpLimiterVar )(double *, double *, double *, int, void *, void *)
 
int(* InterpolateInterfacesPar )(double *, double *, int, void *, void *)
 
int(* FirstDerivativePar )(double *, double *, int, int, void *, void *)
 
int(* SecondDerivativePar )(double *, double *, int, void *, void *)
 
int(* HyperbolicFunction )(double *, double *, void *, void *, double, int, int(*)(double *, double *, int, void *, double), int(*)(double *, double *, double *, double *, double *, double *, int, void *, double))
 
int(* ParabolicFunction )(double *, double *, void *, void *, double)
 
int(* SourceFunction )(double *, double *, void *, void *, double)
 
char model [_MAX_STRING_SIZE_]
 
void * physics
 
double(* ComputeCFL )(void *, void *, double, double)
 
double(* ComputeDiffNumber )(void *, void *, double, double)
 
int(* FFunction )(double *, double *, int, void *, double)
 
int(* dFFunction )(double *, double *, int, void *, double)
 
int(* FdFFunction )(double *, double *, int, void *, double)
 
int flag_fdf_specified
 
int(* Upwind )(double *, double *, double *, double *, double *, double *, int, void *, double)
 
int(* UpwinddF )(double *, double *, double *, double *, double *, double *, int, void *, double)
 
int(* UpwindFdF )(double *, double *, double *, double *, double *, double *, int, void *, double)
 
int(* GFunction )(double *, double *, int, void *, double)
 
int(* HFunction )(double *, double *, int, int, void *, double)
 
int(* SFunction )(double *, double *, void *, void *, double)
 
int(* UFunction )(double *, double *, int, void *, void *, double)
 
int(* JFunction )(double *, double *, void *, int, int, int)
 
int(* KFunction )(double *, double *, void *, int, int)
 
int(* PreStage )(int, double **, void *, void *, double)
 
int(* PostStage )(double *, void *, void *, double)
 
int(* PreStep )(double *, void *, void *, double)
 
int(* PostStep )(double *, void *, void *, double, int)
 
int(* PrintStep )(void *, void *, double)
 
int(* PhysicsOutput )(void *, void *, double)
 
int(* PhysicsInput )(void *, void *, int, int, int *)
 
int(* AveragingFunction )(double *, double *, double *, void *)
 
int(* GetLeftEigenvectors )(double *, double *, void *, int)
 
int(* GetRightEigenvectors )(double *, double *, void *, int)
 
void * interp
 
void * compact
 
void * msti
 
void * lusolver
 
double error [3]
 
double * ConservationError
 
char ConservationCheck [_MAX_STRING_SIZE_]
 
double * VolumeIntegral
 
double * VolumeIntegralInitial
 
double * StageBoundaryIntegral
 
double * StepBoundaryIntegral
 
double * TotalBoundaryIntegral
 
int(* VolumeIntegralFunction )(double *, double *, void *, void *)
 
int(* BoundaryIntegralFunction )(void *, void *)
 
int(* CalculateConservationError )(void *, void *)
 
int use_petscTS
 
double * u0
 
double * uref
 
double * rhsref
 
double * rhs
 
double * u_rom_predicted
 
double rom_diff_norms [3]
 
char op_rom_fname_root [_MAX_STRING_SIZE_]
 
int flag_nonlinearinterp
 
int * stride_with_ghosts
 
int * stride_without_ghosts
 
int count_hyp
 
int count_par
 
int count_sou
 
int count_RHSFunction
 
int count_IFunction
 
int count_IJacobian
 
int count_RHSJacobian
 
int count_IJacFunction
 
int count_RHSJacFunction
 
double * iblank
 
char ib_filename [_MAX_STRING_SIZE_]
 
int flag_ib
 
void * ib
 
int(* IBFunction )(void *, void *, double *, double)
 
int use_gpu
 
int gpu_device_no
 
int gpu_npoints_boundary_offset [3]
 
int gpu_npoints_boundary [3]
 
int * gpu_dim_local
 
double * gpu_iblank
 
double * gpu_x
 
double * gpu_dxinv
 
double * gpu_u
 
int StageBoundaryBuffer_size
 
double * StageBoundaryBuffer
 
void * py_plt_func
 
void * py_plt_func_args
 

Detailed Description

Structure containing all solver-specific variables and functions.

This structure contains all the variables and function pointers for the main PDE solver.

Definition at line 23 of file hypar.h.

Field Documentation

◆ ndims

int ndims

Number of spatial/coordinate dimensions (input - solver.inp )

Definition at line 26 of file hypar.h.

◆ nvars

int nvars

Number of variables or DoFs at a grid point (input - solver.inp )

Definition at line 29 of file hypar.h.

◆ dim_global

int* dim_global

Global dimensions: array of size HyPar::ndims containing the global grid size in each spatial/coordinate dimension (input - solver.inp )

Definition at line 33 of file hypar.h.

◆ dim_local

int* dim_local

Local dimensions: array of size HyPar::ndims containing the local grid size in each spatial/coordinate dimension (computed, based on the number of processors)

Definition at line 37 of file hypar.h.

◆ npoints_global

int npoints_global

Global number of grid points (product of all the elements of dim_global)

Definition at line 40 of file hypar.h.

◆ npoints_local

int npoints_local

Local number of grid points (product of all the elements of dim_local)

Definition at line 42 of file hypar.h.

◆ npoints_local_wghosts

int npoints_local_wghosts

Local number of grid points with ghost points (product of the [elements of dim_local + 2*HyPar::ghosts])

Definition at line 42 of file hypar.h.

◆ ndof_nodes

int ndof_nodes

Total number of degrees of freedom considering cell corners (no ghosts)

Definition at line 46 of file hypar.h.

◆ ndof_cells_wghosts

int ndof_cells_wghosts

Total number of degrees of freedom considering cell centered (with ghosts)

Definition at line 47 of file hypar.h.

◆ size_x

int size_x

the size of HyPar::x array

Definition at line 48 of file hypar.h.

◆ ghosts

int ghosts

Number of ghost points at the boundary - it's the same along all dimensions (input - solver.inp )

Definition at line 52 of file hypar.h.

◆ n_iter

int n_iter

Number of time steps (input - solver.inp )

Definition at line 55 of file hypar.h.

◆ restart_iter

int restart_iter

If restart run, time step iteration at which to restart. 0 -> not a restart run (input - solver.inp )

Definition at line 58 of file hypar.h.

◆ my_idx

int my_idx

for multi-domain simulations, index of this solver object

Definition at line 61 of file hypar.h.

◆ nsims

int nsims

for multi-domain simulations, total number of solver objects

Definition at line 64 of file hypar.h.

◆ dt

double dt

time step size (input - solver.inp )

Definition at line 67 of file hypar.h.

◆ dim_global_ex

int* dim_global_ex

Global dimensions of exact solution, if available: if an exact/reference solution is available to compute errors, this array of size HyPar::ndims contains its global grid size in each spatial/coordinate dimension. By default, it is the same as HyPar::dim_global, unless specified otherwise in solver.inp

Definition at line 75 of file hypar.h.

◆ time_scheme

char time_scheme[_MAX_STRING_SIZE_]

choice of time integration class (eg RK) (input - solver.inp )

Definition at line 78 of file hypar.h.

◆ time_scheme_type

char time_scheme_type[_MAX_STRING_SIZE_]

specific time-integration scheme in that class (eg. rk44, ssprk3) (input - solver.inp )

Definition at line 81 of file hypar.h.

◆ spatial_scheme_hyp

char spatial_scheme_hyp[_MAX_STRING_SIZE_]

choice of spatial discretization scheme for the hyperbolic terms (eg: weno5, crweno5, muscl3) (input - solver.inp )

Definition at line 84 of file hypar.h.

◆ interp_type

char interp_type[_MAX_STRING_SIZE_]

type of reconstruction for spatial discretization of hyperbolic term (characteristic or component-wise) (input - solver.inp )

Definition at line 88 of file hypar.h.

◆ SplitHyperbolicFlux

char SplitHyperbolicFlux[_MAX_STRING_SIZE_]

split the hyperbolic flux into two terms - for implicit-explicit time-integration or for any other purpose (input - solver.inp )

Definition at line 92 of file hypar.h.

◆ spatial_type_par

char spatial_type_par[_MAX_STRING_SIZE_]

type of spatial discretization for the parabolic term conservative-1stage, nonconservative-1stage, or nonconservative-2stage (input - solver.inp )

Definition at line 96 of file hypar.h.

◆ spatial_scheme_par

char spatial_scheme_par[_MAX_STRING_SIZE_]

choice of spatial discretization scheme for the parabolic term (input - solver.inp )

Definition at line 99 of file hypar.h.

◆ index

int* index

a HyPar::ndims-dimensional integer array used to reference grid points

Definition at line 102 of file hypar.h.

◆ x

double* x

the coordinate vector: one 1D array containing the spatial coordinates along each dimension of the grid points, one dimension after the other. Use _GetCoordinate_ to access the spatial coordinate at a specific grid point

Definition at line 107 of file hypar.h.

◆ dxinv

double* dxinv

array containing (1.0/dx): layout same as that of x

Definition at line 110 of file hypar.h.

◆ u

double* u

Solution vector: the HyPar::ndims-dimensional solution vector with nvars components at each grid point is stored as a 1D array. Includes ghost points Use _ArrayIndex1D_ to calculate the index in the 1D array corresponding to a HyPar::ndims-dimensional index (i_0, i_1, i_2, ..., i_{ndims-1})

Definition at line 116 of file hypar.h.

◆ hyp

double* hyp

Array to hold the discretized hyperbolic term: Same layout as u

Definition at line 119 of file hypar.h.

◆ par

double* par

Array to hold the discretized parabolic term: Same layout as u

Definition at line 122 of file hypar.h.

◆ source

double* source

Array to hold the source term: Same layout as u

Definition at line 125 of file hypar.h.

◆ fluxC

double* fluxC

Array to hold the cell-centered hyperbolic flux: Same layout as u

Definition at line 128 of file hypar.h.

◆ uC

double* uC

Array to hold the cell-centered modified solution: Same layout as u

Definition at line 131 of file hypar.h.

◆ fluxI

double* fluxI

Array to hold the interface hyperbolic flux for a conservative finite-difference method Since number of interfaces is one more than the number of cell-centers, the dimensions of fluxI is accordingly increased during allocation. Does not have ghost points.

Definition at line 136 of file hypar.h.

◆ uL

double* uL

Array to hold the left-biased reconstructed solution at the interface. Same layout as fluxI. No ghost points

Definition at line 139 of file hypar.h.

◆ uR

double * uR

Array to hold the right-biased reconstructed solution at the interface. Same layout as fluxI. No ghost points

Definition at line 139 of file hypar.h.

◆ fL

double * fL

Array to hold the left-biased reconstructed hyperbolic flux at the interface. Same layout as fluxI. No ghost points

Definition at line 139 of file hypar.h.

◆ fR

double * fR

Array to hold the right-biased reconstructed hyperbolic flux at the interface. Same layout as fluxI. No ghost points

Definition at line 139 of file hypar.h.

◆ Deriv1

double* Deriv1

arrays to hold approximations to the first and second derivatives to a given function at grid points. Layout is same as u, hyp, par, source. Includes ghost points Array to hold approximations to the first derivative to a given function at grid points. Layout is same as u, hyp, par, source. Includes ghost points

Definition at line 151 of file hypar.h.

◆ Deriv2

double * Deriv2

Array to hold approximations to the second derivative to a given function at grid points. Layout is same as u, hyp, par, source. Includes ghost points

Definition at line 151 of file hypar.h.

◆ nBoundaryZones

int nBoundaryZones

Boundary conditions: Number of boundary zones

Definition at line 157 of file hypar.h.

◆ boundary

void* boundary

Pointer to the boundary zones: boundary zone type is defined in boundaryconditions.h

Definition at line 159 of file hypar.h.

◆ isPeriodic

int* isPeriodic

Pointer to array of size HyPar::ndims: each element is 1 if the domain is periodic along that spatial dimension; zero otherwise.

Definition at line 162 of file hypar.h.

◆ time_integrator

void* time_integrator

pointer to the time-integration object

Definition at line 165 of file hypar.h.

◆ screen_op_iter

int screen_op_iter

frequency (iterations) of writing iteration information (dt,CFL,norm,etc) to screen (input - solver.inp )

Definition at line 168 of file hypar.h.

◆ file_op_iter

int file_op_iter

frequency (iterations) of writing solution to file (input - solver.inp )

Definition at line 171 of file hypar.h.

◆ write_residual

int write_residual

flag to control if residual is written to file (input - solver.inp )

Definition at line 174 of file hypar.h.

◆ input_mode

char input_mode[_MAX_STRING_SIZE_]

mode of reading in initial solution: serial, parallel or mpi-io (input - solver.inp )

Definition at line 177 of file hypar.h.

◆ ip_file_type

char ip_file_type[_MAX_STRING_SIZE_]

type of initial solution file: ascii or binary (input - solver.inp )

Definition at line 180 of file hypar.h.

◆ output_mode

char output_mode[_MAX_STRING_SIZE_]

mode of writing solution to file: serial or parallel (input - solver.inp )

Definition at line 183 of file hypar.h.

◆ op_file_format

char op_file_format[_MAX_STRING_SIZE_]

solution output file format: binary, text, tecplot2d, tecplot 3d (input - solver.inp )

Definition at line 186 of file hypar.h.

◆ op_overwrite

char op_overwrite[_MAX_STRING_SIZE_]

overwrite solution file when writing new one? ("yes" - for steady solutions or if interested only in the final solution; "no" - to keep the solutions written at intermediate time steps). (input - solver.inp )

Definition at line 191 of file hypar.h.

◆ plot_solution

char plot_solution[_MAX_STRING_SIZE_]

plot solutions during simulation?

Definition at line 194 of file hypar.h.

◆ filename_index

char* filename_index

filename index for files written every few iterations

Definition at line 197 of file hypar.h.

◆ index_length

int index_length

length of filename_index - should be sufficient for the number of files expected to be written

Definition at line 199 of file hypar.h.

◆ solnfilename_extn

char solnfilename_extn[_MAX_STRING_SIZE_]

solution filename extension

Definition at line 201 of file hypar.h.

◆ plotfilename_extn

char plotfilename_extn[_MAX_STRING_SIZE_]

plot figure filename extension

Definition at line 203 of file hypar.h.

◆ op_fname_root

char op_fname_root[_MAX_STRING_SIZE_]

output filename root

Definition at line 206 of file hypar.h.

◆ aux_op_fname_root

char aux_op_fname_root[_MAX_STRING_SIZE_]

auxiliary output filename root

Definition at line 208 of file hypar.h.

◆ WriteOutput

int(* WriteOutput) (int, int, int *, double *, double *, char *, int *)

Pointer to the function to write the solution to file, assigned in InitializeSolvers()

Definition at line 211 of file hypar.h.

◆ ApplyBoundaryConditions

int(* ApplyBoundaryConditions) (void *, void *, double *, double *, double)

Pointer to the function to apply the physical boundary conditions to the solution, assigned in InitializeSolvers()

Definition at line 214 of file hypar.h.

◆ ApplyIBConditions

int(* ApplyIBConditions) (void *, void *, double *, double)

Pointer to the function to apply the immersed boundary conditions to the solution, assigned in InitializeSolvers()

Definition at line 217 of file hypar.h.

◆ TimeIntegrate

int(* TimeIntegrate) (void *)

Pointer to the function to integrate the solution in time, assigned in InitializeSolvers()

Definition at line 220 of file hypar.h.

◆ InterpolateInterfacesHyp

int(* InterpolateInterfacesHyp) (double *, double *, double *, double *, int, int, void *, void *, int)

Pointer to the function to interpolate a function at the grid interfaces from the cell-centered values for the hyperbolic flux, assigned in InitializeSolvers()

Definition at line 224 of file hypar.h.

◆ NonlinearInterp

int(* NonlinearInterp) (double *, void *, void *, double, int(*)(double *, double *, int, void *, double))

Pointer to the function to pre-calculate the nonlinear interpolation coefficients for the hyperbolic flux interpolation, assigned in InitializeSolvers()

Definition at line 228 of file hypar.h.

◆ SetInterpLimiterVar

int(* SetInterpLimiterVar) (double *, double *, double *, int, void *, void *)

Pointer to the function to calculate the non-linear interpolation coefficients of the given scheme, assigned by the initialization function of the non-linear interpolation method (eg. WENOInitialize() )

Definition at line 234 of file hypar.h.

◆ InterpolateInterfacesPar

int(* InterpolateInterfacesPar) (double *, double *, int, void *, void *)

Pointer to the function to interpolate a function at the grid interfaces from the cell-centered values for the parabolic flux (needed for a conservative 1-stage discretization), assigned in InitializeSolvers()

Definition at line 239 of file hypar.h.

◆ FirstDerivativePar

int(* FirstDerivativePar) (double *, double *, int, int, void *, void *)

Pointer to the function to calculate the cell-centered first derivative of a given function, for the evaluation of the parabolic term; assigned in InitializeSolvers()

Definition at line 243 of file hypar.h.

◆ SecondDerivativePar

int(* SecondDerivativePar) (double *, double *, int, void *, void *)

Pointer to the function to calculate the cell-centered second derivative of a given function, for the evaluation of the parabolic term; assigned in InitializeSolvers()

Definition at line 247 of file hypar.h.

◆ HyperbolicFunction

int(* HyperbolicFunction) (double *, double *, void *, void *, double, int, int(*)(double *, double *, int, void *, double), int(*)(double *, double *, double *, double *, double *, double *, int, void *, double))

Pointer to the function to calculate the hyperbolic term (assigned in InitializeSolvers())

Definition at line 250 of file hypar.h.

◆ ParabolicFunction

int(* ParabolicFunction) (double *, double *, void *, void *, double)

Pointer to the function to calculate the parabolic term (assigned in InitializeSolvers())

Definition at line 256 of file hypar.h.

◆ SourceFunction

int(* SourceFunction) (double *, double *, void *, void *, double)

Pointer to the function to calculate the source term (assigned in InitializeSolvers())

Definition at line 259 of file hypar.h.

◆ model

char model[_MAX_STRING_SIZE_]

name of physical model (defined in the header files in folder physicalmodels) (input - solver.inp )

Definition at line 263 of file hypar.h.

◆ physics

void* physics

object providing the physics of the PDE being solved

Definition at line 266 of file hypar.h.

◆ ComputeCFL

double(* ComputeCFL) (void *, void *, double, double)

Pointer to the function to calculate the CFL number (assigned in the physical model initialization called from InitializePhysics())

Definition at line 269 of file hypar.h.

◆ ComputeDiffNumber

double(* ComputeDiffNumber) (void *, void *, double, double)

Pointer to the function to calculate the diffusion number (assigned in the physical model initialization called from InitializePhysics())

Definition at line 272 of file hypar.h.

◆ FFunction

int(* FFunction) (double *, double *, int, void *, double)

Pointer to the function to calculate the hyperbolic flux function (assigned in the physical model initialization called from InitializePhysics())

Definition at line 276 of file hypar.h.

◆ dFFunction

int(* dFFunction) (double *, double *, int, void *, double)

If hyperbolic flux is split as \(f\left(u\right) = \left[f\left(u\right)-df\left(u\right)\right] + df\left(u\right)\) (see HyPar::SplitHyperbolicFlux), function to calculate \(df\left(u\right)\) (assigned in the physical model initialization called from InitializePhysics())

Definition at line 280 of file hypar.h.

◆ FdFFunction

int(* FdFFunction) (double *, double *, int, void *, double)

If hyperbolic flux is split as \(f\left(u\right) = \left[f\left(u\right)-df\left(u\right)\right] + df\left(u\right)\), (see HyPar::SplitHyperbolicFlux), function to calculate \(\left[f-df\right]\left(u\right)\)(assigned in the physical model initialization called from InitializePhysics()) .
Specifying this is optional; if the physical model does not explicitly specify this, then it is computed by subtracting HyPar::dFFunction() from HyPar::FFunction().

See also
HyPar::flag_fdf_specified

Definition at line 286 of file hypar.h.

◆ flag_fdf_specified

int flag_fdf_specified

Flag indicating whether the physical model has explicitly specified the function to compute \(\left[f-df\right]\left(u\right)\) (HyPar::FdFFunction()) or not. Relevant if the hyperbolic flux is being partitioned.

See also
HyPar::SplitHyperbolicFlux, HyPar::dFFunction(), HyPar::FdFFunction()

Definition at line 290 of file hypar.h.

◆ Upwind

int(* Upwind) (double *, double *, double *, double *, double *, double *, int, void *, double)

Pointer to the function to calculate the upwind interface flux, given the left- and right-biased fluxes (assigned in the physical model initialization called from InitializePhysics())

Definition at line 295 of file hypar.h.

◆ UpwinddF

int(* UpwinddF) (double *, double *, double *, double *, double *, double *, int, void *, double)

Pointer to the function to calculate the upwind interface split flux \(df\left(u\right)\), given the left- and right-biased approximations (assigned in the physical model initialization called from InitializePhysics()). Relevant only if the hyperbolic flux is being partitioned as \(f\left(u\right) = \left[f\left(u\right)-df\left(u\right)\right] + df\left(u\right)\)

See also
HyPar::SplitHyperbolicFlux, HyPar::dFFunction()

Definition at line 300 of file hypar.h.

◆ UpwindFdF

int(* UpwindFdF) (double *, double *, double *, double *, double *, double *, int, void *, double)

Pointer to the function to calculate the upwind interface split flux \(\left[f-df\right]\left(u\right)\), given its left- and right-biased approximations (assigned in the physical model initialization called from InitializePhysics()). Relevant only if the hyperbolic flux is being partitioned as \(f\left(u\right) = \left[f\left(u\right)-df\left(u\right)\right] + df\left(u\right)\) (see HyPar::SplitHyperbolicFlux, HyPar::dFFunction()), and if the split part \(\left[f-df\right]\left(u\right)\) is being specified explicitly (see HyPar::FdFFunction(), HyPar::flag_fdf_specified).

Definition at line 307 of file hypar.h.

◆ GFunction

int(* GFunction) (double *, double *, int, void *, double)

Pointer to the function to calculate the parabolic function with no cross-derivatives (assigned in the physical model initialization called from InitializePhysics())

Definition at line 310 of file hypar.h.

◆ HFunction

int(* HFunction) (double *, double *, int, int, void *, double)

Pointer to the function to calculate the parabolic function with cross-derivatives (assigned in the physical model initialization called from InitializePhysics())

Definition at line 313 of file hypar.h.

◆ SFunction

int(* SFunction) (double *, double *, void *, void *, double)

Pointer to the function to calculate the source function (assigned in the physical model initialization called from InitializePhysics())

Definition at line 317 of file hypar.h.

◆ UFunction

int(* UFunction) (double *, double *, int, void *, void *, double)

Pointer to the function to calculate the modified solution for upwinding (assigned in the physical model initialization called from InitializePhysics())

Definition at line 321 of file hypar.h.

◆ JFunction

int(* JFunction) (double *, double *, void *, int, int, int)

Pointer to the function to calculate the flux Jacobian for a given solution state (assigned in the physical model initialization called from InitializePhysics()). The advective flux Jacobian is the Jacobian of the analytical (not spatially discretized) advective flux for a given solution state (for example, at a grid point). The size is (HyPar::nvars)^2 and the matrix is stored as a 1D array in row-major format.

Definition at line 326 of file hypar.h.

◆ KFunction

int(* KFunction) (double *, double *, void *, int, int)

Pointer to the function to calculate the diffusion term Jacobian for a given solution state (assigned in the physical model initialization called from InitializePhysics()). The diffusion Jacobian is the Jacobian of the analytical (not spatially discretized) diffusion term for a given solution state (for example, at a grid point). The size is (HyPar::nvars)^2 and the matrix is stored as a 1D array in row-major format.

Definition at line 331 of file hypar.h.

◆ PreStage

int(* PreStage) (int, double **, void *, void *, double)

Pointer to the function to do some pre-time-integration-stage computations, if required (assigned in the physical model initialization called from InitializePhysics())

Definition at line 334 of file hypar.h.

◆ PostStage

int(* PostStage) (double *, void *, void *, double)

Pointer to the function to do some post-time-integration-stage computations, if required (assigned in the physical model initialization called from InitializePhysics())

Definition at line 336 of file hypar.h.

◆ PreStep

int(* PreStep) (double *, void *, void *, double)

Pointer to the function to do some pre-time-integration-step computations, if required (assigned in the physical model initialization called from InitializePhysics())

Definition at line 339 of file hypar.h.

◆ PostStep

int(* PostStep) (double *, void *, void *, double, int)

Pointer to the function to do some post-time-integration-step computations, if required (assigned in the physical model initialization called from InitializePhysics())

Definition at line 341 of file hypar.h.

◆ PrintStep

int(* PrintStep) (void *, void *, double)

Pointer to the function to print some physics-specific time-integration-step information, if required (assigned in the physical model initialization called from InitializePhysics())

Definition at line 344 of file hypar.h.

◆ PhysicsOutput

int(* PhysicsOutput) (void *, void *, double)

Pointer to the function to write (to file) physics-related data that may not be a part of the solution (assigned in the physical model initialization called from InitializePhysics())

Definition at line 347 of file hypar.h.

◆ PhysicsInput

int(* PhysicsInput) (void *, void *, int, int, int *)

Pointer to the function to read (from file) physics-related data that may not be a part of the solution (assigned in the physical model initialization called from InitializePhysics())

Definition at line 351 of file hypar.h.

◆ AveragingFunction

int(* AveragingFunction) (double *, double *, double *, void *)

Pointer to the function to calculate the averaged solution state, given two solution states (assigned in the physical model initialization called from InitializePhysics())

Definition at line 354 of file hypar.h.

◆ GetLeftEigenvectors

int(* GetLeftEigenvectors) (double *, double *, void *, int)

Pointer to the function to calculate the left eigenvectors of the flux Jacobian for a given solution state (assigned in the physical model initialization called from InitializePhysics())

Definition at line 357 of file hypar.h.

◆ GetRightEigenvectors

int(* GetRightEigenvectors) (double *, double *, void *, int)

Pointer to the function to calculate the right eigenvectors of the flux Jacobian for a given solution state (assigned in the physical model initialization called from InitializePhysics())

Definition at line 359 of file hypar.h.

◆ interp

void* interp

object containing interpolation-related parameters (of hyperbolic flux reconstruction

Definition at line 362 of file hypar.h.

◆ compact

void* compact

object containing arrays needed for compact finite-difference methods

Definition at line 364 of file hypar.h.

◆ msti

void* msti

object containing multi-stage time-integration (RK-type) related parameters

Definition at line 366 of file hypar.h.

◆ lusolver

void* lusolver

object containing parameters for the tridiagonal solver

Definition at line 368 of file hypar.h.

◆ error

double error[3]

Errors - L1, L2 and L_inf; calculated only if an exact solution file is supplied

Definition at line 371 of file hypar.h.

◆ ConservationError

double* ConservationError

Conservation error in the solution – does not indicate anything if parabolic and source terms are non-zero

Definition at line 374 of file hypar.h.

◆ ConservationCheck

char ConservationCheck[_MAX_STRING_SIZE_]

check for conservation error?

Definition at line 376 of file hypar.h.

◆ VolumeIntegral

double* VolumeIntegral

Volume integral of the solution over the global domain

Definition at line 378 of file hypar.h.

◆ VolumeIntegralInitial

double* VolumeIntegralInitial

Volume integral of the initial solution over the global domain

Definition at line 380 of file hypar.h.

◆ StageBoundaryIntegral

double* StageBoundaryIntegral

Surface integral of the flux at the boundary for each time-integration stage

Definition at line 382 of file hypar.h.

◆ StepBoundaryIntegral

double* StepBoundaryIntegral

Surface integral of the flux at the boundary for a time-integration step

Definition at line 384 of file hypar.h.

◆ TotalBoundaryIntegral

double* TotalBoundaryIntegral

Total surface integral of the flux over the global domain boundary

Definition at line 386 of file hypar.h.

◆ VolumeIntegralFunction

int(* VolumeIntegralFunction) (double *, double *, void *, void *)

Pointer to the function to calculate the volume integral of a given function

Definition at line 388 of file hypar.h.

◆ BoundaryIntegralFunction

int(* BoundaryIntegralFunction) (void *, void *)

Pointer to the function to calculate the boundary integral of the flux

Definition at line 390 of file hypar.h.

◆ CalculateConservationError

int(* CalculateConservationError) (void *, void *)

Pointer to the function to calculate the conservation error

Definition at line 392 of file hypar.h.

◆ use_petscTS

int use_petscTS

Use PETSc time-integration?

Definition at line 395 of file hypar.h.

◆ u0

double* u0

copy of solution vector

Definition at line 396 of file hypar.h.

◆ uref

double* uref

copy of solution vector

Definition at line 397 of file hypar.h.

◆ rhsref

double* rhsref

copy of the RHS vector

Definition at line 398 of file hypar.h.

◆ rhs

double* rhs

RHS vector

Definition at line 399 of file hypar.h.

◆ u_rom_predicted

double* u_rom_predicted

Solution predicted using a ROM

Definition at line 403 of file hypar.h.

◆ rom_diff_norms

double rom_diff_norms[3]

L1, L2, Linf norms of the diff between PDE and ROM solutions

Definition at line 405 of file hypar.h.

◆ op_rom_fname_root

char op_rom_fname_root[_MAX_STRING_SIZE_]

output filename root for ROM solution file

Definition at line 407 of file hypar.h.

◆ flag_nonlinearinterp

int flag_nonlinearinterp

flag to globally switch on/off non-linear interpolation

Definition at line 411 of file hypar.h.

◆ stride_with_ghosts

int* stride_with_ghosts

strides along each dimension for an array with ghost points

Definition at line 414 of file hypar.h.

◆ stride_without_ghosts

int* stride_without_ghosts

strides along each dimension for an array without ghost points

Definition at line 416 of file hypar.h.

◆ count_hyp

int count_hyp

number of times the hyperbolic function is called

Definition at line 418 of file hypar.h.

◆ count_par

int count_par

number of times the parabolic function is called

Definition at line 418 of file hypar.h.

◆ count_sou

int count_sou

number of times the source function is called

Definition at line 418 of file hypar.h.

◆ count_RHSFunction

int count_RHSFunction

number of times the RHSFunction is called

Definition at line 422 of file hypar.h.

◆ count_IFunction

int count_IFunction

number of times the IFunction is called

Definition at line 422 of file hypar.h.

◆ count_IJacobian

int count_IJacobian

number of times the IJacobian is called

Definition at line 422 of file hypar.h.

◆ count_RHSJacobian

int count_RHSJacobian

number of times the RHSJacobian is called

Definition at line 422 of file hypar.h.

◆ count_IJacFunction

int count_IJacFunction

number of times the IJacFunction is called

Definition at line 422 of file hypar.h.

◆ count_RHSJacFunction

int count_RHSJacFunction

number of times the RHSJacFunction is called

Definition at line 422 of file hypar.h.

◆ iblank

double* iblank

blanking array: of same size and layout as HyPar::u (but with 1 component per grid point, it has a value 1 for all valid grid points and 0 for grid points that are blanked out. It is essentially an integer array, but the declared as a double type to use functions defined for the double data type.

Definition at line 436 of file hypar.h.

◆ ib_filename

char ib_filename[_MAX_STRING_SIZE_]

Name of immersed body STL file (input - solver.inp )

Definition at line 439 of file hypar.h.

◆ flag_ib

int flag_ib

Flag to indicate if immersed boundaries are in use

Definition at line 441 of file hypar.h.

◆ ib

void* ib

Immersed boundary object

Definition at line 443 of file hypar.h.

◆ IBFunction

int(* IBFunction) (void *, void *, double *, double)

Physics-specific immersed boundary treatment function (assigned in the physical model initialization called from InitializePhysics())

Definition at line 446 of file hypar.h.

◆ use_gpu

int use_gpu

Indicate whether to use GPU or not

Definition at line 449 of file hypar.h.

◆ gpu_device_no

int gpu_device_no

GPU device number to use, default 0

Definition at line 450 of file hypar.h.

◆ gpu_npoints_boundary_offset

int gpu_npoints_boundary_offset[3]

number of boundary points offsets

Definition at line 452 of file hypar.h.

◆ gpu_npoints_boundary

int gpu_npoints_boundary[3]

number of boundary points

Definition at line 453 of file hypar.h.

◆ gpu_dim_local

int* gpu_dim_local

A copy of HyPar::dim_local on GPU

Definition at line 455 of file hypar.h.

◆ gpu_iblank

double* gpu_iblank

A copy of HyPar::iblank on GPU

Definition at line 456 of file hypar.h.

◆ gpu_x

double* gpu_x

A copy of HyPar::x on GPU

Definition at line 457 of file hypar.h.

◆ gpu_dxinv

double* gpu_dxinv

A copy of HyPar::dxinv on GPU

Definition at line 458 of file hypar.h.

◆ gpu_u

double* gpu_u

A copy of HyPar::u on GPU

Definition at line 459 of file hypar.h.

◆ StageBoundaryBuffer_size

int StageBoundaryBuffer_size

size of HyPar::StageBoundaryBuffer

Definition at line 461 of file hypar.h.

◆ StageBoundaryBuffer

double* StageBoundaryBuffer

Array to perform reduction

Definition at line 462 of file hypar.h.

◆ py_plt_func

void* py_plt_func

Pointer to plotting function

Definition at line 466 of file hypar.h.

◆ py_plt_func_args

void* py_plt_func_args

Pointer to plotting function arguments

Definition at line 467 of file hypar.h.


The documentation for this struct was generated from the following file: