ApplyPrecond Subroutine

private subroutine ApplyPrecond(nBase, precond, F_inout)

Apply preconditioner matrix for single mode of one variable

Arguments

Type IntentOptional Attributes Name
integer, intent(in) :: nBase

length of inout vector

type(sll_t_spline_matrix_banded), intent(in) :: precond

preconditioner matrix (factorized!)

real(kind=wp), intent(inout) :: F_inout(1:nBase)

apply preconditioner on this force vector


Calls

proc~~applyprecond~~CallsGraph proc~applyprecond ApplyPrecond proc~s_spline_matrix_banded__solve_inplace sll_t_spline_matrix_banded%s_spline_matrix_banded__solve_inplace proc~applyprecond->proc~s_spline_matrix_banded__solve_inplace dgbtrs dgbtrs proc~s_spline_matrix_banded__solve_inplace->dgbtrs proc~sll_s_error_handler sll_s_error_handler proc~s_spline_matrix_banded__solve_inplace->proc~sll_s_error_handler interface~c_abort c_abort proc~sll_s_error_handler->interface~c_abort proc~errout errout proc~sll_s_error_handler->proc~errout

Called by

proc~~applyprecond~~CalledByGraph proc~applyprecond ApplyPrecond proc~evalforce EvalForce proc~evalforce->proc~applyprecond proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->proc~evalforce proc~minimizemhd3d_descent t_minimizer_mhd3d%MinimizeMHD3D_descent proc~minimizemhd3d_descent->proc~evalforce proc~minimizemhd3d_resetdescent t_minimizer_mhd3d%MinimizeMHD3d_ResetDescent proc~minimizemhd3d_descent->proc~minimizemhd3d_resetdescent proc~minimizemhd3d_resetdescent->proc~evalforce program~gvec_post GVEC_POST program~gvec_post->proc~evalforce proc~initsolution~2 InitSolution proc~initsolution~2->proc~initsolutionmhd3d proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D proc~minimizemhd3d->proc~minimizemhd3d_descent proc~rungvec rungvec proc~rungvec->proc~initsolutionmhd3d proc~rungvec->proc~minimizemhd3d proc~minimize minimize proc~minimize->proc~minimizemhd3d proc~start_rungvec start_rungvec proc~start_rungvec->proc~rungvec program~gvec GVEC program~gvec->proc~rungvec

Source Code

SUBROUTINE ApplyPrecond(nBase,precond,F_inout)
! MODULES
  IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
  INTEGER                         ,INTENT(IN   ) ::  nBase   !! length of inout vector
  TYPE(sll_t_spline_matrix_banded),INTENT(IN   ) ::  precond !! preconditioner matrix (factorized!)
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  REAL(wp),    INTENT(INOUT) :: F_inout(1:nBase)    !! apply preconditioner on this force vector
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
!===================================================================================================================================
  CALL precond%solve_inplace(1,F_inout(1:nBase))
END SUBROUTINE ApplyPrecond