mod_eigenfunctions Module



Contents


Derived Types

type, public :: eigenfunctions_t

Components

TypeVisibilityAttributesNameInitial
type(settings_t), private, pointer:: settings
type(grid_t), private, pointer:: grid
type(background_t), private, pointer:: background
type(base_ef_t), public, allocatable:: base_efs(:)
type(derived_ef_t), public, allocatable:: derived_efs(:)
logical, public, allocatable:: ef_written_flags(:)
integer, public, allocatable:: ef_written_idxs(:)

Type-Bound Procedures

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

Functions

public function new_eigenfunctions(settings, grid, background) result(eigenfunctions)

Arguments

TypeIntentOptionalAttributesName
type(settings_t), intent(inout), target:: settings
type(grid_t), intent(in), target:: grid
type(background_t), intent(in), target:: background

Return Value type(eigenfunctions_t)

private elemental function eigenvalue_is_inside_subset_radius(eigenvalue, radius, center)

Arguments

TypeIntentOptionalAttributesName
complex(kind=dp), intent(in) :: eigenvalue
real(kind=dp), intent(in) :: radius
complex(kind=dp), intent(in) :: center

Return Value logical


Subroutines

private subroutine initialise(this, omega)

Arguments

TypeIntentOptionalAttributesName
class(eigenfunctions_t), intent(inout) :: this
complex(kind=dp), intent(in) :: omega(:)

private subroutine assemble(this, right_eigenvectors)

Arguments

TypeIntentOptionalAttributesName
class(eigenfunctions_t), intent(inout) :: this
complex(kind=dp), intent(in) :: right_eigenvectors(:,:)

private pure subroutine delete(this)

Arguments

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

private pure subroutine select_eigenfunctions_to_save(this, omega)

Arguments

TypeIntentOptionalAttributesName
class(eigenfunctions_t), intent(inout) :: this
complex(kind=dp), intent(in) :: omega(:)