Lines Matching refs:be

9 specialized formats can be easily added.
32 The type of matrix created can be controlled with either
44 and the options database option `-dm_mat_type <aij or baij or aijcusparse etc>` Matrices can be cre…
88 respectively, indicate the global row and column numbers to be inserted.
92 the values that are to be inserted. By default the values are given in
94 meaning that the value to be put in row `idxm[i]` and column
105 This notation should not be a mystery to anyone. For example, to insert
120 they must be processed (also called “assembled”) before they can be
130 with the `INSERT_VALUES` and `ADD_VALUES` options *cannot* be mixed
133 be `MAT_FLUSH_ASSEMBLY`, which omits some of the work of the full
140 to be stored. To help the application programmer with this task for
150 index of the last local row) will be stored on the local process.
159 been called, the matrices are compressed and can be used for
163 intend to use that extra space later, be sure to insert explicit zeros
164 before assembling with `MAT_FINAL_ASSEMBLY` so the space will not be
166 will be expensive since it will require copies and possible memory
172 information will be reused (instead of regenerated) during successive
181 For GPUs the routines `MatSetPreallocationCOO()` and `MatSetValuesCOO()` should be used for efficie…
198 …d2` - 1, etc. Thus the ownership range on each rank is from `rstart` to `rend`, these values can be
202 can be obtained with `MatGetOwnershipRange()`, `MatGetOwnershipRangeColumn()`, `MatGetOwnershipRang…
207 …is stored is more complicated; information about the storage locations can be obtained with `MatGe…
212 …()`, `MatGetOwnershipRangeColumn()`. Each vector has one layout, which can be obtained with `VecGe…
244 where `nz` or `nnz` can be used to preallocate matrix memory, as
299 matrix assembly. The overhead of determining the `nnz` array will be
352 data structure, which can be very expensive.
356 Parallel sparse matrices with the AIJ format can be created with the
368 global parameters can be replaced with `PETSC_DECIDE`, so that PETSc
374 the user must ensure that they are chosen to be compatible with the
387 matrix, we define each process’s diagonal portion to be its local rows
401 processes to indicate how this may be done for the `MATMPIAIJ` matrix
443 `o_nz` could be set to 2 since each row of the `o` matrix has 2
444 nonzeros, or `o_nnz` could be set to $\{2,2,2\}$.
499 This situation can be very inefficient, since the transfer of values to
501 `MatGetOwnershipRange()` in application codes, the user should be able
587 table above. They can be created using the
605 before the matrix can be updated and used for products and solves.
610 LMVM matrices can be applied to vectors in forward mode via
621 - `none` – Sets the initial Jacobian to be equal to the identity
642 The number of updates to be used in the $S$ and $Y$
643 matrices is 1 by default (i.e.: the latest update only) and can be
661 and BFGS, `MATLMVMDDFP` and `MATLMVMDBFGS`, should be faster than
662 classical recursive versions - on both CPU and GPU. It should be noted
664 Cholesky factorization, which may be numerically unstable, if a Jacobian
667 the Cholesky factorization. This option can be toggled via
672 `MatMult` of `MATLMVMDDFP` for its `MatMult`. It can be
704 respectively. Either the local or global parameters can be replaced with
722 some numbering of unknowns, the matrix could be written as
732 There are two fundamentally different ways that this matrix could be
740 format is used. In order to stay flexible, we would like to be able to
743 especially in a multi-physics context where different groups might be
744 responsible for assembling each of the blocks, it is desirable to be
755 Operations in this space can be performed with no parallel
758 - The monolithic local space can be thought of as adding ghost points
790 `MatSetValuesBlockedLocal()`. Note that although `submat` may not be
794 `isrow,iscol` can be obtained using `DMCompositeGetLocalISs()` if
795 `DMCOMPOSITE` is being used. `DMCOMPOSITE` can also be used to create
796 matrices, in which case the `MATNEST` format can be specified using
797 `-prefix_dm_mat_type nest` and `MATAIJ` can be specified using
817 the vectors `x` and `y` should be generated with
824 By default, if the user lets PETSc decide the number of components to be
846 `w` to be identical. In Fortran, this situation is forbidden by the
856 Other viewers can be used as well. For instance, one can draw the
976 This shell matrix can be used with the iterative linear equation solvers
979 The routine `MatShellSetOperation()` can be used to set any other
987 user-defined functions are intended to be accessed through the same
990 `MatShellSetOperation()` needs to be cast to a `void *`, since the
991 final argument could (depending on the `MatOperation`) be a variety of
994 Note that `MatShellSetOperation()` can also be used as a “backdoor”
999 be very easy to accidentally create a bug in the new routine that could
1017 with `MAT_INPLACE_MATRIX` it may be called again with `MAT_REUSE_MATRIX` and it will recompute the …
1025 only does the symbolic transpose on the matrix. After it is called `MatTranspose()` may be called w…
1053 a new matrix assembly will be much less expensive, since no memory
1054 allocations or copies will be needed. Of course, one can also explicitly
1058 previously existed, space will be allocated for the new entries. To
1072 can be cumbersome to deal with Dirichlet boundary conditions. In
1080 This process can be expensive in terms of both time and memory.
1084 identity matrix (or some scaling of it). This action can be done with
1113 From that point, no new values will be inserted into those (boundary)
1117 also be used if for each process one provides the Dirichlet locations in
1131 Note that with all of these for a given assembled matrix it can be only
1132 called once to update the x and b vector. It cannot be used if one
1145 be symmetric.
1160 In certain applications it may be necessary for application codes to
1161 directly access elements of a matrix. This may be done by using the the
1174 `MatGetRow()`; the values *cannot* be altered. To change the matrix
1189 Many sparse matrix operations can be optimized by dividing the computation into two stages: a symbo…
1201 API to indicate if a symbolic data structure is already available or needs to be computed. Thus `Ma…
1202 `MatTranspose(A,MAT_REUSE_MATRIX,&B)` can be called repeatedly with new numerical values in the A m…
1203 symbolic computations for B could be redone automatically inside the same B matrix when there is a …
1206 …ion language supported detecting a yet to be initialized variable at run time, the `MatReuse` flag…
1210 …ppropriately and also handled changes to the nonzero structure. Code could be simplified in many p…
1255 partitioning and distribution across the processes can (and should) be
1257 However, this does not mean it need be done in a separate, sequential
1258 program; rather, it should be done before one sets up the parallel grid
1263 partitioning to be done in parallel. PETSc does not currently provide
1274 that is to be partitioned. This is done with the command
1296 distribution is not important; it could be simply determined by
1312 elements may also be included). We use a space above to denote the
1348 generates, see {any}`sec_ao`, an `AO` object that can be
1357 migration and node renumbering, since it will be dependent on the
1362 implementation that can be used for a wide variety of different grids