mod_iv_state_vector Module



Variables

Type Visibility Attributes Name Initial
type(iv_sv_component_t), protected, target :: iv_rho1
type(iv_sv_component_t), protected, target :: iv_v1
type(iv_sv_component_t), protected, target :: iv_v2
type(iv_sv_component_t), protected, target :: iv_v3
type(iv_sv_component_t), protected, target :: iv_T1
type(iv_sv_component_t), protected, target :: iv_a1
type(iv_sv_component_t), protected, target :: iv_a2
type(iv_sv_component_t), protected, target :: iv_a3

Derived Types

type, private ::  iv_comp_ptr_t

Components

Type Visibility Attributes Name Initial
class(iv_sv_component_t), public, pointer :: ptr

type, public ::  iv_state_vector_t

Components

Type Visibility Attributes Name Initial
type(state_vector_t), public, pointer :: base => null()
class(iv_comp_ptr_t), public, allocatable :: components(:)
logical, public :: is_initialised = .false.
integer, public :: num_components
integer, public :: stride
complex(kind=dp), public, allocatable :: x0(:)

Type-Bound Procedures

procedure, public :: initialise_components
procedure, public :: assemble_iv_array
procedure, public :: disassemble_iv_array
procedure, public :: reassemble_from_block

Functions

public function init_and_bind(base_instance) result(iv_state_vector)

Arguments

Type IntentOptional Attributes Name
type(state_vector_t), intent(in), target :: base_instance

Return Value type(iv_state_vector_t)


Subroutines

private subroutine initialise_components(self, physics_type, initial_conditions)

Arguments

Type IntentOptional Attributes Name
class(iv_state_vector_t), intent(inout) :: self
character(len=*), intent(in) :: physics_type
class(initial_conditions_t), intent(inout) :: initial_conditions

private subroutine assemble_iv_array(self, N, nodes)

Arguments

Type IntentOptional Attributes Name
class(iv_state_vector_t), intent(inout) :: self
integer, intent(in) :: N

Number of grid points

real(kind=dp), intent(in) :: nodes(N)

Array of grid points

private subroutine reassemble_from_block(self, settings, grid)

Arguments

Type IntentOptional Attributes Name
class(iv_state_vector_t), intent(inout) :: self
type(settings_t), intent(in) :: settings
type(grid_t), intent(in) :: grid

private subroutine disassemble_iv_array(self, N)

Gather each component's c1 and c2 coefficients from the block-format array x0. This is the inverse of assemble_iv_array.

Arguments

Type IntentOptional Attributes Name
class(iv_state_vector_t), intent(inout) :: self
integer, intent(in) :: N Read more…