sll_m_spline_matrix_base Module

@brief Abstract class for small matrix library with basic operations: set matrix element, factorize, solve and write to output


Uses

  • module~~sll_m_spline_matrix_base~~UsesGraph module~sll_m_spline_matrix_base sll_m_spline_matrix_base module~sll_m_working_precision sll_m_working_precision module~sll_m_spline_matrix_base->module~sll_m_working_precision

Used by

  • module~~sll_m_spline_matrix_base~~UsedByGraph module~sll_m_spline_matrix_base sll_m_spline_matrix_base module~sll_m_spline_matrix sll_m_spline_matrix module~sll_m_spline_matrix->module~sll_m_spline_matrix_base 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_dense sll_m_spline_matrix_dense module~sll_m_spline_matrix->module~sll_m_spline_matrix_dense module~sll_m_spline_matrix_banded->module~sll_m_spline_matrix_base module~sll_m_spline_matrix_dense->module~sll_m_spline_matrix_base module~modgvec_mhd3d_evalfunc MODgvec_MHD3D_evalFunc module~modgvec_mhd3d_evalfunc->module~sll_m_spline_matrix module~modgvec_mhd3d_evalfunc->module~sll_m_spline_matrix_banded module~modgvec_sbase MODgvec_sBase module~modgvec_sbase->module~sll_m_spline_matrix module~sll_m_spline_interpolator_1d sll_m_spline_interpolator_1d module~modgvec_sbase->module~sll_m_spline_interpolator_1d module~sll_m_spline_interpolator_1d->module~sll_m_spline_matrix proc~interpolate_cubic_spline interpolate_cubic_spline proc~interpolate_cubic_spline->module~sll_m_spline_matrix proc~sbase_init t_sBase%sBase_init proc~sbase_init->module~sll_m_spline_matrix proc~sbase_init->module~sll_m_spline_interpolator_1d module~modgvec_base MODgvec_base module~modgvec_base->module~modgvec_sbase module~modgvec_readstate_vars MODgvec_ReadState_Vars module~modgvec_readstate_vars->module~modgvec_sbase module~modgvec_readstate_vars->module~modgvec_base proc~finalizemhd3d t_functional_mhd3d%FinalizeMHD3D proc~finalizemhd3d->module~modgvec_mhd3d_evalfunc module~modgvec_mhd3d_vars MODgvec_MHD3D_Vars proc~finalizemhd3d->module~modgvec_mhd3d_vars proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->module~modgvec_mhd3d_evalfunc proc~initmhd3d->module~modgvec_base proc~initmhd3d->module~modgvec_mhd3d_vars proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->module~modgvec_mhd3d_evalfunc proc~initsolutionmhd3d->module~modgvec_mhd3d_vars proc~minimizemhd3d_descent MinimizeMHD3D_descent proc~minimizemhd3d_descent->module~modgvec_mhd3d_evalfunc proc~minimizemhd3d_descent->module~modgvec_mhd3d_vars proc~readstatefilefromascii ReadStateFileFromASCII proc~readstatefilefromascii->module~modgvec_sbase proc~readstatefilefromascii->module~modgvec_base proc~readstatefilefromascii->module~modgvec_readstate_vars proc~writestatetoascii WriteStateToASCII proc~writestatetoascii->module~modgvec_mhd3d_evalfunc proc~writestatetoascii->module~modgvec_mhd3d_vars program~gvec_post GVEC_POST program~gvec_post->module~modgvec_mhd3d_evalfunc program~gvec_post->module~modgvec_readstate_vars program~gvec_post->module~modgvec_mhd3d_vars module~modgvec_gvec_to_jorek_vars MODgvec_gvec_to_jorek_Vars module~modgvec_gvec_to_jorek_vars->module~modgvec_base module~modgvec_mhd3d_vars->module~modgvec_base module~modgvec_py_state MODgvec_py_state module~modgvec_py_state->module~modgvec_base module~modgvec_transform_sfl MODgvec_Transform_SFL module~modgvec_transform_sfl->module~modgvec_base proc~applyprecond ApplyPrecond proc~applyprecond->module~modgvec_base proc~buildtransform_sfl t_transform_sfl%BuildTransform_SFL proc~buildtransform_sfl->module~modgvec_base proc~eval_prof_r eval_prof_r proc~eval_prof_r->module~modgvec_readstate_vars proc~evaluate_base_list_stz_all evaluate_base_list_stz_all proc~evaluate_base_list_stz_all->module~modgvec_base proc~evaluate_base_list_tz evaluate_base_list_tz proc~evaluate_base_list_tz->module~modgvec_base proc~evaluate_base_list_tz_all evaluate_base_list_tz_all proc~evaluate_base_list_tz_all->module~modgvec_base proc~evaluate_base_select evaluate_base_select proc~evaluate_base_select->module~modgvec_base proc~evaluate_base_tens evaluate_base_tens proc~evaluate_base_tens->module~modgvec_base proc~evaluate_base_tens_all evaluate_base_tens_all proc~evaluate_base_tens_all->module~modgvec_base proc~finalize_readstate Finalize_ReadState proc~finalize_readstate->module~modgvec_readstate_vars proc~get_boozer get_boozer proc~get_boozer->module~modgvec_base proc~get_boozer->module~modgvec_mhd3d_vars proc~get_boozer_sinterp t_sfl_boozer%Get_Boozer_sinterp proc~get_boozer_sinterp->module~modgvec_base proc~get_field Get_Field proc~get_field->module~modgvec_readstate_vars proc~get_field->module~modgvec_gvec_to_jorek_vars proc~get_integration_points get_integration_points proc~get_integration_points->module~modgvec_base proc~get_integration_points_num get_integration_points_num proc~get_integration_points_num->module~modgvec_base proc~gvec_to_jorek_prepare gvec_to_jorek_prepare proc~gvec_to_jorek_prepare->module~modgvec_base proc~gvec_to_jorek_prepare->module~modgvec_readstate_vars proc~gvec_to_jorek_prepare->module~modgvec_gvec_to_jorek_vars proc~init_base Init_Base proc~init_base->module~modgvec_base proc~init_base->module~modgvec_readstate_vars proc~init_base->module~modgvec_gvec_to_jorek_vars proc~init_gvec_to_jorek init_gvec_to_jorek proc~init_gvec_to_jorek->module~modgvec_readstate_vars proc~init_gvec_to_jorek->module~modgvec_gvec_to_jorek_vars proc~lambda_solve Lambda_solve proc~lambda_solve->module~modgvec_base proc~readstate ReadState proc~readstate->module~modgvec_readstate_vars proc~readstate->module~modgvec_mhd3d_vars proc~restartfromstate RestartFromState proc~restartfromstate->module~modgvec_base proc~restartfromstate->module~modgvec_readstate_vars proc~restartfromstate->module~modgvec_mhd3d_vars proc~select_base select_base proc~select_base->module~modgvec_base proc~select_base->module~modgvec_mhd3d_vars proc~select_base_dofs select_base_dofs proc~select_base_dofs->module~modgvec_base proc~select_base_dofs->module~modgvec_mhd3d_vars proc~transform_angles_3d Transform_Angles_3d proc~transform_angles_3d->module~modgvec_base proc~transform_angles_sinterp Transform_Angles_sinterp proc~transform_angles_sinterp->module~modgvec_base proc~transform_sfl_init t_transform_sfl%transform_SFL_init proc~transform_sfl_init->module~modgvec_base module~modgvec_gvec_to_castor3d_vars MODgvec_gvec_to_castor3d_Vars module~modgvec_gvec_to_castor3d_vars->module~modgvec_transform_sfl module~modgvec_gvec_to_gene_vars MODgvec_gvec_to_gene_Vars module~modgvec_gvec_to_gene_vars->module~modgvec_transform_sfl module~modgvec_gvec_to_hopr_vars MODgvec_gvec_to_hopr_vars module~modgvec_gvec_to_hopr_vars->module~modgvec_transform_sfl proc~addboundaryperturbation AddBoundaryPerturbation proc~addboundaryperturbation->module~modgvec_mhd3d_vars proc~analyze Analyze proc~analyze->module~modgvec_mhd3d_vars proc~applybc_fstrong ApplyBC_Fstrong proc~applybc_fstrong->module~modgvec_mhd3d_vars proc~buildprecond BuildPrecond proc~buildprecond->module~modgvec_mhd3d_vars proc~evalaux EvalAux proc~evalaux->module~modgvec_mhd3d_vars proc~evalenergy EvalEnergy proc~evalenergy->module~modgvec_mhd3d_vars proc~evalforce EvalForce proc~evalforce->module~modgvec_mhd3d_vars proc~evaluate_hmap evaluate_hmap proc~evaluate_hmap->module~modgvec_mhd3d_vars proc~evaluate_hmap_only evaluate_hmap_only proc~evaluate_hmap_only->module~modgvec_mhd3d_vars proc~evaluate_hmap_only_pw evaluate_hmap_only_pw proc~evaluate_hmap_only_pw->module~modgvec_mhd3d_vars proc~evaluate_hmap_pw evaluate_hmap_pw proc~evaluate_hmap_pw->module~modgvec_mhd3d_vars proc~evaluate_jac_h_derivs evaluate_jac_h_derivs proc~evaluate_jac_h_derivs->module~modgvec_mhd3d_vars proc~evaluate_jac_h_derivs_pw evaluate_jac_h_derivs_pw proc~evaluate_jac_h_derivs_pw->module~modgvec_mhd3d_vars proc~evaluate_metric_derivs evaluate_metric_derivs proc~evaluate_metric_derivs->module~modgvec_mhd3d_vars proc~evaluate_profile evaluate_profile proc~evaluate_profile->module~modgvec_mhd3d_vars proc~evaluate_rho2_profile evaluate_rho2_profile proc~evaluate_rho2_profile->module~modgvec_mhd3d_vars proc~finalize_gvec_to_jorek finalize_gvec_to_jorek proc~finalize_gvec_to_jorek->module~modgvec_gvec_to_jorek_vars proc~finalizemhd3d_evalfunc FinalizeMHD3D_EvalFunc proc~finalizemhd3d_evalfunc->module~modgvec_mhd3d_vars proc~get_cla_gvec_to_jorek get_CLA_gvec_to_jorek proc~get_cla_gvec_to_jorek->module~modgvec_gvec_to_jorek_vars proc~gvec_to_jorek_writetofile_ascii gvec_to_jorek_writeToFile_ASCII proc~gvec_to_jorek_writetofile_ascii->module~modgvec_gvec_to_jorek_vars proc~init Init proc~init->module~modgvec_mhd3d_vars proc~init_boozer init_boozer proc~init_boozer->module~modgvec_mhd3d_vars proc~init_la_from_solution Init_LA_from_Solution proc~init_la_from_solution->module~modgvec_mhd3d_vars proc~initaverageaxis InitAverageAxis proc~initaverageaxis->module~modgvec_mhd3d_vars proc~initializemhd3d_evalfunc InitializeMHD3D_evalFunc proc~initializemhd3d_evalfunc->module~modgvec_mhd3d_vars proc~initprofilesgp InitProfilesGP proc~initprofilesgp->module~modgvec_mhd3d_vars proc~initsolution InitSolution proc~initsolution->module~modgvec_mhd3d_vars proc~minimizemhd3d t_functional_mhd3d%MinimizeMHD3D proc~minimizemhd3d->module~modgvec_mhd3d_vars proc~rungvec rungvec proc~rungvec->module~modgvec_mhd3d_vars

Variables

Type Visibility Attributes Name Initial
integer, private, parameter :: wp = f64

Working precision


Abstract Interfaces

abstract interface

  • private function i_sub_get_element(self, i, j) result(a_ij)

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self
    integer, intent(in) :: i
    integer, intent(in) :: j

    Return Value real(kind=wp)

abstract interface

  • private function i_sub_matvec_prod(self, v_in) result(v_out)

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(in) :: self
    real(kind=wp), intent(in) :: v_in(:)

    Return Value real(kind=wp), (size(v_in))

abstract interface

  • private subroutine i_sub_mat_copy(self, tocopy)

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self
    class(sll_c_spline_matrix), intent(in) :: tocopy

abstract interface

  • private subroutine i_sub_mat_add(self, a, amat, b, bmat)

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self
    real(kind=wp), intent(in) :: a
    class(sll_c_spline_matrix), intent(in) :: amat
    real(kind=wp), intent(in) :: b
    class(sll_c_spline_matrix), intent(in) :: bmat

abstract interface

  • private subroutine i_sub_set_element(self, i, j, a_ij)

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self
    integer, intent(in) :: i
    integer, intent(in) :: j
    real(kind=wp), intent(in) :: a_ij

abstract interface

  • private subroutine i_sub_factorize(self)

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self

abstract interface

  • private subroutine i_sub_solve_inplace(self, nrhs, bx)

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(in) :: self
    integer, intent(in) :: nrhs
    real(kind=wp), intent(inout), dimension(*) :: bx

abstract interface

  • private subroutine i_sub_write(self, unit, fmt)

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(in) :: self
    integer, intent(in), optional :: unit
    character(len=*), intent(in), optional :: fmt

abstract interface

  • private subroutine i_sub_free(self)

    Arguments

    Type IntentOptional Attributes Name
    class(sll_c_spline_matrix), intent(inout) :: self

Derived Types

type, public, abstract ::  sll_c_spline_matrix

Type-Bound Procedures

procedure(i_sub_mat_copy), public, deferred :: mat_copy
procedure(i_sub_mat_add), public, deferred :: mat_add
procedure(i_sub_set_element), public, deferred :: set_element
procedure(i_sub_set_element), public, deferred :: add_element
procedure(i_sub_get_element), public, deferred :: get_element
procedure(i_sub_matvec_prod), public, deferred :: matvec_prod
procedure(i_sub_factorize), public, deferred :: factorize
procedure(i_sub_solve_inplace), public, deferred :: solve_inplace
procedure(i_sub_write), public, deferred :: write
procedure(i_sub_free), public, deferred :: free