zero_mode_charge_primitive Function

public pure function zero_mode_charge_primitive(plan, state, z, interval) result(primitive)

Arguments

Type IntentOptional Attributes Name
type(periodic_zero_mode_plan_type), intent(in) :: plan
type(periodic_zero_mode_state_type), intent(in) :: state
real(kind=dp), intent(in) :: z
integer(kind=i32), intent(in) :: interval

Return Value real(kind=dp)


Calls

proc~~zero_mode_charge_primitive~~CallsGraph proc~zero_mode_charge_primitive zero_mode_charge_primitive proc~integrate_local_polynomial integrate_local_polynomial proc~zero_mode_charge_primitive->proc~integrate_local_polynomial proc~zero_mode_interval_origin zero_mode_interval_origin proc~zero_mode_charge_primitive->proc~zero_mode_interval_origin

Called by

proc~~zero_mode_charge_primitive~~CalledByGraph proc~zero_mode_charge_primitive zero_mode_charge_primitive proc~eval_periodic_zero_mode eval_periodic_zero_mode proc~eval_periodic_zero_mode->proc~zero_mode_charge_primitive proc~refresh_periodic_zero_mode_state refresh_periodic_zero_mode_state proc~refresh_periodic_zero_mode_state->proc~zero_mode_charge_primitive none~init~6 electrostatic_snapshot_type%init none~init~6->proc~refresh_periodic_zero_mode_state proc~beach_zero_mode_eval beach_zero_mode_eval proc~beach_zero_mode_eval->proc~eval_periodic_zero_mode proc~beach_zero_mode_update beach_zero_mode_update proc~beach_zero_mode_update->proc~refresh_periodic_zero_mode_state proc~core_eval_point_impl core_eval_point_impl proc~core_eval_point_impl->proc~eval_periodic_zero_mode proc~core_eval_points_impl core_eval_points_impl proc~core_eval_points_impl->proc~eval_periodic_zero_mode proc~core_eval_potential_point_impl core_eval_potential_point_impl proc~core_eval_potential_point_impl->proc~eval_periodic_zero_mode proc~core_eval_potential_points_impl core_eval_potential_points_impl proc~core_eval_potential_points_impl->proc~eval_periodic_zero_mode proc~core_update_state_impl core_update_state_impl proc~core_update_state_impl->proc~refresh_periodic_zero_mode_state proc~prepare_periodic_cache_and_stop prepare_periodic_cache_and_stop proc~prepare_periodic_cache_and_stop->none~init~6 program~main main program~main->proc~prepare_periodic_cache_and_stop

Source Code

  pure real(dp) function zero_mode_charge_primitive(plan, state, z, interval) result(primitive)
    type(periodic_zero_mode_plan_type), intent(in) :: plan
    type(periodic_zero_mode_state_type), intent(in) :: state
    real(dp), intent(in) :: z
    integer(i32), intent(in) :: interval

    ! 区間 1 は最下 break から、それ以外は区間の左端 break(局所原点)から積分する。
    primitive = integrate_local_polynomial( &
                state%cumulative_charge_coeff(:, interval), z - zero_mode_interval_origin(plan%break_z, interval) &
                )
    if (interval > 1_i32) primitive = primitive + state%primitive_at_break(interval - 1_i32)
  end function zero_mode_charge_primitive