fBase_projectxntoDOF Subroutine

private subroutine fBase_projectxntoDOF(sf, add, factor, deriv, np, xn, yn, DOFs)

project from any 2D set of interpolation points, at tensor-product of (theta,zeta) positions given by "xn", to all modes DOFs = addDOFs+ fac MATMUL(base_xn,yn)

Type Bound

t_fBase

Arguments

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

self

logical, intent(in) :: add

=F initialize DOFs , =T add to DOFs

real(kind=wp), intent(in) :: factor

scale result by factor, before adding to DOFs (should be =1.0_wp if not needed)

integer, intent(in) :: deriv

=0: base, =2: dthet , =3: dzeta

integer, intent(in) :: np

total number of 2D interpolation points

real(kind=wp), intent(in) :: xn(2,1:np)

(theta=1,zeta=2) position of tensor-product interpolation points, [0,2pi]x[0,2pi/nfp],size(2,mn_IP)

real(kind=wp), intent(in) :: yn(1:np)

value at interpolation points

real(kind=wp), intent(inout) :: DOFs(1:sf%modes)

array of all modes


Calls

proc~~fbase_projectxntodof~~CallsGraph proc~fbase_projectxntodof t_fBase%fBase_projectxntoDOF __pamatvec_t __pamatvec_t proc~fbase_projectxntodof->__pamatvec_t proc~fbase_eval_xn t_fBase%fBase_eval_xn proc~fbase_projectxntodof->proc~fbase_eval_xn

Called by

proc~~fbase_projectxntodof~~CalledByGraph proc~fbase_projectxntodof t_fBase%fBase_projectxntoDOF proc~fbase_initdof t_fBase%fBase_initDOF proc~fbase_initdof->proc~fbase_projectxntodof proc~bff_convert_to_modes t_boundaryFromFile%bff_convert_to_modes proc~bff_convert_to_modes->proc~fbase_initdof proc~fbase_new fBase_new proc~bff_convert_to_modes->proc~fbase_new proc~fbase_test fBase_test proc~fbase_test->proc~fbase_initdof proc~fbase_init t_fBase%fBase_init proc~fbase_test->proc~fbase_init proc~get_field Get_Field proc~get_field->proc~fbase_initdof proc~gvec_to_jorek_prepare gvec_to_jorek_prepare proc~gvec_to_jorek_prepare->proc~fbase_initdof proc~gvec_to_jorek_prepare->proc~get_field proc~hmap_axisnb_init_params hmap_axisNB_init_params proc~hmap_axisnb_init_params->proc~fbase_initdof proc~hmap_axisnb_init_params->proc~fbase_new proc~initaverageaxis InitAverageAxis proc~initaverageaxis->proc~fbase_initdof proc~transform_angles_3d Transform_Angles_3d proc~transform_angles_3d->proc~fbase_initdof interface~t_hmap_axisnb t_hmap_axisNB interface~t_hmap_axisnb->proc~hmap_axisnb_init_params proc~hmap_axisnb_init hmap_axisNB_init interface~t_hmap_axisnb->proc~hmap_axisnb_init proc~buildtransform_sfl t_transform_sfl%BuildTransform_SFL proc~buildtransform_sfl->proc~transform_angles_3d proc~get_boozer_sinterp t_sfl_boozer%Get_Boozer_sinterp proc~buildtransform_sfl->proc~get_boozer_sinterp proc~transform_angles_sinterp Transform_Angles_sinterp proc~buildtransform_sfl->proc~transform_angles_sinterp proc~fbase_init->proc~fbase_test proc~hmap_axisnb_init->proc~hmap_axisnb_init_params proc~initmhd3d t_functional_mhd3d%InitMHD3D proc~initmhd3d->proc~bff_convert_to_modes proc~base_new Base_new proc~initmhd3d->proc~base_new proc~initsolution InitSolution proc~initsolution->proc~initaverageaxis proc~fbase_copy t_fBase%fBase_copy proc~fbase_copy->proc~fbase_init proc~fbase_new->proc~fbase_init proc~initsolutionmhd3d t_functional_mhd3d%InitSolutionMHD3D proc~initsolutionmhd3d->proc~initsolution proc~base_new->proc~fbase_new proc~get_boozer_sinterp->proc~fbase_new proc~init_base Init_Base proc~init_base->proc~fbase_new proc~init_base->proc~base_new proc~sfl_boozer_new sfl_boozer_new proc~sfl_boozer_new->proc~fbase_new proc~transform_angles_sinterp->proc~fbase_new proc~get_boozer get_boozer proc~get_boozer->proc~get_boozer_sinterp proc~init_gvec_to_jorek init_gvec_to_jorek proc~init_gvec_to_jorek->proc~init_base interface~readstate ReadState proc~init_gvec_to_jorek->interface~readstate proc~readstatefilefromascii ReadStateFileFromASCII proc~readstatefilefromascii->proc~base_new proc~transform_sfl_init t_transform_sfl%transform_SFL_init proc~transform_sfl_init->proc~base_new interface~readstate->proc~readstatefilefromascii proc~transform_sfl_new transform_sfl_new proc~transform_sfl_new->proc~transform_sfl_init proc~restartfromstate RestartFromState proc~restartfromstate->interface~readstate

Source Code

SUBROUTINE fBase_projectxntoDOF(sf,add,factor,deriv,np,xn,yn,DOFs)
  ! MODULES
  IMPLICIT NONE
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! INPUT VARIABLES
    CLASS(t_fBase), INTENT(IN   ) :: sf     !! self
    LOGICAL       , INTENT(IN   ) :: add    !! =F initialize DOFs , =T add to DOFs
    REAL(wp)      , INTENT(IN   ) :: factor !! scale result by factor, before adding to DOFs (should be =1.0_wp if not needed)
    INTEGER       , INTENT(IN   ) :: deriv  !! =0: base, =2: dthet , =3: dzeta
    INTEGER       , INTENT(IN   ) :: np     !! total number of 2D interpolation points
    REAL(wp)      , INTENT(IN   ) :: xn(2,1:np)  !!  (theta=1,zeta=2) position of tensor-product interpolation points, [0,2pi]x[0,2pi/nfp],size(2,mn_IP)
    REAL(wp)      , INTENT(IN   ) :: yn(1:np)  !! value at interpolation points
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! OUTPUT VARIABLES
    REAL(wp)      , INTENT(INOUT) :: DOFs(1:sf%modes)  !! array of all modes
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! LOCAL VARIABLES
    REAL(wp)                      :: radd
    REAL(wp)                      :: base_xn(1:np,1:sf%modes)
  !===================================================================================================================================
    base_xn=sf%eval_xn(deriv,np,xn)
    radd=MERGE(1.0_wp,0.0_wp,add)
    __PAMATVEC_T(radd,DOFs,factor,base_xn,yn)
  END SUBROUTINE fBase_projectxntoDOF