Octopus
modelmb_exchange_syms.F90
Go to the documentation of this file.
1!! Copyright (C) 2009 N. Helbig and M. Verstraete
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
19#include "global.h"
20
22 use batch_oct_m
23 use debug_oct_m
24 use global_oct_m
25 use index_oct_m
26 use, intrinsic :: iso_fortran_env
27 use mesh_oct_m
33 use space_oct_m
36 use young_oct_m
37
38 implicit none
39
40 private
41
42 public :: &
48
49contains
50
51#include "real.F90"
52#include "modelmb_exchange_syms_inc.F90"
53#include "undef.F90"
54
55#include "complex.F90"
56#include "modelmb_exchange_syms_inc.F90"
57#include "undef.F90"
58
59 subroutine modelmb_sym_all_states(space, mesh, st)
60 class(mesh_t), intent(in) :: mesh
61 class(space_t), intent(in) :: space
62 type(states_elec_t), intent(inout) :: st
63
65
66 if (st%parallel_in_states) then
67 call messages_not_implemented("Model MB parallel in states")
68 end if
69
70 if (states_are_complex(st)) then
71 call zmodelmb_sym_all_states(space, mesh, st)
72 else
73 call dmodelmb_sym_all_states(space, mesh, st)
74 end if
75
77 end subroutine modelmb_sym_all_states
78
80
81!! Local Variables:
82!! mode: f90
83!! coding: utf-8
84!! End:
This module implements batches of mesh functions.
Definition: batch.F90:133
This module implements the index, used for the mesh points.
Definition: index.F90:122
This module defines functions over batches of mesh functions.
Definition: mesh_batch.F90:116
This module defines the meshes, which are used in Octopus.
Definition: mesh.F90:118
subroutine, public messages_not_implemented(feature, namespace)
Definition: messages.F90:1125
subroutine, public dmodelmb_sym_all_states(space, mesh, st)
routine to loop over projection of all states wrt fermionic or bosonic character
subroutine, public dmodelmb_sym_state(space, mesh, modelmbparticles, ncombo, young_used, wf, symmetries_satisfied, tproj_1yd, nspindown_out, iyoung_out, norm)
project out states with proper symmetry for cases which are of symmetry = unknown
subroutine, public zmodelmb_sym_state(space, mesh, modelmbparticles, ncombo, young_used, wf, symmetries_satisfied, tproj_1yd, nspindown_out, iyoung_out, norm)
project out states with proper symmetry for cases which are of symmetry = unknown
subroutine, public zmodelmb_sym_all_states(space, mesh, st)
routine to loop over projection of all states wrt fermionic or bosonic character
subroutine, public modelmb_sym_all_states(space, mesh, st)
general module for modelmb particles
pure logical function, public states_are_complex(st)