Octopus
mixing_preconditioner.F90
Go to the documentation of this file.
1!! Copyright (C) 2024 A. Buccheri
2!!
3!! This program is free software; you can redistribute it and/or modify
4!! it under the terms of the GNU General Public License as published by
5!! the Free Software Foundation; either version 2, or (at your option)
6!! any later version.
7!!
8!! This program is distributed in the hope that it will be useful,
9!! but WITHOUT ANY WARRANTY; without even the implied warranty of
10!! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11!! GNU General Public License for more details.
12!!
13!! You should have received a copy of the GNU General Public License
14!! along with this program; if not, write to the Free Software
15!! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16!! 02110-1301, USA.
17!!
18
19#include "global.h"
20
22 use comm_oct_m
23 use debug_oct_m
25 use global_oct_m
26 use iso_c_binding
27 use, intrinsic :: iso_fortran_env
31 use math_oct_m
32 use mesh_oct_m
37 implicit none
38
39 private
40 public :: dkerker_preconditioner, &
42
43contains
44
45#include "undef.F90"
46#include "real.F90"
47
48#include "mixing_preconditioner_inc.F90"
49
50#include "undef.F90"
51#include "complex.F90"
52
53#include "mixing_preconditioner_inc.F90"
54
56
57!! Local Variables:
58!! mode: f90
59!! coding: utf-8
60!! End:
This module calculates the derivatives (gradients, Laplacians, etc.) of a function.
Computes and , suitable as an operator callback for iterative solvers (CG, QMR, etc....
This module is intended to contain "only mathematical" functions and procedures.
Definition: math.F90:117
This module defines various routines, operating on mesh functions.
This module defines the meshes, which are used in Octopus.
Definition: mesh.F90:120
subroutine, public dkerker_preconditioner(der, q_0, delta_f, f_out)
Kerker preconditioner for the mixing operator in real space.
subroutine, public zkerker_preconditioner(der, q_0, delta_f, f_out)
Kerker preconditioner for the mixing operator in real space.
This module is intended to contain "only mathematical" functions and procedures.
Definition: solvers.F90:117