/**
* @file README_mod.txt
*
* @brief
*
* @copyright
* Copyright (©) 2021 EPFL (Ecole Polytechnique Fédérale de Lausanne)
* SPC (Swiss Plasma Center)
*
* SPClibs is free software: you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option)
* any later version.
*
* SPClibs is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*
* @author
* (in alphabetical order)
* @author Trach-Minh Tran
*/
1) Module parmg
============
- types:
grid2_type
INTEGER, DIMENSION(2) :: s, e, s0, e0, npt_loc, npt
REAL(rkind), ALLOCATABLE :: x(:), y(:)
TYPE(gvector_2d) :: f, v
TYPE(stencil_2d) :: fdmat, restrict_mat
- module procedures:
creat_grid
coarse (1d, 2d)
exchange (gvector)
prolong (gvector)
restrict (gvector)
jacobi
get_resids
init_restrict (gvector)
disp (0d, 1d array of int)
get_lmax
- Uses
gvector
stencil
2) Module stencil
==============
- types:
LOGICAL :: nluni
INTEGER, DIMENSION(2) :: ldim, gdim, s0, e0, s, e
INTEGER :: npoints
INTEGER, ALLOCATABLE :: id(:,:)
REAL(rkind), ALLOCATABLE :: val(:,:,:)
- module procedures:
init
vmx
laplacian
putmat
- operators:
*: vmx
- Uses
gvector
3) Module gvector
==============
- types:
gvector_2d
INTEGER, DIMENSION(2) :: s, e ! vector internal bounds
INTEGER, DIMENSION(2) :: g ! ghost cell widths
REAL(rkind), ALLOCATABLE :: val(:,:)
- module procedures:
constructor (gvector_2d)
disp
norm2 (serial, mpi)
- operators:
+ : add_scal, add_vec
- : minus_vec, substract_vec
* : scale_left, scale_right
- assignment:
= : from_scal, from_vec