HyPar  1.0
Finite-Difference Hyperbolic-Parabolic PDE Solver on Cartesian Grids
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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

int ndims

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

Definition at line 26 of file hypar.h.

int nvars

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

Definition at line 29 of file hypar.h.

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.

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.

int npoints_global

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

Definition at line 40 of file hypar.h.

int npoints_local

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

Definition at line 42 of file hypar.h.

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.

int ndof_nodes

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

Definition at line 46 of file hypar.h.

int ndof_cells_wghosts

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

Definition at line 47 of file hypar.h.

int size_x

the size of HyPar::x array

Definition at line 48 of file hypar.h.

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.

int n_iter

Number of time steps (input - solver.inp )

Definition at line 55 of file hypar.h.

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.

int my_idx

for multi-domain simulations, index of this solver object

Definition at line 61 of file hypar.h.

int nsims

for multi-domain simulations, total number of solver objects

Definition at line 64 of file hypar.h.

double dt

time step size (input - solver.inp )

Definition at line 67 of file hypar.h.

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.

char time_scheme[_MAX_STRING_SIZE_]

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

Definition at line 78 of file hypar.h.

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.

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.

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.

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.

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.

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.

int* index

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

Definition at line 102 of file hypar.h.

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.

double* dxinv

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

Definition at line 110 of file hypar.h.

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.

double* hyp

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

Definition at line 119 of file hypar.h.

double* par

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

Definition at line 122 of file hypar.h.

double* source

Array to hold the source term: Same layout as u

Definition at line 125 of file hypar.h.

double* fluxC

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

Definition at line 128 of file hypar.h.

double* uC

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

Definition at line 131 of file hypar.h.

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.

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.

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.

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.

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.

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.

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.

int nBoundaryZones

Boundary conditions: Number of boundary zones

Definition at line 157 of file hypar.h.

void* boundary

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

Definition at line 159 of file hypar.h.

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.

void* time_integrator

pointer to the time-integration object

Definition at line 165 of file hypar.h.

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.

int file_op_iter

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

Definition at line 171 of file hypar.h.

int write_residual

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

Definition at line 174 of file hypar.h.

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.

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.

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.

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.

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.

char plot_solution[_MAX_STRING_SIZE_]

plot solutions during simulation?

Definition at line 194 of file hypar.h.

char* filename_index

filename index for files written every few iterations

Definition at line 197 of file hypar.h.

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.

char solnfilename_extn[_MAX_STRING_SIZE_]

solution filename extension

Definition at line 201 of file hypar.h.

char plotfilename_extn[_MAX_STRING_SIZE_]

plot figure filename extension

Definition at line 203 of file hypar.h.

char op_fname_root[_MAX_STRING_SIZE_]

output filename root

Definition at line 206 of file hypar.h.

char aux_op_fname_root[_MAX_STRING_SIZE_]

auxiliary output filename root

Definition at line 208 of file hypar.h.

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.

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.

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.

int(* TimeIntegrate)(void *)

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

Definition at line 220 of file hypar.h.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

void* physics

object providing the physics of the PDE being solved

Definition at line 266 of file hypar.h.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

void* interp

object containing interpolation-related parameters (of hyperbolic flux reconstruction

Definition at line 362 of file hypar.h.

void* compact

object containing arrays needed for compact finite-difference methods

Definition at line 364 of file hypar.h.

void* msti

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

Definition at line 366 of file hypar.h.

void* lusolver

object containing parameters for the tridiagonal solver

Definition at line 368 of file hypar.h.

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.

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.

char ConservationCheck[_MAX_STRING_SIZE_]

check for conservation error?

Definition at line 376 of file hypar.h.

double* VolumeIntegral

Volume integral of the solution over the global domain

Definition at line 378 of file hypar.h.

double* VolumeIntegralInitial

Volume integral of the initial solution over the global domain

Definition at line 380 of file hypar.h.

double* StageBoundaryIntegral

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

Definition at line 382 of file hypar.h.

double* StepBoundaryIntegral

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

Definition at line 384 of file hypar.h.

double* TotalBoundaryIntegral

Total surface integral of the flux over the global domain boundary

Definition at line 386 of file hypar.h.

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.

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

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

Definition at line 390 of file hypar.h.

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

Pointer to the function to calculate the conservation error

Definition at line 392 of file hypar.h.

int use_petscTS

Use PETSc time-integration?

Definition at line 395 of file hypar.h.

double* u0

copy of solution vector

Definition at line 396 of file hypar.h.

double* uref

copy of solution vector

Definition at line 397 of file hypar.h.

double* rhsref

copy of the RHS vector

Definition at line 398 of file hypar.h.

double* rhs

RHS vector

Definition at line 399 of file hypar.h.

double* u_rom_predicted

Solution predicted using a ROM

Definition at line 403 of file hypar.h.

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.

char op_rom_fname_root[_MAX_STRING_SIZE_]

output filename root for ROM solution file

Definition at line 407 of file hypar.h.

int flag_nonlinearinterp

flag to globally switch on/off non-linear interpolation

Definition at line 411 of file hypar.h.

int* stride_with_ghosts

strides along each dimension for an array with ghost points

Definition at line 414 of file hypar.h.

int* stride_without_ghosts

strides along each dimension for an array without ghost points

Definition at line 416 of file hypar.h.

int count_hyp

number of times the hyperbolic function is called

Definition at line 418 of file hypar.h.

int count_par

number of times the parabolic function is called

Definition at line 418 of file hypar.h.

int count_sou

number of times the source function is called

Definition at line 418 of file hypar.h.

int count_RHSFunction

number of times the RHSFunction is called

Definition at line 422 of file hypar.h.

int count_IFunction

number of times the IFunction is called

Definition at line 422 of file hypar.h.

int count_IJacobian

number of times the IJacobian is called

Definition at line 422 of file hypar.h.

int count_RHSJacobian

number of times the RHSJacobian is called

Definition at line 422 of file hypar.h.

int count_IJacFunction

number of times the IJacFunction is called

Definition at line 422 of file hypar.h.

int count_RHSJacFunction

number of times the RHSJacFunction is called

Definition at line 422 of file hypar.h.

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.

char ib_filename[_MAX_STRING_SIZE_]

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

Definition at line 439 of file hypar.h.

int flag_ib

Flag to indicate if immersed boundaries are in use

Definition at line 441 of file hypar.h.

void* ib

Immersed boundary object

Definition at line 443 of file hypar.h.

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.

int use_gpu

Indicate whether to use GPU or not

Definition at line 449 of file hypar.h.

int gpu_device_no

GPU device number to use, default 0

Definition at line 450 of file hypar.h.

int gpu_npoints_boundary_offset[3]

number of boundary points offsets

Definition at line 452 of file hypar.h.

int gpu_npoints_boundary[3]

number of boundary points

Definition at line 453 of file hypar.h.

int* gpu_dim_local

A copy of HyPar::dim_local on GPU

Definition at line 455 of file hypar.h.

double* gpu_iblank

A copy of HyPar::iblank on GPU

Definition at line 456 of file hypar.h.

double* gpu_x

A copy of HyPar::x on GPU

Definition at line 457 of file hypar.h.

double* gpu_dxinv

A copy of HyPar::dxinv on GPU

Definition at line 458 of file hypar.h.

double* gpu_u

A copy of HyPar::u on GPU

Definition at line 459 of file hypar.h.

int StageBoundaryBuffer_size

size of HyPar::StageBoundaryBuffer

Definition at line 461 of file hypar.h.

double* StageBoundaryBuffer

Array to perform reduction

Definition at line 462 of file hypar.h.

void* py_plt_func

Pointer to plotting function

Definition at line 466 of file hypar.h.

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: