MinimizeMHD3D Subroutine

private subroutine MinimizeMHD3D(sf)

Uses

  • proc~~minimizemhd3d~~UsesGraph proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D module~modgvec_mhd3d_vars MODgvec_MHD3D_Vars proc~minimizemhd3d->module~modgvec_mhd3d_vars module~modgvec_base MODgvec_base module~modgvec_mhd3d_vars->module~modgvec_base module~modgvec_globals MODgvec_Globals module~modgvec_mhd3d_vars->module~modgvec_globals module~modgvec_hmap MODgvec_hmap module~modgvec_mhd3d_vars->module~modgvec_hmap module~modgvec_rprofile_base MODgvec_rProfile_base module~modgvec_mhd3d_vars->module~modgvec_rprofile_base module~modgvec_sgrid MODgvec_sGrid module~modgvec_mhd3d_vars->module~modgvec_sgrid module~modgvec_sol_var_mhd3d MODgvec_sol_var_MHD3D module~modgvec_mhd3d_vars->module~modgvec_sol_var_mhd3d module~modgvec_base->module~modgvec_globals module~modgvec_base->module~modgvec_sgrid module~modgvec_fbase MODgvec_fBase module~modgvec_base->module~modgvec_fbase module~modgvec_sbase MODgvec_sBase module~modgvec_base->module~modgvec_sbase iso_fortran_env iso_fortran_env module~modgvec_globals->iso_fortran_env module~modgvec_c_hmap MODgvec_c_hmap module~modgvec_hmap->module~modgvec_c_hmap module~modgvec_hmap_axisnb MODgvec_hmap_axisNB module~modgvec_hmap->module~modgvec_hmap_axisnb module~modgvec_hmap_cyl MODgvec_hmap_cyl module~modgvec_hmap->module~modgvec_hmap_cyl module~modgvec_hmap_frenet MODgvec_hmap_frenet module~modgvec_hmap->module~modgvec_hmap_frenet module~modgvec_hmap_knot MODgvec_hmap_knot module~modgvec_hmap->module~modgvec_hmap_knot module~modgvec_hmap_rz MODgvec_hmap_RZ module~modgvec_hmap->module~modgvec_hmap_rz module~modgvec_rprofile_base->module~modgvec_globals module~modgvec_sgrid->module~modgvec_globals module~modgvec_sol_var_mhd3d->module~modgvec_globals module~modgvec_c_sol_var MODgvec_c_sol_var module~modgvec_sol_var_mhd3d->module~modgvec_c_sol_var module~modgvec_c_hmap->module~modgvec_globals module~modgvec_c_sol_var->module~modgvec_globals module~modgvec_fbase->module~modgvec_globals module~modgvec_hmap_axisnb->module~modgvec_globals module~modgvec_hmap_axisnb->module~modgvec_c_hmap module~modgvec_hmap_axisnb->module~modgvec_fbase module~modgvec_io_netcdf MODgvec_IO_NETCDF module~modgvec_hmap_axisnb->module~modgvec_io_netcdf module~modgvec_hmap_cyl->module~modgvec_globals module~modgvec_hmap_cyl->module~modgvec_c_hmap module~modgvec_hmap_frenet->module~modgvec_globals module~modgvec_hmap_frenet->module~modgvec_c_hmap module~modgvec_hmap_knot->module~modgvec_globals module~modgvec_hmap_knot->module~modgvec_c_hmap module~modgvec_hmap_rz->module~modgvec_globals module~modgvec_hmap_rz->module~modgvec_c_hmap module~modgvec_sbase->module~modgvec_globals module~modgvec_sbase->module~modgvec_sgrid module~sll_m_bsplines sll_m_bsplines module~modgvec_sbase->module~sll_m_bsplines module~sll_m_spline_interpolator_1d sll_m_spline_interpolator_1d module~modgvec_sbase->module~sll_m_spline_interpolator_1d module~sll_m_spline_matrix sll_m_spline_matrix module~modgvec_sbase->module~sll_m_spline_matrix module~modgvec_io_netcdf->module~modgvec_globals netcdf netcdf module~modgvec_io_netcdf->netcdf module~sll_m_bsplines_base sll_m_bsplines_base module~sll_m_bsplines->module~sll_m_bsplines_base module~sll_m_bsplines_non_uniform sll_m_bsplines_non_uniform module~sll_m_bsplines->module~sll_m_bsplines_non_uniform module~sll_m_bsplines_uniform sll_m_bsplines_uniform module~sll_m_bsplines->module~sll_m_bsplines_uniform module~sll_m_working_precision sll_m_working_precision module~sll_m_bsplines->module~sll_m_working_precision module~sll_m_spline_interpolator_1d->module~sll_m_spline_matrix module~sll_m_boundary_condition_descriptors sll_m_boundary_condition_descriptors module~sll_m_spline_interpolator_1d->module~sll_m_boundary_condition_descriptors module~sll_m_spline_interpolator_1d->module~sll_m_bsplines_base module~sll_m_spline_1d sll_m_spline_1d module~sll_m_spline_interpolator_1d->module~sll_m_spline_1d module~sll_m_spline_interpolator_1d->module~sll_m_working_precision module~sll_m_spline_matrix_banded sll_m_spline_matrix_banded module~sll_m_spline_matrix->module~sll_m_spline_matrix_banded module~sll_m_spline_matrix_base sll_m_spline_matrix_base module~sll_m_spline_matrix->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_dense sll_m_spline_matrix_dense module~sll_m_spline_matrix->module~sll_m_spline_matrix_dense module~sll_m_spline_matrix->module~sll_m_working_precision module~sll_m_bsplines_base->module~sll_m_working_precision module~sll_m_bsplines_non_uniform->module~sll_m_bsplines_base module~sll_m_bsplines_non_uniform->module~sll_m_working_precision module~sll_m_bsplines_uniform->module~sll_m_bsplines_base module~sll_m_bsplines_uniform->module~sll_m_working_precision module~sll_m_spline_1d->module~sll_m_bsplines_base module~sll_m_spline_1d->module~sll_m_working_precision module~sll_m_spline_matrix_banded->iso_fortran_env module~sll_m_spline_matrix_banded->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_banded->module~sll_m_working_precision module~sll_m_spline_matrix_base->module~sll_m_working_precision module~sll_m_spline_matrix_dense->iso_fortran_env module~sll_m_spline_matrix_dense->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_dense->module~sll_m_working_precision

Compute Equilibrium, iteratively

Type Bound

t_functional_mhd3d

Arguments

Type IntentOptional Attributes Name
class(t_functional_mhd3d), intent(inout) :: sf

Calls

proc~~minimizemhd3d~~CallsGraph proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D __perfoff __perfoff proc~minimizemhd3d->__perfoff __perfon __perfon proc~minimizemhd3d->__perfon proc~minimizemhd3d_descent MinimizeMHD3D_descent proc~minimizemhd3d->proc~minimizemhd3d_descent proc~minimizemhd3d_descent->__perfoff proc~minimizemhd3d_descent->__perfon analyze analyze proc~minimizemhd3d_descent->analyze checkaxis checkaxis proc~minimizemhd3d_descent->checkaxis checkdistance checkdistance proc~minimizemhd3d_descent->checkdistance interface~getfreeunit GETFREEUNIT proc~minimizemhd3d_descent->interface~getfreeunit interface~writestate WriteState proc~minimizemhd3d_descent->interface~writestate none~set_to t_sol_var_MHD3D%set_to proc~minimizemhd3d_descent->none~set_to proc~evalaux EvalAux proc~minimizemhd3d_descent->proc~evalaux proc~evalenergy EvalEnergy proc~minimizemhd3d_descent->proc~evalenergy proc~evalforce EvalForce proc~minimizemhd3d_descent->proc~evalforce proc~sol_var_mhd3d_axby t_sol_var_MHD3D%sol_var_MHD3D_AXBY proc~minimizemhd3d_descent->proc~sol_var_mhd3d_axby proc~sol_var_mhd3d_norm_2 t_sol_var_MHD3D%sol_var_MHD3D_norm_2 proc~minimizemhd3d_descent->proc~sol_var_mhd3d_norm_2 swrite swrite proc~minimizemhd3d_descent->swrite writesfloutfile writesfloutfile proc~minimizemhd3d_descent->writesfloutfile interface~getfreeunit->interface~getfreeunit proc~writestatetoascii WriteStateToASCII interface~writestate->proc~writestatetoascii proc~sol_var_mhd3d_set_to_scalar t_sol_var_MHD3D%sol_var_MHD3D_set_to_scalar none~set_to->proc~sol_var_mhd3d_set_to_scalar proc~sol_var_mhd3d_set_to_solvar t_sol_var_MHD3D%sol_var_MHD3D_set_to_solvar none~set_to->proc~sol_var_mhd3d_set_to_solvar proc~evalaux->__perfoff proc~evalaux->__perfon eval_all eval_all proc~evalaux->eval_all interface~par_allreduce par_AllReduce proc~evalaux->interface~par_allreduce proc~base_evaldof t_base%base_evalDOF proc~evalaux->proc~base_evaldof proc~base_evaldof_all t_base%base_evalDOF_all proc~evalaux->proc~base_evaldof_all proc~evalenergy->__perfoff proc~evalenergy->__perfon proc~evalenergy->proc~evalaux proc~evalenergy->interface~par_allreduce proc~evalforce->__perfoff proc~evalforce->__perfon proc~evalforce->proc~evalaux interface~par_bcast par_Bcast proc~evalforce->interface~par_bcast interface~par_ibcast par_IBcast proc~evalforce->interface~par_ibcast interface~par_ireduce par_IReduce proc~evalforce->interface~par_ireduce par_wait par_wait proc~evalforce->par_wait proc~applybc_fstrong ApplyBC_Fstrong proc~evalforce->proc~applybc_fstrong proc~applyprecond ApplyPrecond proc~evalforce->proc~applyprecond proc~buildprecond BuildPrecond proc~evalforce->proc~buildprecond proc~fbase_projectiptodof_tens t_fBase%fBase_projectIPtoDOF_tens proc~evalforce->proc~fbase_projectiptodof_tens proc~par_barrier par_Barrier proc~evalforce->proc~par_barrier proc~sbase_applybctorhs t_sBase%sBase_applyBCtoRHS proc~evalforce->proc~sbase_applybctorhs req1 req1 proc~evalforce->req1 req2 req2 proc~evalforce->req2 req3 req3 proc~evalforce->req3 solve_inplace solve_inplace proc~evalforce->solve_inplace proc~par_allreduce_array1d par_AllReduce_array1D interface~par_allreduce->proc~par_allreduce_array1d proc~par_allreduce_array2d par_AllReduce_array2D interface~par_allreduce->proc~par_allreduce_array2d proc~par_allreduce_scalar par_AllReduce_scalar interface~par_allreduce->proc~par_allreduce_scalar proc~par_allreduce_scalar_int par_AllReduce_scalar_int interface~par_allreduce->proc~par_allreduce_scalar_int proc~par_bcast_array1d par_Bcast_array1D interface~par_bcast->proc~par_bcast_array1d proc~par_bcast_array1d_int par_Bcast_array1D_int interface~par_bcast->proc~par_bcast_array1d_int proc~par_bcast_array1d_str par_Bcast_array1D_str interface~par_bcast->proc~par_bcast_array1d_str proc~par_bcast_array2d par_Bcast_array2D interface~par_bcast->proc~par_bcast_array2d proc~par_bcast_scalar par_Bcast_scalar interface~par_bcast->proc~par_bcast_scalar proc~par_bcast_scalar_int par_Bcast_scalar_int interface~par_bcast->proc~par_bcast_scalar_int proc~par_bcast_scalar_str par_Bcast_scalar_str interface~par_bcast->proc~par_bcast_scalar_str proc~par_ibcast_array1d par_IBcast_array1D interface~par_ibcast->proc~par_ibcast_array1d proc~par_ibcast_array2d par_IBcast_array2D interface~par_ibcast->proc~par_ibcast_array2d proc~par_ireduce_array1d par_IReduce_array1D interface~par_ireduce->proc~par_ireduce_array1d proc~par_ireduce_array2d par_IReduce_array2D interface~par_ireduce->proc~par_ireduce_array2d proc~sbase_applybctodof_lgm t_sBase%sBase_applyBCtoDOF_LGM proc~applybc_fstrong->proc~sbase_applybctodof_lgm 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 proc~base_evaldof->__perfoff proc~base_evaldof->__perfon proc~fbase_evaldof_ip_tens t_fBase%fBase_evalDOF_IP_tens proc~base_evaldof->proc~fbase_evaldof_ip_tens proc~base_evaldof_all->__perfoff proc~base_evaldof_all->__perfon proc~base_evaldof_all->proc~fbase_evaldof_ip_tens proc~buildprecond->__perfoff proc~buildprecond->__perfon proc~buildprecond->interface~par_allreduce add_element add_element proc~buildprecond->add_element factorize factorize proc~buildprecond->factorize get_element get_element proc~buildprecond->get_element reset reset proc~buildprecond->reset set_element set_element proc~buildprecond->set_element __adgemm_tn __adgemm_tn proc~fbase_projectiptodof_tens->__adgemm_tn __dgemm_nt __dgemm_nt proc~fbase_projectiptodof_tens->__dgemm_nt mpi_barrier mpi_barrier proc~par_barrier->mpi_barrier proc~writestatetoascii->__perfoff proc~writestatetoascii->__perfon proc~writestatetoascii->interface~getfreeunit proc~writestatetoascii->swrite proc~evaltotals EvalTotals proc~writestatetoascii->proc~evaltotals proc~rprofile_eval_at_rho c_rProfile%rProfile_eval_at_rho proc~writestatetoascii->proc~rprofile_eval_at_rho proc~evaltotals->proc~evalaux interface~par_reduce par_Reduce proc~evaltotals->interface~par_reduce __dgemm_nn __dgemm_nn proc~fbase_evaldof_ip_tens->__dgemm_nn proc~fbase_evaldof_xn t_fBase%fBase_evalDOF_xn proc~fbase_evaldof_ip_tens->proc~fbase_evaldof_xn mpi_allreduce mpi_allreduce proc~par_allreduce_array1d->mpi_allreduce proc~par_allreduce_array2d->mpi_allreduce proc~par_allreduce_scalar->mpi_allreduce proc~par_allreduce_scalar_int->mpi_allreduce mpi_bcast mpi_bcast proc~par_bcast_array1d->mpi_bcast proc~par_bcast_array1d_int->mpi_bcast proc~par_bcast_array1d_str->mpi_bcast proc~par_bcast_array2d->mpi_bcast proc~par_bcast_scalar->mpi_bcast proc~par_bcast_scalar_int->mpi_bcast proc~par_bcast_scalar_str->mpi_bcast mpi_ibcast mpi_ibcast proc~par_ibcast_array1d->mpi_ibcast proc~par_ibcast_array2d->mpi_ibcast mpi_ireduce mpi_ireduce proc~par_ireduce_array1d->mpi_ireduce proc~par_ireduce_array2d->mpi_ireduce eval_at_rho2 eval_at_rho2 proc~rprofile_eval_at_rho->eval_at_rho2 proc~rho2_derivative rho2_derivative proc~rprofile_eval_at_rho->proc~rho2_derivative proc~rprofile_drho2 c_rProfile%rProfile_drho2 proc~rprofile_eval_at_rho->proc~rprofile_drho2 proc~rprofile_drho3 c_rProfile%rProfile_drho3 proc~rprofile_eval_at_rho->proc~rprofile_drho3 proc~rprofile_drho4 c_rProfile%rProfile_drho4 proc~rprofile_eval_at_rho->proc~rprofile_drho4 dgbtrs dgbtrs proc~s_spline_matrix_banded__solve_inplace->dgbtrs sll_assert sll_assert proc~s_spline_matrix_banded__solve_inplace->sll_assert sll_error sll_error proc~s_spline_matrix_banded__solve_inplace->sll_error proc~solve SOLVE proc~sbase_applybctodof_lgm->proc~solve proc~par_reduce_array1d par_Reduce_array1D interface~par_reduce->proc~par_reduce_array1d proc~par_reduce_array2d par_Reduce_array2D interface~par_reduce->proc~par_reduce_array2d proc~par_reduce_scalar par_Reduce_scalar interface~par_reduce->proc~par_reduce_scalar proc~par_reduce_scalar_int par_Reduce_scalar_int interface~par_reduce->proc~par_reduce_scalar_int __matvec_n __matvec_n proc~fbase_evaldof_xn->__matvec_n proc~fbase_eval_xn t_fBase%fBase_eval_xn proc~fbase_evaldof_xn->proc~fbase_eval_xn proc~poly_derivative_prefactor poly_derivative_prefactor proc~rho2_derivative->proc~poly_derivative_prefactor proc~rprofile_drho2->eval_at_rho2 proc~rprofile_drho2->proc~rho2_derivative proc~rprofile_drho3->eval_at_rho2 proc~rprofile_drho3->proc~rho2_derivative proc~rprofile_drho4->eval_at_rho2 proc~rprofile_drho4->proc~rho2_derivative dgetrf dgetrf proc~solve->dgetrf dgetrs dgetrs proc~solve->dgetrs mpi_reduce mpi_reduce proc~par_reduce_array1d->mpi_reduce proc~par_reduce_array2d->mpi_reduce proc~par_reduce_scalar->mpi_reduce proc~par_reduce_scalar_int->mpi_reduce

Source Code

SUBROUTINE MinimizeMHD3D(sf)
! MODULES
  USE MODgvec_MHD3D_vars, ONLY: MinimizerType
  IMPLICIT NONE
!-----------------------------------------------------------------------------------------------------------------------------------
! OUTPUT VARIABLES
  CLASS(t_functional_mhd3d), INTENT(INOUT) :: sf
!-----------------------------------------------------------------------------------------------------------------------------------
! LOCAL VARIABLES
!===================================================================================================================================
  __PERFON('minimizer')
  SELECT CASE(MinimizerType)
  CASE(0,10)
    CALL MinimizeMHD3D_descent(sf)
  CASE DEFAULT
    CALL abort(__STAMP__,&
        "Minimizertype does not exist",MinimizerType,-1.0_wp)
  END SELECT
  __PERFOFF('minimizer')
END SUBROUTINE MinimizeMHD3D