|
| subroutine | petsc_solver_module::petsc_get_sizes (grid, bc, n_equation, n_boundary, xgc_petsc, petsc_xgc_bd) |
| | Calculate (i) the number of equations (vertices) of the solver, (ii) the number of XGC boundary vertices included in the solver, (iii) (preliminary) mapping from XGC vertices to PETSc equations, (iv) mapping from XGC vertices to PETSc boundary conditions, all based the XGC boundary object passed as input. More...
|
| |
| subroutine | petsc_solver_module::petsc_get_bd_map (grid, bc, n_boundary, petsc_xgc_bd, petsc_bd_xgc) |
| | Generate mapping from PETSc boundary conditions to XGC vertices. This requires the results of petsc_get_sizes because the number of boundary conditions is not known a priori. More...
|
| |
| subroutine | petsc_solver_module::getnnz (grid, nloc, low, high, d_nnz, o_nnz, xgc_petsc, nglobal, ierr) |
| | Computes the number of non-zero entries nnz per row in the rank-local rows. More...
|
| |
| subroutine | petsc_solver_module::petsc_get_partitioning (grid, bc, b_factors, comm, num_pe, n_eq_tot_in, set_diffusion_matrix, xgc_petsc, petsc_xgc_bd, n_eq_loc, xgc_proc_out, proc_eq, ierr) |
| | Generates a domain partitioning of part of the XGC mesh used by a solver (as defined by the boundary conditions bc) using Parmetis and generates a mapping between PETSc equation index and XGC MPI ranks (those in the communicator comm used by the solver). More...
|
| |
| subroutine | petsc_solver_module::petsc_get_mapping (nnode, bc, comm, num_pe, n_eq_tot, n_eq_loc, xgc_proc, proc_eq, xgc_petsc, petsc_xgc, petscloc_xgc) |
| | Based on the Parmetis partition of the XGC domain, updates the mappings between XGC vertices and PETSc equations. More...
|
| |
| subroutine | petsc_solver_module::petsc_get_template_mat (grid, comm, n_eq_tot, n_eq_loc, xgc_petsc, solver_template_mat, ierr) |
| | Uses pre-computed (petsc_get_partitioning) local matrix sizes and XGC vertex to PETSc equation mapping to set up a blank template matrix with sufficient pre-allocated memory. More...
|
| |
| subroutine | petsc_solver_module::petsc_get_scatter_multi_block (nnode, ksp, mat_all_blocks, mat_one_block, blocksize, varnames, n_eq_tot, n_eq_loc, petscloc_xgc, petsc_xgc, iss, to_petsc, from_petsc, ierr) |
| | Sets up a PETSc scatter object for a (2D) multi-block field-split solver. More...
|
| |
| subroutine | petsc_solver_module::petsc_to_xgc (nnode, blocksize, from_petsc, field_petsc, field_xgc, ierr) |
| | This routine scatters values from the distributed vector compatible with the block-matrix of the 2D diffusion model to local variables on the XGC solver grid. More...
|
| |
| subroutine | petsc_solver_module::xgc_to_petsc (nnode, blocksize, to_petsc, field_petsc, field_xgc, ierr) |
| | This routine scatters values from local variable on the XGC solver grid to the distributed vector compatible with the block-matrix of the 2D diffusion model. More...
|
| |
| subroutine | petsc_solver_module::diffusion_matrix_init (diffusion_ts, grid, bc, solver_template_mat, ierr) |
| | Set up a template matrix for XGC's anomalous diffusion time integrator. This is currently a system of either 4 (adiabatic electrons) or 7 (kinetic electrons) equations. Impurities are not supported yet. More...
|
| |