Octopus
linear_medium_oct_m Module Reference

This module defines a linear medium for use in classical electrodynamics calculations. More...

Detailed Description

This module defines a linear medium for use in classical electrodynamics calculations.

Data Types

interface  linear_medium_t
 linear medium for classical electrodynamics More...
 

Functions/Subroutines

class(linear_medium_t) function, pointer linear_medium_constructor (namespace)
 The factory routine (or constructor) allocates a pointer of the corresponding type and then calls the init routine which is a type-bound procedure of the corresponding type. With this design, also derived classes can use the init routine of the parent class. More...
 
subroutine, public linear_medium_init (this, namespace)
 The init routine is a module level procedure This has the advantage that different classes can have different signatures for the initialization routines because they are not type-bound and thus also not inherited. More...
 
subroutine linear_medium_init_interaction (this, interaction)
 
subroutine linear_medium_init_interaction_as_partner (partner, interaction)
 
subroutine linear_medium_initial_conditions (this)
 
logical function linear_medium_do_algorithmic_operation (this, operation, updated_quantities)
 
logical function linear_medium_is_tolerance_reached (this, tol)
 
subroutine linear_medium_copy_quantities_to_interaction (partner, interaction)
 
subroutine linear_medium_restart_write_data (this)
 
logical function linear_medium_restart_read_data (this)
 
subroutine linear_medium_update_kinetic_energy (this)
 
subroutine linear_medium_finalize (this)
 
subroutine, public get_medium_box_points_map (medium_box, gr)
 
subroutine get_linear_medium_em_properties (this, medium_box, gr)
 Evaluate electromagnetic properties of linear medium. More...
 
subroutine get_points_map_from_file (filename, mesh, n_points, global_points_number, tmp_map, scale_factor)
 Populate list of point indices for points inside the polyhedron. More...
 
subroutine, public medium_box_init (medium_box, namespace)
 Parse and store geometry of medium box. More...
 

Variables

integer, parameter medium_parallelepiped = 1
 
integer, parameter medium_box_file = 2
 

Function/Subroutine Documentation

◆ linear_medium_constructor()

class(linear_medium_t) function, pointer linear_medium_oct_m::linear_medium_constructor ( type(namespace_t), intent(in)  namespace)
private

The factory routine (or constructor) allocates a pointer of the corresponding type and then calls the init routine which is a type-bound procedure of the corresponding type. With this design, also derived classes can use the init routine of the parent class.

Definition at line 201 of file linear_medium.F90.

◆ linear_medium_init()

subroutine, public linear_medium_oct_m::linear_medium_init ( class(linear_medium_t), intent(inout), target  this,
type(namespace_t), intent(in)  namespace 
)

The init routine is a module level procedure This has the advantage that different classes can have different signatures for the initialization routines because they are not type-bound and thus also not inherited.

Definition at line 220 of file linear_medium.F90.

◆ linear_medium_init_interaction()

subroutine linear_medium_oct_m::linear_medium_init_interaction ( class(linear_medium_t), intent(inout), target  this,
class(interaction_t), intent(inout)  interaction 
)
private

Definition at line 362 of file linear_medium.F90.

◆ linear_medium_init_interaction_as_partner()

subroutine linear_medium_oct_m::linear_medium_init_interaction_as_partner ( class(linear_medium_t), intent(in)  partner,
class(interaction_surrogate_t), intent(inout)  interaction 
)
private

Definition at line 378 of file linear_medium.F90.

◆ linear_medium_initial_conditions()

subroutine linear_medium_oct_m::linear_medium_initial_conditions ( class(linear_medium_t), intent(inout)  this)
private

Definition at line 415 of file linear_medium.F90.

◆ linear_medium_do_algorithmic_operation()

logical function linear_medium_oct_m::linear_medium_do_algorithmic_operation ( class(linear_medium_t), intent(inout)  this,
class(algorithmic_operation_t), intent(in)  operation,
integer, dimension(:), intent(out), allocatable  updated_quantities 
)
private

Definition at line 424 of file linear_medium.F90.

◆ linear_medium_is_tolerance_reached()

logical function linear_medium_oct_m::linear_medium_is_tolerance_reached ( class(linear_medium_t), intent(in)  this,
real(real64), intent(in)  tol 
)
private

Definition at line 438 of file linear_medium.F90.

◆ linear_medium_copy_quantities_to_interaction()

subroutine linear_medium_oct_m::linear_medium_copy_quantities_to_interaction ( class(linear_medium_t), intent(inout)  partner,
class(interaction_surrogate_t), intent(inout)  interaction 
)
private

Definition at line 452 of file linear_medium.F90.

◆ linear_medium_restart_write_data()

subroutine linear_medium_oct_m::linear_medium_restart_write_data ( class(linear_medium_t), intent(inout)  this)
private

Definition at line 470 of file linear_medium.F90.

◆ linear_medium_restart_read_data()

logical function linear_medium_oct_m::linear_medium_restart_read_data ( class(linear_medium_t), intent(inout)  this)
private

Definition at line 493 of file linear_medium.F90.

◆ linear_medium_update_kinetic_energy()

subroutine linear_medium_oct_m::linear_medium_update_kinetic_energy ( class(linear_medium_t), intent(inout)  this)
private

Definition at line 518 of file linear_medium.F90.

◆ linear_medium_finalize()

subroutine linear_medium_oct_m::linear_medium_finalize ( type(linear_medium_t), intent(inout)  this)
private

Definition at line 530 of file linear_medium.F90.

◆ get_medium_box_points_map()

subroutine, public linear_medium_oct_m::get_medium_box_points_map ( type(single_medium_box_t), intent(inout)  medium_box,
type(grid_t), intent(in)  gr 
)

Definition at line 547 of file linear_medium.F90.

◆ get_linear_medium_em_properties()

subroutine linear_medium_oct_m::get_linear_medium_em_properties ( type(linear_medium_t), intent(in)  this,
type(single_medium_box_t), intent(inout)  medium_box,
type(grid_t), intent(in)  gr 
)
private

Evaluate electromagnetic properties of linear medium.

Definition at line 650 of file linear_medium.F90.

◆ get_points_map_from_file()

subroutine linear_medium_oct_m::get_points_map_from_file ( character(len=256), intent(in)  filename,
class(mesh_t), intent(in)  mesh,
integer, intent(out)  n_points,
integer, intent(out)  global_points_number,
integer, dimension(:), intent(inout)  tmp_map,
real(real64), intent(in), optional  scale_factor 
)
private

Populate list of point indices for points inside the polyhedron.

Definition at line 737 of file linear_medium.F90.

◆ medium_box_init()

subroutine, public linear_medium_oct_m::medium_box_init ( type(single_medium_box_t), intent(inout)  medium_box,
type(namespace_t), intent(in)  namespace 
)

Parse and store geometry of medium box.

Definition at line 780 of file linear_medium.F90.

Variable Documentation

◆ medium_parallelepiped

integer, parameter linear_medium_oct_m::medium_parallelepiped = 1
private

Definition at line 159 of file linear_medium.F90.

◆ medium_box_file

integer, parameter linear_medium_oct_m::medium_box_file = 2
private

Definition at line 159 of file linear_medium.F90.