Octopus
maxwell_function_oct_m Module Reference

Detailed Description


This module defines "Maxwell functions", to be used by

the Maxwell module especially for Maxwell incident waves

Data Types

interface  mxf
 
type  mxf_t
 

Functions/Subroutines

subroutine, public mxf_read (f, namespace, function_name, ierr)
 This function initializes "f" from the MXFunctions block. More...
 
subroutine, public mxf_init (f)
 
logical function, public mxf_is_empty (f)
 
subroutine, public mxf_init_const_wave (f, a0, k_vector, r0)
 
subroutine, public mxf_init_const_phase (f, a0, k_vector, r0)
 
subroutine, public mxf_init_gaussian_wave (f, a0, k_vector, r0, width)
 
subroutine, public mxf_init_cosinoidal_wave (f, a0, k_vector, r0, width)
 
subroutine mxf_init_logistic_wave (f, a0, k_vector, r0, growth, width)
 
subroutine mxf_init_trapezoidal_wave (f, a0, k_vector, r0, growth, width)
 
subroutine, public mxf_init_fromexpr (f, k_vector, expression)
 
complex(real64) function mxf_envelope_eval (f, x)
 Evaluation of envelope itself. More...
 
complex(real64) function mxf_eval (f, x, phi)
 Evaluation of spatial envelope Functions. More...
 

Variables

integer, parameter, public mxf_empty = 10001
 
integer, parameter, public mxf_const_wave = 10002
 
integer, parameter, public mxf_const_phase = 10004
 
integer, parameter, public mxf_gaussian_wave = 10005
 
integer, parameter, public mxf_cosinoidal_wave = 10006
 
integer, parameter, public mxf_logistic_wave = 10007
 
integer, parameter, public mxf_trapezoidal_wave = 10008
 
integer, parameter, public mxf_from_file = 10009
 
integer, parameter, public mxf_numerical = 10010
 
integer, parameter, public mxf_from_expr = 10011
 
integer, parameter, public mxf_fourier_series = 10012
 
integer, parameter, public mxf_zero_fourier = 10013
 

Function/Subroutine Documentation

◆ mxf_read()

subroutine, public maxwell_function_oct_m::mxf_read ( type(mxf_t), intent(inout)  f,
type(namespace_t), intent(in)  namespace,
character(len=*), intent(in)  function_name,
integer, intent(out)  ierr 
)

This function initializes "f" from the MXFunctions block.

Parameters
[out]ierrError code, 0 on success.

Definition at line 189 of file maxwell_function.F90.

◆ mxf_init()

subroutine, public maxwell_function_oct_m::mxf_init ( type(mxf_t), intent(inout)  f)

Definition at line 377 of file maxwell_function.F90.

◆ mxf_is_empty()

logical function, public maxwell_function_oct_m::mxf_is_empty ( type(mxf_t), intent(in)  f)

Definition at line 392 of file maxwell_function.F90.

◆ mxf_init_const_wave()

subroutine, public maxwell_function_oct_m::mxf_init_const_wave ( type(mxf_t), intent(inout)  f,
real(real64), intent(in)  a0,
real(real64), dimension(3), intent(in)  k_vector,
real(real64), dimension(3), intent(in)  r0 
)

Definition at line 404 of file maxwell_function.F90.

◆ mxf_init_const_phase()

subroutine, public maxwell_function_oct_m::mxf_init_const_phase ( type(mxf_t), intent(inout)  f,
real(real64), intent(in)  a0,
real(real64), dimension(3), intent(in)  k_vector,
real(real64), dimension(3), intent(in)  r0 
)

Definition at line 421 of file maxwell_function.F90.

◆ mxf_init_gaussian_wave()

subroutine, public maxwell_function_oct_m::mxf_init_gaussian_wave ( type(mxf_t), intent(inout)  f,
real(real64), intent(in)  a0,
real(real64), dimension(3), intent(in)  k_vector,
real(real64), dimension(3), intent(in)  r0,
real(real64), intent(in)  width 
)

Definition at line 438 of file maxwell_function.F90.

◆ mxf_init_cosinoidal_wave()

subroutine, public maxwell_function_oct_m::mxf_init_cosinoidal_wave ( type(mxf_t), intent(inout)  f,
real(real64), intent(in)  a0,
real(real64), dimension(3), intent(in)  k_vector,
real(real64), dimension(3), intent(in)  r0,
real(real64), intent(in)  width 
)

Definition at line 456 of file maxwell_function.F90.

◆ mxf_init_logistic_wave()

subroutine maxwell_function_oct_m::mxf_init_logistic_wave ( type(mxf_t), intent(inout)  f,
real(real64), intent(in)  a0,
real(real64), dimension(3), intent(in)  k_vector,
real(real64), dimension(3), intent(in)  r0,
real(real64), intent(in)  growth,
real(real64), intent(in)  width 
)

Definition at line 474 of file maxwell_function.F90.

◆ mxf_init_trapezoidal_wave()

subroutine maxwell_function_oct_m::mxf_init_trapezoidal_wave ( type(mxf_t), intent(inout)  f,
real(real64), intent(in)  a0,
real(real64), dimension(3), intent(in)  k_vector,
real(real64), dimension(3), intent(in)  r0,
real(real64), intent(in)  growth,
real(real64), intent(in)  width 
)

Definition at line 493 of file maxwell_function.F90.

◆ mxf_init_fromexpr()

subroutine, public maxwell_function_oct_m::mxf_init_fromexpr ( type(mxf_t), intent(inout)  f,
real(real64), dimension(3), intent(in)  k_vector,
character(len=*), intent(in)  expression 
)

Definition at line 512 of file maxwell_function.F90.

◆ mxf_envelope_eval()

complex(real64) function maxwell_function_oct_m::mxf_envelope_eval ( type(mxf_t), intent(in)  f,
real(real64), dimension(:), intent(in)  x 
)

Evaluation of envelope itself.

This part uses the "spatial-dependent function" defined in MaxwellFunctions block. It calculates the value of the envelope solely, and feeds it to mxf_eval .

Parameters
[in]fspatial envelope function
[in]xposition

Definition at line 532 of file maxwell_function.F90.

◆ mxf_eval()

complex(real64) function maxwell_function_oct_m::mxf_eval ( type(mxf_t), intent(in)  f,
real(real64), dimension(:), intent(in)  x,
real(real64), intent(in), optional  phi 
)

Evaluation of spatial envelope Functions.

This part uses the "spatial-dependent function" defined in MaxwellFunctions block. This function is evaluated on the grid point and the 'spatially-enveloped' value of the field is returned. In plane wave, spatial part is evaluated in mxf_eval, while for other forms solely envelope is evaluated

Parameters
[in]fspatial envelope function
[in]xposition
[in]phiphase, optional

Definition at line 613 of file maxwell_function.F90.

Variable Documentation

◆ mxf_empty

integer, parameter, public maxwell_function_oct_m::mxf_empty = 10001

Definition at line 149 of file maxwell_function.F90.

◆ mxf_const_wave

integer, parameter, public maxwell_function_oct_m::mxf_const_wave = 10002

Definition at line 149 of file maxwell_function.F90.

◆ mxf_const_phase

integer, parameter, public maxwell_function_oct_m::mxf_const_phase = 10004

Definition at line 149 of file maxwell_function.F90.

◆ mxf_gaussian_wave

integer, parameter, public maxwell_function_oct_m::mxf_gaussian_wave = 10005

Definition at line 149 of file maxwell_function.F90.

◆ mxf_cosinoidal_wave

integer, parameter, public maxwell_function_oct_m::mxf_cosinoidal_wave = 10006

Definition at line 149 of file maxwell_function.F90.

◆ mxf_logistic_wave

integer, parameter, public maxwell_function_oct_m::mxf_logistic_wave = 10007

Definition at line 149 of file maxwell_function.F90.

◆ mxf_trapezoidal_wave

integer, parameter, public maxwell_function_oct_m::mxf_trapezoidal_wave = 10008

Definition at line 149 of file maxwell_function.F90.

◆ mxf_from_file

integer, parameter, public maxwell_function_oct_m::mxf_from_file = 10009

Definition at line 149 of file maxwell_function.F90.

◆ mxf_numerical

integer, parameter, public maxwell_function_oct_m::mxf_numerical = 10010

Definition at line 149 of file maxwell_function.F90.

◆ mxf_from_expr

integer, parameter, public maxwell_function_oct_m::mxf_from_expr = 10011

Definition at line 149 of file maxwell_function.F90.

◆ mxf_fourier_series

integer, parameter, public maxwell_function_oct_m::mxf_fourier_series = 10012

Definition at line 149 of file maxwell_function.F90.

◆ mxf_zero_fourier

integer, parameter, public maxwell_function_oct_m::mxf_zero_fourier = 10013

Definition at line 149 of file maxwell_function.F90.