sol_var_MHD3D_norm_2 Function

private function sol_var_MHD3D_norm_2(sf) result(norm_2)

|X|^2, where X is of type t_var_sol, so three values are returned: |X1|^2,|X2|^2,|LA|^2

Type Bound

t_sol_var_MHD3D

Arguments

Type IntentOptional Attributes Name
class(t_sol_var_MHD3D), intent(in) :: sf

self

Return Value real(kind=wp), (sf%nvars)


Called by

proc~~sol_var_mhd3d_norm_2~~CalledByGraph proc~sol_var_mhd3d_norm_2 t_sol_var_MHD3D%sol_var_MHD3D_norm_2 proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->proc~sol_var_mhd3d_norm_2 proc~minimizemhd3d_resetdescent t_minimizer_mhd3d%MinimizeMHD3d_ResetDescent proc~minimizemhd3d_resetdescent->proc~sol_var_mhd3d_norm_2 proc~sol_var_mhd3d_test sol_var_MHD3D_test proc~sol_var_mhd3d_test->proc~sol_var_mhd3d_norm_2 proc~sol_var_mhd3d_copy t_sol_var_MHD3D%sol_var_MHD3D_copy proc~sol_var_mhd3d_test->proc~sol_var_mhd3d_copy proc~initsolution InitSolution proc~initsolution->proc~initsolutionmhd3d proc~minimizemhd3d_descent t_minimizer_mhd3d%MinimizeMHD3D_descent proc~minimizemhd3d_descent->proc~minimizemhd3d_resetdescent proc~rungvec rungvec proc~rungvec->proc~initsolutionmhd3d proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D proc~rungvec->proc~minimizemhd3d proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~rungvec->proc~initmhd3d proc~sol_var_mhd3d_init t_sol_var_MHD3D%sol_var_MHD3D_init proc~sol_var_mhd3d_init->proc~sol_var_mhd3d_test proc~minimizemhd3d->proc~minimizemhd3d_descent proc~new_minimizer new_minimizer proc~new_minimizer->proc~sol_var_mhd3d_init proc~new_minimizer->proc~sol_var_mhd3d_copy proc~sol_var_mhd3d_copy->proc~sol_var_mhd3d_init proc~start_rungvec start_rungvec proc~start_rungvec->proc~rungvec program~gvec GVEC program~gvec->proc~rungvec proc~initmhd3d->proc~new_minimizer proc~minimize minimize proc~minimize->proc~minimizemhd3d proc~init Init proc~init->proc~initmhd3d program~gvec_post GVEC_POST program~gvec_post->proc~initmhd3d

Source Code

FUNCTION sol_var_MHD3D_norm_2( sf ) RESULT(norm_2)
IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! INPUT VARIABLES
  CLASS(t_sol_var_MHD3D), INTENT(IN   ) :: sf  !!self
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  REAL(wp)                       :: norm_2(sf%nvars)
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
!===================================================================================================================================
  IF(.NOT.sf%initialized) CALL abort(__STAMP__,&
                              'taking the norm of a sol_var that is not initialized' )

  norm_2(1)=SUM(sf%X1*sf%X1)
  norm_2(2)=SUM(sf%X2*sf%X2)
  norm_2(3)=SUM(sf%LA*sf%LA)
END FUNCTION sol_var_MHD3D_norm_2