hypre 2.32.0
Loading...
Searching...
No Matches
HYPRE_sstruct_mv.h File Reference

SStruct Grids

#define HYPRE_SSTRUCT_VARIABLE_UNDEFINED   -1
 
#define HYPRE_SSTRUCT_VARIABLE_CELL   0
 
#define HYPRE_SSTRUCT_VARIABLE_NODE   1
 
#define HYPRE_SSTRUCT_VARIABLE_XFACE   2
 
#define HYPRE_SSTRUCT_VARIABLE_YFACE   3
 
#define HYPRE_SSTRUCT_VARIABLE_ZFACE   4
 
#define HYPRE_SSTRUCT_VARIABLE_XEDGE   5
 
#define HYPRE_SSTRUCT_VARIABLE_YEDGE   6
 
#define HYPRE_SSTRUCT_VARIABLE_ZEDGE   7
 
typedef struct hypre_SStructGrid_struct * HYPRE_SStructGrid
 A grid object is constructed out of several structured "parts" and an optional unstructured "part".
 
typedef HYPRE_Int HYPRE_SStructVariable
 An enumerated type that supports cell centered, node centered, face centered, and edge centered variables.
 
HYPRE_Int HYPRE_SStructGridCreate (MPI_Comm comm, HYPRE_Int ndim, HYPRE_Int nparts, HYPRE_SStructGrid *grid)
 Create an ndim-dimensional grid object with nparts structured parts.
 
HYPRE_Int HYPRE_SStructGridDestroy (HYPRE_SStructGrid grid)
 Destroy a grid object.
 
HYPRE_Int HYPRE_SStructGridSetExtents (HYPRE_SStructGrid grid, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper)
 Set the extents for a box on a structured part of the grid.
 
HYPRE_Int HYPRE_SStructGridSetVariables (HYPRE_SStructGrid grid, HYPRE_Int part, HYPRE_Int nvars, HYPRE_SStructVariable *vartypes)
 Describe the variables that live on a structured part of the grid.
 
HYPRE_Int HYPRE_SStructGridAddVariables (HYPRE_SStructGrid grid, HYPRE_Int part, HYPRE_Int *index, HYPRE_Int nvars, HYPRE_SStructVariable *vartypes)
 Describe additional variables that live at a particular index.
 
HYPRE_Int HYPRE_SStructGridSetFEMOrdering (HYPRE_SStructGrid grid, HYPRE_Int part, HYPRE_Int *ordering)
 Set the ordering of variables in a finite element problem.
 
HYPRE_Int HYPRE_SStructGridSetNeighborPart (HYPRE_SStructGrid grid, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int nbor_part, HYPRE_Int *nbor_ilower, HYPRE_Int *nbor_iupper, HYPRE_Int *index_map, HYPRE_Int *index_dir)
 Describe how regions just outside of a part relate to other parts.
 
HYPRE_Int HYPRE_SStructGridSetSharedPart (HYPRE_SStructGrid grid, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int *offset, HYPRE_Int shared_part, HYPRE_Int *shared_ilower, HYPRE_Int *shared_iupper, HYPRE_Int *shared_offset, HYPRE_Int *index_map, HYPRE_Int *index_dir)
 Describe how regions inside a part are shared with regions in other parts.
 
HYPRE_Int HYPRE_SStructGridAddUnstructuredPart (HYPRE_SStructGrid grid, HYPRE_Int ilower, HYPRE_Int iupper)
 Add an unstructured part to the grid.
 
HYPRE_Int HYPRE_SStructGridAssemble (HYPRE_SStructGrid grid)
 Finalize the construction of the grid before using.
 
HYPRE_Int HYPRE_SStructGridSetPeriodic (HYPRE_SStructGrid grid, HYPRE_Int part, HYPRE_Int *periodic)
 Set the periodicity on a particular part.
 
HYPRE_Int HYPRE_SStructGridSetNumGhost (HYPRE_SStructGrid grid, HYPRE_Int *num_ghost)
 Setting ghost in the sgrids.
 

SStruct Stencils

typedef struct hypre_SStructStencil_struct * HYPRE_SStructStencil
 The stencil object.
 
HYPRE_Int HYPRE_SStructStencilCreate (HYPRE_Int ndim, HYPRE_Int size, HYPRE_SStructStencil *stencil)
 Create a stencil object for the specified number of spatial dimensions and stencil entries.
 
HYPRE_Int HYPRE_SStructStencilDestroy (HYPRE_SStructStencil stencil)
 Destroy a stencil object.
 
HYPRE_Int HYPRE_SStructStencilSetEntry (HYPRE_SStructStencil stencil, HYPRE_Int entry, HYPRE_Int *offset, HYPRE_Int var)
 Set a stencil entry.
 

SStruct Graphs

typedef struct hypre_SStructGraph_struct * HYPRE_SStructGraph
 The graph object is used to describe the nonzero structure of a matrix.
 
HYPRE_Int HYPRE_SStructGraphCreate (MPI_Comm comm, HYPRE_SStructGrid grid, HYPRE_SStructGraph *graph)
 Create a graph object.
 
HYPRE_Int HYPRE_SStructGraphDestroy (HYPRE_SStructGraph graph)
 Destroy a graph object.
 
HYPRE_Int HYPRE_SStructGraphSetDomainGrid (HYPRE_SStructGraph graph, HYPRE_SStructGrid domain_grid)
 Set the domain grid.
 
HYPRE_Int HYPRE_SStructGraphSetStencil (HYPRE_SStructGraph graph, HYPRE_Int part, HYPRE_Int var, HYPRE_SStructStencil stencil)
 Set the stencil for a variable on a structured part of the grid.
 
HYPRE_Int HYPRE_SStructGraphSetFEM (HYPRE_SStructGraph graph, HYPRE_Int part)
 Indicate that an FEM approach will be used to set matrix values on this part.
 
HYPRE_Int HYPRE_SStructGraphSetFEMSparsity (HYPRE_SStructGraph graph, HYPRE_Int part, HYPRE_Int nsparse, HYPRE_Int *sparsity)
 Set the finite element stiffness matrix sparsity.
 
HYPRE_Int HYPRE_SStructGraphAddEntries (HYPRE_SStructGraph graph, HYPRE_Int part, HYPRE_Int *index, HYPRE_Int var, HYPRE_Int to_part, HYPRE_Int *to_index, HYPRE_Int to_var)
 Add a non-stencil graph entry at a particular index.
 
HYPRE_Int HYPRE_SStructGraphAssemble (HYPRE_SStructGraph graph)
 Finalize the construction of the graph before using.
 
HYPRE_Int HYPRE_SStructGraphSetObjectType (HYPRE_SStructGraph graph, HYPRE_Int type)
 Set the storage type of the associated matrix object.
 

SStruct Matrices

typedef struct hypre_SStructMatrix_struct * HYPRE_SStructMatrix
 The matrix object.
 
HYPRE_Int HYPRE_SStructMatrixCreate (MPI_Comm comm, HYPRE_SStructGraph graph, HYPRE_SStructMatrix *matrix)
 Create a matrix object.
 
HYPRE_Int HYPRE_SStructMatrixDestroy (HYPRE_SStructMatrix matrix)
 Destroy a matrix object.
 
HYPRE_Int HYPRE_SStructMatrixInitialize (HYPRE_SStructMatrix matrix)
 Prepare a matrix object for setting coefficient values.
 
HYPRE_Int HYPRE_SStructMatrixSetValues (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *index, HYPRE_Int var, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Complex *values)
 Set matrix coefficients index by index.
 
HYPRE_Int HYPRE_SStructMatrixAddToValues (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *index, HYPRE_Int var, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Complex *values)
 Add to matrix coefficients index by index.
 
HYPRE_Int HYPRE_SStructMatrixAddFEMValues (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *index, HYPRE_Complex *values)
 Add finite element stiffness matrix coefficients index by index.
 
HYPRE_Int HYPRE_SStructMatrixGetValues (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *index, HYPRE_Int var, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Complex *values)
 Get matrix coefficients index by index.
 
HYPRE_Int HYPRE_SStructMatrixGetFEMValues (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *index, HYPRE_Complex *values)
 Get finite element stiffness matrix coefficients index by index.
 
HYPRE_Int HYPRE_SStructMatrixSetBoxValues (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Complex *values)
 Set matrix coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructMatrixAddToBoxValues (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Complex *values)
 Add to matrix coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructMatrixSetBoxValues2 (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, HYPRE_Complex *values)
 Set matrix coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructMatrixAddToBoxValues2 (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, HYPRE_Complex *values)
 Add to matrix coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructMatrixAddFEMBoxValues (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Complex *values)
 Add finite element stiffness matrix coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructMatrixAssemble (HYPRE_SStructMatrix matrix)
 Finalize the construction of the matrix before using.
 
HYPRE_Int HYPRE_SStructMatrixGetBoxValues (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Complex *values)
 Get matrix coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructMatrixGetBoxValues2 (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Int nentries, HYPRE_Int *entries, HYPRE_Int *vilower, HYPRE_Int *viupper, HYPRE_Complex *values)
 Get matrix coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructMatrixGetFEMBoxValues (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Complex *values)
 Does this even make sense to implement?
 
HYPRE_Int HYPRE_SStructMatrixSetSymmetric (HYPRE_SStructMatrix matrix, HYPRE_Int part, HYPRE_Int var, HYPRE_Int to_var, HYPRE_Int symmetric)
 Define symmetry properties for the stencil entries in the matrix.
 
HYPRE_Int HYPRE_SStructMatrixSetNSSymmetric (HYPRE_SStructMatrix matrix, HYPRE_Int symmetric)
 Define symmetry properties for all non-stencil matrix entries.
 
HYPRE_Int HYPRE_SStructMatrixSetObjectType (HYPRE_SStructMatrix matrix, HYPRE_Int type)
 Set the storage type of the matrix object to be constructed.
 
HYPRE_Int HYPRE_SStructMatrixGetObject (HYPRE_SStructMatrix matrix, void **object)
 Get a reference to the constructed matrix object.
 
HYPRE_Int HYPRE_SStructMatrixPrint (const char *filename, HYPRE_SStructMatrix matrix, HYPRE_Int all)
 Print the matrix to file.
 
HYPRE_Int HYPRE_SStructMatrixRead (MPI_Comm comm, const char *filename, HYPRE_SStructMatrix *matrix_ptr)
 Read the matrix from file.
 

SStruct Vectors

typedef struct hypre_SStructVector_struct * HYPRE_SStructVector
 The vector object.
 
HYPRE_Int HYPRE_SStructVectorCreate (MPI_Comm comm, HYPRE_SStructGrid grid, HYPRE_SStructVector *vector)
 Create a vector object.
 
HYPRE_Int HYPRE_SStructVectorDestroy (HYPRE_SStructVector vector)
 Destroy a vector object.
 
HYPRE_Int HYPRE_SStructVectorInitialize (HYPRE_SStructVector vector)
 Prepare a vector object for setting coefficient values.
 
HYPRE_Int HYPRE_SStructVectorSetValues (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *index, HYPRE_Int var, HYPRE_Complex *value)
 Set vector coefficients index by index.
 
HYPRE_Int HYPRE_SStructVectorAddToValues (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *index, HYPRE_Int var, HYPRE_Complex *value)
 Add to vector coefficients index by index.
 
HYPRE_Int HYPRE_SStructVectorAddFEMValues (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *index, HYPRE_Complex *values)
 Add finite element vector coefficients index by index.
 
HYPRE_Int HYPRE_SStructVectorGetValues (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *index, HYPRE_Int var, HYPRE_Complex *value)
 Get vector coefficients index by index.
 
HYPRE_Int HYPRE_SStructVectorGetFEMValues (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *index, HYPRE_Complex *values)
 Get finite element vector coefficients index by index.
 
HYPRE_Int HYPRE_SStructVectorSetBoxValues (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Complex *values)
 Set vector coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructVectorAddToBoxValues (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Complex *values)
 Add to vector coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructVectorSetBoxValues2 (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Int *vilower, HYPRE_Int *viupper, HYPRE_Complex *values)
 Set vector coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructVectorAddToBoxValues2 (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Int *vilower, HYPRE_Int *viupper, HYPRE_Complex *values)
 Add to vector coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructVectorAddFEMBoxValues (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Complex *values)
 Add finite element vector coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructVectorAssemble (HYPRE_SStructVector vector)
 Finalize the construction of the vector before using.
 
HYPRE_Int HYPRE_SStructVectorGetBoxValues (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Complex *values)
 Get vector coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructVectorGetBoxValues2 (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Int var, HYPRE_Int *vilower, HYPRE_Int *viupper, HYPRE_Complex *values)
 Get vector coefficients a box at a time.
 
HYPRE_Int HYPRE_SStructVectorGetFEMBoxValues (HYPRE_SStructVector vector, HYPRE_Int part, HYPRE_Int *ilower, HYPRE_Int *iupper, HYPRE_Complex *values)
 Does this even make sense to implement?
 
HYPRE_Int HYPRE_SStructVectorGather (HYPRE_SStructVector vector)
 Gather vector data so that efficient GetValues can be done.
 
HYPRE_Int HYPRE_SStructVectorSetObjectType (HYPRE_SStructVector vector, HYPRE_Int type)
 Set the storage type of the vector object to be constructed.
 
HYPRE_Int HYPRE_SStructVectorGetObject (HYPRE_SStructVector vector, void **object)
 Get a reference to the constructed vector object.
 
HYPRE_Int HYPRE_SStructVectorPrint (const char *filename, HYPRE_SStructVector vector, HYPRE_Int all)
 Print the vector to file.
 
HYPRE_Int HYPRE_SStructVectorRead (MPI_Comm comm, const char *filename, HYPRE_SStructVector *vector_ptr)
 Read the vector from file.