Octopus
hamiltonian_mxll_oct_m Module Reference

Data Types

type  hamiltonian_mxll_t
 

Functions/Subroutines

subroutine, public hamiltonian_mxll_init (hm, namespace, gr, st)
 Initializing the Maxwell Hamiltonian. More...
 
subroutine, public hamiltonian_mxll_end (hm)
 
logical function, public hamiltonian_mxll_hermitian (hm)
 
subroutine, public hamiltonian_mxll_span (hm, delta, emin, namespace)
 
subroutine, public hamiltonian_mxll_adjoint (hm)
 
subroutine, public hamiltonian_mxll_not_adjoint (hm)
 
subroutine, public hamiltonian_mxll_update (this, time)
 Maxwell Hamiltonian update (here only the time is updated, can maybe be added to another routine) More...
 
real(real64) function, public hamiltonian_mxll_get_time (this)
 
logical pure function, public hamiltonian_mxll_apply_packed (this, mesh)
 
subroutine, public hamiltonian_mxll_apply_batch (hm, namespace, der, psib, hpsib, time, terms, set_bc)
 
subroutine, public hamiltonian_mxll_apply_simple (hm, namespace, mesh, psib, hpsib, terms, set_bc)
 
subroutine mxll_apply_pml_simple (hm, gradb)
 
subroutine, public mxll_update_pml_simple (hm, rs_stateb)
 
subroutine, public mxll_copy_pml_simple (hm, rs_stateb)
 
subroutine mxll_linear_medium_terms_simple (hm, rs_stateb)
 
subroutine, public dhamiltonian_mxll_apply (hm, namespace, mesh, psib, hpsib, terms, set_bc)
 Apply hamiltonian to real states (not possible) More...
 
subroutine, public zhamiltonian_mxll_apply (hm, namespace, mesh, psib, hpsib, terms, set_bc)
 Applying the Maxwell Hamiltonian on Maxwell states. More...
 
subroutine maxwell_hamiltonian_apply_fd (hm, der, psi, oppsi)
 Applying the Maxwell Hamiltonian on Maxwell states with finite difference. More...
 
subroutine maxwell_pml_hamiltonian (hm, der, psi, dir1, dir2, tmp)
 Maxwell Hamiltonian is updated for the PML calculation. More...
 
subroutine maxwell_pml_hamiltonian_medium (hm, der, psi, dir1, dir2, tmp)
 Maxwell Hamiltonian is updated for the PML calculation. More...
 
subroutine maxwell_pml_calculation_via_riemann_silberstein (hm, der, psi, pml_dir, field_dir, pml)
 Maxwell Hamiltonian is updated for the PML calculation via Riemann-Silberstein vector. More...
 
subroutine maxwell_pml_calculation_via_riemann_silberstein_medium (hm, der, psi, pml_dir, field_dir, pml)
 Maxwell Hamiltonian is updated for the PML calculation via Riemann-Silberstein vector with medium inside the box. More...
 
subroutine maxwell_medium_boundaries_calculation (hm, psi, oppsi)
 Maxwell Hamiltonian for medium boundaries. More...
 
subroutine maxwell_medium_boxes_calculation (hm, der, psi, oppsi)
 
subroutine, public dhamiltonian_mxll_magnus_apply (hm, namespace, mesh, psib, hpsib, vmagnus)
 Maxwell hamiltonian Magnus (not implemented) More...
 
subroutine, public zhamiltonian_mxll_magnus_apply (hm, namespace, mesh, psib, hpsib, vmagnus)
 Maxwell hamiltonian Magnus (not implemented) More...
 

Variables

integer, parameter, public faraday_ampere = 1
 
integer, parameter, public faraday_ampere_medium = 2
 
integer, parameter, public mxll_simple = 3
 

Function/Subroutine Documentation

◆ hamiltonian_mxll_init()

subroutine, public hamiltonian_mxll_oct_m::hamiltonian_mxll_init ( type(hamiltonian_mxll_t), intent(inout)  hm,
type(namespace_t), intent(in)  namespace,
type(grid_t), intent(inout), target  gr,
type(states_mxll_t), intent(inout), target  st 
)

Initializing the Maxwell Hamiltonian.

Definition at line 253 of file hamiltonian_mxll.F90.

◆ hamiltonian_mxll_end()

subroutine, public hamiltonian_mxll_oct_m::hamiltonian_mxll_end ( type(hamiltonian_mxll_t), intent(inout)  hm)

Definition at line 354 of file hamiltonian_mxll.F90.

◆ hamiltonian_mxll_hermitian()

logical function, public hamiltonian_mxll_oct_m::hamiltonian_mxll_hermitian ( class(hamiltonian_mxll_t), intent(in)  hm)

Definition at line 380 of file hamiltonian_mxll.F90.

◆ hamiltonian_mxll_span()

subroutine, public hamiltonian_mxll_oct_m::hamiltonian_mxll_span ( class(hamiltonian_mxll_t), intent(inout)  hm,
real(real64), dimension(:), intent(in)  delta,
real(real64), intent(in)  emin,
type(namespace_t), intent(in)  namespace 
)

Definition at line 397 of file hamiltonian_mxll.F90.

◆ hamiltonian_mxll_adjoint()

subroutine, public hamiltonian_mxll_oct_m::hamiltonian_mxll_adjoint ( type(hamiltonian_mxll_t), intent(inout)  hm)

Definition at line 433 of file hamiltonian_mxll.F90.

◆ hamiltonian_mxll_not_adjoint()

subroutine, public hamiltonian_mxll_oct_m::hamiltonian_mxll_not_adjoint ( type(hamiltonian_mxll_t), intent(inout)  hm)

Definition at line 447 of file hamiltonian_mxll.F90.

◆ hamiltonian_mxll_update()

subroutine, public hamiltonian_mxll_oct_m::hamiltonian_mxll_update ( type(hamiltonian_mxll_t), intent(inout)  this,
real(real64), intent(in), optional  time 
)

Maxwell Hamiltonian update (here only the time is updated, can maybe be added to another routine)

Definition at line 462 of file hamiltonian_mxll.F90.

◆ hamiltonian_mxll_get_time()

real(real64) function, public hamiltonian_mxll_oct_m::hamiltonian_mxll_get_time ( type(hamiltonian_mxll_t), intent(inout)  this)

Definition at line 476 of file hamiltonian_mxll.F90.

◆ hamiltonian_mxll_apply_packed()

logical pure function, public hamiltonian_mxll_oct_m::hamiltonian_mxll_apply_packed ( type(hamiltonian_mxll_t), intent(in)  this,
class(mesh_t), intent(in)  mesh 
)

Definition at line 485 of file hamiltonian_mxll.F90.

◆ hamiltonian_mxll_apply_batch()

subroutine, public hamiltonian_mxll_oct_m::hamiltonian_mxll_apply_batch ( type(hamiltonian_mxll_t), intent(in)  hm,
type(namespace_t), intent(in)  namespace,
type(derivatives_t), intent(in)  der,
type(batch_t), intent(inout), target  psib,
type(batch_t), intent(inout), target  hpsib,
real(real64), intent(in), optional  time,
integer, intent(in), optional  terms,
logical, intent(in), optional  set_bc 
)
Parameters
[in]set_bcIf set to .false. the boundary conditions are assumed to be set previously.

Definition at line 495 of file hamiltonian_mxll.F90.

◆ hamiltonian_mxll_apply_simple()

subroutine, public hamiltonian_mxll_oct_m::hamiltonian_mxll_apply_simple ( type(hamiltonian_mxll_t), intent(in)  hm,
type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  mesh,
type(batch_t), intent(inout), target  psib,
type(batch_t), intent(inout), target  hpsib,
integer, intent(in), optional  terms,
logical, intent(in), optional  set_bc 
)
Parameters
[in]set_bcIf set to .false. the boundary conditions are assumed to be set previously.

Definition at line 776 of file hamiltonian_mxll.F90.

◆ mxll_apply_pml_simple()

subroutine hamiltonian_mxll_oct_m::mxll_apply_pml_simple ( type(hamiltonian_mxll_t), intent(in), target  hm,
type(batch_t), dimension(1:hm%st%dim), intent(inout)  gradb 
)
private

Definition at line 818 of file hamiltonian_mxll.F90.

◆ mxll_update_pml_simple()

subroutine, public hamiltonian_mxll_oct_m::mxll_update_pml_simple ( type(hamiltonian_mxll_t), intent(inout)  hm,
type(batch_t), intent(inout)  rs_stateb 
)

Definition at line 875 of file hamiltonian_mxll.F90.

◆ mxll_copy_pml_simple()

subroutine, public hamiltonian_mxll_oct_m::mxll_copy_pml_simple ( type(hamiltonian_mxll_t), intent(inout)  hm,
type(batch_t), intent(inout)  rs_stateb 
)

Definition at line 934 of file hamiltonian_mxll.F90.

◆ mxll_linear_medium_terms_simple()

subroutine hamiltonian_mxll_oct_m::mxll_linear_medium_terms_simple ( type(hamiltonian_mxll_t), intent(in)  hm,
type(batch_t), intent(inout)  rs_stateb 
)
private

Definition at line 971 of file hamiltonian_mxll.F90.

◆ dhamiltonian_mxll_apply()

subroutine, public hamiltonian_mxll_oct_m::dhamiltonian_mxll_apply ( class(hamiltonian_mxll_t), intent(in)  hm,
type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  mesh,
class(batch_t), intent(inout), target  psib,
class(batch_t), intent(inout), target  hpsib,
integer, intent(in), optional  terms,
logical, intent(in), optional  set_bc 
)

Apply hamiltonian to real states (not possible)

Parameters
[in]set_bcIf set to .false. the boundary conditions are assumed to be set previously.

Definition at line 1038 of file hamiltonian_mxll.F90.

◆ zhamiltonian_mxll_apply()

subroutine, public hamiltonian_mxll_oct_m::zhamiltonian_mxll_apply ( class(hamiltonian_mxll_t), intent(in)  hm,
type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  mesh,
class(batch_t), intent(inout), target  psib,
class(batch_t), intent(inout), target  hpsib,
integer, intent(in), optional  terms,
logical, intent(in), optional  set_bc 
)

Applying the Maxwell Hamiltonian on Maxwell states.

Parameters
[in]set_bcIf set to .false. the boundary conditions are assumed to be set previously.

Definition at line 1054 of file hamiltonian_mxll.F90.

◆ maxwell_hamiltonian_apply_fd()

subroutine hamiltonian_mxll_oct_m::maxwell_hamiltonian_apply_fd ( type(hamiltonian_mxll_t), intent(in)  hm,
type(derivatives_t), intent(in)  der,
complex(real64), dimension(:,:), intent(inout)  psi,
complex(real64), dimension(:,:), intent(inout)  oppsi 
)
private

Applying the Maxwell Hamiltonian on Maxwell states with finite difference.

Definition at line 1100 of file hamiltonian_mxll.F90.

◆ maxwell_pml_hamiltonian()

subroutine hamiltonian_mxll_oct_m::maxwell_pml_hamiltonian ( type(hamiltonian_mxll_t), intent(in)  hm,
type(derivatives_t), intent(in)  der,
complex(real64), dimension(:,:), intent(inout)  psi,
integer, intent(in)  dir1,
integer, intent(in)  dir2,
complex(real64), dimension(:), intent(inout)  tmp 
)
private

Maxwell Hamiltonian is updated for the PML calculation.

Definition at line 1248 of file hamiltonian_mxll.F90.

◆ maxwell_pml_hamiltonian_medium()

subroutine hamiltonian_mxll_oct_m::maxwell_pml_hamiltonian_medium ( type(hamiltonian_mxll_t), intent(in)  hm,
type(derivatives_t), intent(in)  der,
complex(real64), dimension(:,:), intent(inout)  psi,
integer, intent(in)  dir1,
integer, intent(in)  dir2,
complex(real64), dimension(:,:), intent(inout)  tmp 
)
private

Maxwell Hamiltonian is updated for the PML calculation.

Definition at line 1272 of file hamiltonian_mxll.F90.

◆ maxwell_pml_calculation_via_riemann_silberstein()

subroutine hamiltonian_mxll_oct_m::maxwell_pml_calculation_via_riemann_silberstein ( type(hamiltonian_mxll_t), intent(in)  hm,
type(derivatives_t), intent(in)  der,
complex(real64), dimension(:,:), intent(inout)  psi,
integer, intent(in)  pml_dir,
integer, intent(in)  field_dir,
complex(real64), dimension(:), intent(inout)  pml 
)
private

Maxwell Hamiltonian is updated for the PML calculation via Riemann-Silberstein vector.

Definition at line 1296 of file hamiltonian_mxll.F90.

◆ maxwell_pml_calculation_via_riemann_silberstein_medium()

subroutine hamiltonian_mxll_oct_m::maxwell_pml_calculation_via_riemann_silberstein_medium ( type(hamiltonian_mxll_t), intent(in)  hm,
type(derivatives_t), intent(in)  der,
complex(real64), dimension(:,:), intent(inout)  psi,
integer, intent(in)  pml_dir,
integer, intent(in)  field_dir,
complex(real64), dimension(:,:), intent(inout)  pml 
)
private

Maxwell Hamiltonian is updated for the PML calculation via Riemann-Silberstein vector with medium inside the box.

Definition at line 1341 of file hamiltonian_mxll.F90.

◆ maxwell_medium_boundaries_calculation()

subroutine hamiltonian_mxll_oct_m::maxwell_medium_boundaries_calculation ( type(hamiltonian_mxll_t), intent(in)  hm,
complex(real64), dimension(:,:), intent(in)  psi,
complex(real64), dimension(:,:), intent(inout)  oppsi 
)
private

Maxwell Hamiltonian for medium boundaries.

Definition at line 1392 of file hamiltonian_mxll.F90.

◆ maxwell_medium_boxes_calculation()

subroutine hamiltonian_mxll_oct_m::maxwell_medium_boxes_calculation ( type(hamiltonian_mxll_t), intent(in)  hm,
type(derivatives_t), intent(in)  der,
complex(real64), dimension(:,:), intent(in)  psi,
complex(real64), dimension(:,:), intent(inout)  oppsi 
)
private

Definition at line 1454 of file hamiltonian_mxll.F90.

◆ dhamiltonian_mxll_magnus_apply()

subroutine, public hamiltonian_mxll_oct_m::dhamiltonian_mxll_magnus_apply ( class(hamiltonian_mxll_t), intent(in)  hm,
type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  mesh,
class(batch_t), intent(inout)  psib,
class(batch_t), intent(inout)  hpsib,
real(real64), dimension(:, :, :), intent(in)  vmagnus 
)

Maxwell hamiltonian Magnus (not implemented)

Definition at line 1517 of file hamiltonian_mxll.F90.

◆ zhamiltonian_mxll_magnus_apply()

subroutine, public hamiltonian_mxll_oct_m::zhamiltonian_mxll_magnus_apply ( class(hamiltonian_mxll_t), intent(in)  hm,
type(namespace_t), intent(in)  namespace,
class(mesh_t), intent(in)  mesh,
class(batch_t), intent(inout)  psib,
class(batch_t), intent(inout)  hpsib,
real(real64), dimension(:, :, :), intent(in)  vmagnus 
)

Maxwell hamiltonian Magnus (not implemented)

Definition at line 1531 of file hamiltonian_mxll.F90.

Variable Documentation

◆ faraday_ampere

integer, parameter, public hamiltonian_mxll_oct_m::faraday_ampere = 1

Definition at line 244 of file hamiltonian_mxll.F90.

◆ faraday_ampere_medium

integer, parameter, public hamiltonian_mxll_oct_m::faraday_ampere_medium = 2

Definition at line 244 of file hamiltonian_mxll.F90.

◆ mxll_simple

integer, parameter, public hamiltonian_mxll_oct_m::mxll_simple = 3

Definition at line 244 of file hamiltonian_mxll.F90.