mod_derived_efs Module



Contents


Variables

TypeVisibilityAttributesNameInitial
real(kind=dp), private, allocatable:: rho0_on_ef_grid(:)
real(kind=dp), private, allocatable:: T0_on_ef_grid(:)
real(kind=dp), private, allocatable:: B02_on_ef_grid(:)
real(kind=dp), private, allocatable:: B03_on_ef_grid(:)

Interfaces

interface

  • private function derived_ef_func(settings, grid, eigenvector) result(ef)

    Arguments

    TypeIntentOptionalAttributesName
    type(settings_t), intent(in) :: settings
    type(grid_t), intent(in) :: grid
    complex(kind=dp), intent(in) :: eigenvector(:)

    Return Value complex(kind=dp)(size(grid%ef_grid))


Derived Types

type, public :: derived_ef_t

Components

TypeVisibilityAttributesNameInitial
character, public :: name
complex(kind=dp), public, allocatable:: quantities(:,:)
procedure(derived_ef_func), private, pointer, nopass:: get_derived_ef

Type-Bound Procedures

procedure, public :: initialise
procedure, public :: assemble
procedure, public :: delete
procedure, private :: set_function_pointer

Functions

private function get_entropy(settings, grid, eigenvector) result(entropy)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_div_v(settings, grid, eigenvector) result(div_v)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_curl_v_1(settings, grid, eigenvector) result(curl_v_1)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_curl_v_2(settings, grid, eigenvector) result(curl_v_2)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_curl_v_3(settings, grid, eigenvector) result(curl_v_3)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_B1(settings, grid, eigenvector) result(B1)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_B2(settings, grid, eigenvector) result(B2)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_B3(settings, grid, eigenvector) result(B3)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_div_B(settings, grid, eigenvector) result(div_B)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_curl_B_1(settings, grid, eigenvector) result(curl_B_1)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_curl_B_2(settings, grid, eigenvector) result(curl_B_2)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_curl_B_3(settings, grid, eigenvector) result(curl_B_3)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_B_para(settings, grid, eigenvector) result(B_para)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_B_perp(settings, grid, eigenvector) result(B_perp)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_curl_B_para(settings, grid, eigenvector) result(curl_B_para)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_curl_B_perp(settings, grid, eigenvector) result(curl_B_perp)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_v_para(settings, grid, eigenvector) result(v_para)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_v_perp(settings, grid, eigenvector) result(v_perp)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_curl_v_para(settings, grid, eigenvector) result(curl_v_para)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_curl_v_perp(settings, grid, eigenvector) result(curl_v_perp)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_dB1(settings, grid, eigenvector) result(dB1)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)

Return Value complex(kind=dp)(size(grid%ef_grid))

private function get_base_eigenfunction(sv_component, settings, grid, eigenvector, diff_order) result(base_ef)

Arguments

TypeIntentOptionalAttributesName
type(sv_component_t), intent(in) :: sv_component
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
complex(kind=dp), intent(in) :: eigenvector(:)
integer, intent(in), optional :: diff_order

Return Value complex(kind=dp)(size(grid%ef_grid))

private function interpolate_array_on_ef_grid(array, grid) result(array_on_ef_grid)

Arguments

TypeIntentOptionalAttributesName
real(kind=dp), intent(in) :: array(:)
type(grid_t), intent(in) :: grid

Return Value real(kind=dp),allocatable, (:)


Subroutines

private subroutine initialise(this, name, ef_grid_size, nb_efs)

Arguments

TypeIntentOptionalAttributesName
class(derived_ef_t), intent(inout) :: this
character, intent(in) :: name
integer, intent(in) :: ef_grid_size
integer, intent(in) :: nb_efs

private subroutine assemble(this, settings, grid, background, idxs_to_assemble, right_eigenvectors)

Arguments

TypeIntentOptionalAttributesName
class(derived_ef_t), intent(inout) :: this
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid
type(background_t), intent(in) :: background
integer, intent(in) :: idxs_to_assemble(:)
complex(kind=dp), intent(in) :: right_eigenvectors(:,:)

private pure subroutine delete(this)

Arguments

TypeIntentOptionalAttributesName
class(derived_ef_t), intent(inout) :: this

private subroutine set_function_pointer(this)

Arguments

TypeIntentOptionalAttributesName
class(derived_ef_t), intent(inout) :: this

private subroutine set_equilibrium_arrays_on_ef_grid(background, grid)

Arguments

TypeIntentOptionalAttributesName
type(background_t), intent(in) :: background
type(grid_t), intent(in) :: grid

Arguments

None