Octopus
mxll_e_field_to_matter.F90
Go to the documentation of this file.
1!! Copyright (C) 2022 F. Bonafé
2!!
3!! This program is free software; you can redistribute it and/or modify
4!! it under the terms of the GNU General Public License as published by
5!! the Free Software Foundation; either version 2, or (at your option)
6!! any later version.
7!!
8!! This program is distributed in the hope that it will be useful,
9!! but WITHOUT ANY WARRANTY; without even the implied warranty of
10!! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11!! GNU General Public License for more details.
12!!
13!! You should have received a copy of the GNU General Public License
14!! along with this program; if not, write to the Free Software
15!! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16!! 02110-1301, USA.
17!!
18#include "global.h"
19
21 use debug_oct_m
23 use global_oct_m
25
26 implicit none
27
28 private
29 public :: &
31
41 private
42 integer, public :: type
43 contains
46
47
50 end interface mxll_e_field_to_matter_t
51
52 integer, public, parameter :: &
53 MXLL_FIELD_NONE = -1, &
54 mxll_field_total = 0, &
55 mxll_field_trans = 1, &
56 mxll_field_long = 2, &
58
59contains
60
61 function mxll_e_field_to_matter_constructor(partner) result(this)
62 class(interaction_partner_t), target, intent(inout) :: partner
63 class(mxll_e_field_to_matter_t), pointer :: this
64
66
67 allocate(this)
68
69 this%label = "mxll_e_field_to_matter"
70 this%partner => partner
71
72 this%couplings_from_partner = ["E field"]
73 this%type = mxll_field_none
74
75 this%intra_interaction = .false.
76
79
80! ---------------------------------------------------------
81 subroutine mxll_e_field_to_matter_finalize(this)
82 type(mxll_e_field_to_matter_t), intent(inout) :: this
83
85
86 call this%end()
87
90
92
93!! Local Variables:
94!! mode: f90
95!! coding: utf-8
96!! End:
This module implements the field transfer.
This module defines classes and functions for interaction partners.
class(mxll_e_field_to_matter_t) function, pointer mxll_e_field_to_matter_constructor(partner)
integer, parameter, public mxll_field_total
integer, parameter, public mxll_vec_pot_trans
integer, parameter, public mxll_field_trans
integer, parameter, public mxll_field_long
class defining the field_transfer interaction
class to transfer a Maxwell field to a medium