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
26
27 implicit none
28
29 private
30 public :: &
32
42 private
43 integer, public :: type
44 contains
47
48
51 end interface mxll_e_field_to_matter_t
52
53 integer, public, parameter :: &
54 MXLL_FIELD_NONE = -1, &
55 mxll_field_total = 0, &
56 mxll_field_trans = 1, &
57 mxll_field_long = 2, &
59
60contains
61
62 function mxll_e_field_to_matter_constructor(partner) result(this)
63 class(interaction_partner_t), target, intent(inout) :: partner
64 class(mxll_e_field_to_matter_t), pointer :: this
65
67
68 allocate(this)
69
70 this%label = "mxll_e_field_to_matter"
71 this%partner => partner
72
73 this%couplings_from_partner = [e_field]
74 this%type = mxll_field_none
75
76 this%intra_interaction = .false.
77
80
81! ---------------------------------------------------------
82 subroutine mxll_e_field_to_matter_finalize(this)
83 type(mxll_e_field_to_matter_t), intent(inout) :: this
84
86
87 call this%end()
88
91
93
94!! Local Variables:
95!! mode: f90
96!! coding: utf-8
97!! 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
This module defines the quantity_t class and the IDs for quantities, which can be exposed by a system...
Definition: quantity.F90:137
integer, parameter, public e_field
Definition: quantity.F90:146
class defining the field_transfer interaction
class to transfer a Maxwell field to a medium