Octopus
field_transfer_oct_m::field_transfer_t Type Reference

class defining the field_transfer interaction More...

Detailed Description

class defining the field_transfer interaction

It contains the field from the partner (partner_field) and the one transferred to the system (system_field). Moreover, it contains data structures for regridding and time interpolation.

Definition at line 169 of file field_transfer.F90.

Inheritance diagram for field_transfer_oct_m::field_transfer_t:
Inheritance graph

Public Attributes

real(real64), dimension(:,:), allocatable, public partner_field
 field from partner More...
 
real(real64), dimension(:,:), allocatable, public system_field
 field transferred to system grid More...
 
type(grid_t), pointer, public system_gr => NULL()
 pointer to grid of the system More...
 
type(regridding_t), pointer, public regridding => NULL()
 
type(time_interpolation_t), pointer, public interpolation => NULL()
 
integer, public ndim
 
logical, public interpolation_initialized = .false.
 

Private Member Functions

procedure init => field_transfer_init
 the system field is allocated and initialized to 0 More...
 
procedure init_from_partner => field_transfer_init_from_partner
 the partner field is allocated and initialized to 0; moreover the regridding structure is initialized More...
 
procedure init_interpolation => field_transfer_init_interpolation
 the time interpolation is initialized; it needs to know the depth which is usually given by the order of the propagator; thus it can only be called after the propagator is known (this can be done in the system in init_algorithm) More...
 
procedure calculate => field_transfer_calculate
 
procedure do_mapping => field_transfer_do_mapping
 perform the regridding and add the system field to the time interpolator using the time of the quantity at this point; More...
 
procedure dfield_transfer_interpolate
 
 zfield_transfer_interpolate
 
generic interpolate => dfield_transfer_interpolate, zfield_transfer_interpolate
 return the interpolated field for a given time More...
 
procedure calculate_energy => field_transfer_calculate_energy
 
procedure read_restart => field_transfer_read_restart
 
procedure write_restart => field_transfer_write_restart
 
procedure end => field_transfer_end
 

Member Function/Subroutine Documentation

◆ init()

procedure field_transfer_oct_m::field_transfer_t::init
private

the system field is allocated and initialized to 0

Definition at line 180 of file field_transfer.F90.

◆ init_from_partner()

procedure field_transfer_oct_m::field_transfer_t::init_from_partner
private

the partner field is allocated and initialized to 0; moreover the regridding structure is initialized

Definition at line 182 of file field_transfer.F90.

◆ init_interpolation()

procedure field_transfer_oct_m::field_transfer_t::init_interpolation
private

the time interpolation is initialized; it needs to know the depth which is usually given by the order of the propagator; thus it can only be called after the propagator is known (this can be done in the system in init_algorithm)

Definition at line 184 of file field_transfer.F90.

◆ calculate()

procedure field_transfer_oct_m::field_transfer_t::calculate
private

Definition at line 186 of file field_transfer.F90.

◆ do_mapping()

procedure field_transfer_oct_m::field_transfer_t::do_mapping
private

perform the regridding and add the system field to the time interpolator using the time of the quantity at this point;

it is called by the partner system when copying its data to the interaction because the system grid does not change Note: this needs an extra function call for each of the partner systems in their copy_quantities_to_interaction function

Definition at line 188 of file field_transfer.F90.

◆ dfield_transfer_interpolate()

procedure field_transfer_oct_m::field_transfer_t::dfield_transfer_interpolate
private

Definition at line 190 of file field_transfer.F90.

◆ zfield_transfer_interpolate()

field_transfer_oct_m::field_transfer_t::zfield_transfer_interpolate
private

Definition at line 190 of file field_transfer.F90.

◆ interpolate()

generic field_transfer_oct_m::field_transfer_t::interpolate
private

return the interpolated field for a given time

Definition at line 191 of file field_transfer.F90.

◆ calculate_energy()

procedure field_transfer_oct_m::field_transfer_t::calculate_energy
private

Definition at line 193 of file field_transfer.F90.

◆ read_restart()

procedure field_transfer_oct_m::field_transfer_t::read_restart
private

Definition at line 195 of file field_transfer.F90.

◆ write_restart()

procedure field_transfer_oct_m::field_transfer_t::write_restart
private

Definition at line 197 of file field_transfer.F90.

◆ end()

procedure field_transfer_oct_m::field_transfer_t::end
private

Definition at line 199 of file field_transfer.F90.

Member Data Documentation

◆ partner_field

real(real64), dimension(:,:), allocatable, public field_transfer_oct_m::field_transfer_t::partner_field

field from partner

Definition at line 171 of file field_transfer.F90.

◆ system_field

real(real64), dimension(:,:), allocatable, public field_transfer_oct_m::field_transfer_t::system_field

field transferred to system grid

Definition at line 172 of file field_transfer.F90.

◆ system_gr

type(grid_t), pointer, public field_transfer_oct_m::field_transfer_t::system_gr => NULL()

pointer to grid of the system

Definition at line 173 of file field_transfer.F90.

◆ regridding

type(regridding_t), pointer, public field_transfer_oct_m::field_transfer_t::regridding => NULL()

Definition at line 174 of file field_transfer.F90.

◆ interpolation

type(time_interpolation_t), pointer, public field_transfer_oct_m::field_transfer_t::interpolation => NULL()

Definition at line 175 of file field_transfer.F90.

◆ ndim

integer, public field_transfer_oct_m::field_transfer_t::ndim

Definition at line 176 of file field_transfer.F90.

◆ interpolation_initialized

logical, public field_transfer_oct_m::field_transfer_t::interpolation_initialized = .false.

Definition at line 177 of file field_transfer.F90.


The documentation for this type was generated from the following file: