hmap_RZ_eval_dxdq Function

public function hmap_RZ_eval_dxdq(sf, q_in, q_vec) result(dxdq_qvec)

evaluate total derivative of the mapping sum k=1,3 (dx(1:3)/dq^k) q_vec^k, where dx(1:3)/dq^k, k=1,2,3 is evaluated at q_in=(X^1,X^2,zeta) ,

Type Bound

t_hmap_RZ

Arguments

Type IntentOptional Attributes Name
class(t_hmap_RZ), intent(in) :: sf
real(kind=wp), intent(in) :: q_in(3)
real(kind=wp), intent(in) :: q_vec(3)

Return Value real(kind=wp), (3)


Called by

proc~~hmap_rz_eval_dxdq~~CalledByGraph proc~hmap_rz_eval_dxdq t_hmap_RZ%hmap_RZ_eval_dxdq proc~hmap_rz_test hmap_RZ_test proc~hmap_rz_test->proc~hmap_rz_eval_dxdq proc~hmap_rz_init hmap_RZ_init proc~hmap_rz_init->proc~hmap_rz_test interface~t_hmap_rz t_hmap_RZ interface~t_hmap_rz->proc~hmap_rz_init

Source Code

FUNCTION hmap_RZ_eval_dxdq( sf ,q_in,q_vec) RESULT(dxdq_qvec)
  IMPLICIT NONE
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! INPUT VARIABLES
  CLASS(t_hmap_RZ), INTENT(IN) :: sf
  REAL(wp)        , INTENT(IN) :: q_in(3)
  REAL(wp)        , INTENT(IN) :: q_vec(3)

  !-----------------------------------------------------------------------------------------------------------------------------------
  ! OUTPUT VARIABLES
  REAL(wp)                     :: dxdq_qvec(3)
  !-----------------------------------------------------------------------------------------------------------------------------------
  ! LOCAL VARIABLES
  REAL(wp) :: coszeta,sinzeta
  !===================================================================================================================================
  !  dxdq_qvec=
  ! |  cos(zeta)  0  -q^1 sin(zeta) | |q_vec(1) |
  ! | -sin(zeta)  0  -q^1 cos(zeta) | |q_vec(2) |
  ! |     0       1        0        | |q_vec(3) |

sinzeta=SIN(q_in(3))
coszeta=COS(q_in(3))
dxdq_qvec(1:3) = (/ q_vec(1)*coszeta-q_vec(3)*q_in(1)*sinzeta, &
                   -q_vec(1)*sinzeta-q_vec(3)*q_in(1)*coszeta, &
                    q_vec(2) /)


END FUNCTION hmap_RZ_eval_dxdq