72 integer,
parameter :: LR = 1,
fd = 2
79 type(namespace_t),
intent(in) :: namespace
118 subroutine run(namespace, calc_mode_id)
119 type(namespace_t),
intent(in) :: namespace
120 integer,
intent(in) :: calc_mode_id
122 type(partner_list_t) :: partners
123 class(system_t),
pointer :: systems
124 type(system_factory_t) :: system_factory
125 type(interactions_factory_t) :: interactions_factory
126 logical :: from_scratch
128 type(partner_iterator_t) :: iter
129 class(interaction_partner_t),
pointer :: partner
139 if (calc_mode_id == option__calculationmode__recipe)
then
154 if (calc_mode_id == option__calculationmode__test)
then
168 systems => electrons_t(namespace, generate_epot = calc_mode_id /= option__calculationmode__dummy)
172 call systems%init_parallelization(
mpi_world)
175 select type (systems)
178 partners = systems%list
187 type is (electrons_t)
188 call partners%add(systems)
192 select type (systems)
194 select case (calc_mode_id)
195 case (option__calculationmode__td)
205 call systems%create_interactions(interactions_factory, partners)
208 select type (systems)
212 iunit_out = io_open(
'debug/interaction_graph.dot', systems%namespace, action=
'write')
213 write(iunit_out,
'(a)')
'digraph {'
214 call systems%write_interaction_graph(iunit_out, debug%interaction_graph_full)
215 write(iunit_out,
'(a)')
'}'
216 call io_close(iunit_out)
220 if (.not. systems%process_is_slave())
then
236 call parse_variable(namespace,
'FromScratch', .false., from_scratch)
240 select case (calc_mode_id)
241 case (option__calculationmode__gs)
243 case (option__calculationmode__unocc)
245 case (option__calculationmode__td)
247 case (option__calculationmode__go)
249 case (option__calculationmode__opt_control)
251 case (option__calculationmode__em_resp)
258 case (option__calculationmode__casida)
260 case (option__calculationmode__vdw)
261 call vdw_run(systems, from_scratch)
262 case (option__calculationmode__vib_modes)
269 case (option__calculationmode__one_shot)
270 message(1) =
"CalculationMode = one_shot is obsolete. Please use gs with MaximumIter = 0."
272 case (option__calculationmode__kdotp)
274 case (option__calculationmode__dummy)
275 case (option__calculationmode__invert_ks)
277 case (option__calculationmode__recipe)
284 select type (systems)
287 call iter%start(partners)
288 do while (iter%has_next())
289 select type(ptr => iter%get_next())
292 safe_deallocate_p(partner)
295 safe_deallocate_p(partner)
298 safe_deallocate_p(partner)
304 safe_deallocate_p(systems)
320 select case (calc_mode_id)
321 case (option__calculationmode__gs, option__calculationmode__go, option__calculationmode__unocc)
323 case (option__calculationmode__td)
325 case (option__calculationmode__casida)
subroutine, public accel_init(base_grp, namespace)
subroutine, public accel_end(namespace)
This module implements the Casida equations for excited states.
subroutine, public casida_run_init()
subroutine, public casida_run(system, from_scratch)
subroutine, public em_resp_run(system, from_scratch)
subroutine, public load_external_potentials(external_potentials, namespace)
subroutine, public load_external_waves(partners, namespace)
Fast Fourier Transform module. This module provides a single interface that works with different FFT ...
subroutine, public fft_all_init(namespace)
initialize the table
subroutine, public fft_all_end()
delete all plans
subroutine, public geom_opt_run(system, from_scratch)
subroutine, public ground_state_run_init()
subroutine, public ground_state_run(system, from_scratch)
This module defines classes and functions for interaction partners.
subroutine, public invert_ks_run(system)
subroutine, public kdotp_lr_run(system, from_scratch)
subroutine, public load_lasers(partners, namespace)
subroutine, public messages_print_with_emphasis(msg, iunit, namespace)
character(len=512), private msg
subroutine, public messages_info(no_lines, iunit, verbose_limit, stress, all_nodes, namespace)
character(len=256), dimension(max_lines), public message
to be output by fatal, warning
subroutine, public messages_fatal(no_lines, only_root_writes, namespace)
subroutine, public messages_input_error(namespace, var, details, row, column)
subroutine, public mpi_debug_statistics()
logical function mpi_grp_is_root(grp)
Is the current MPI process of grpcomm, root.
type(mpi_grp_t), public mpi_world
This module handles the communicators for the various parallelization strategies.
This module implements the basic mulsisystem class, a container system for other systems.
This module implements the multisystem debug functionality.
type(namespace_t), public global_namespace
This module contains the main procedure ("opt_control_run") that is used when optimal control runs ar...
subroutine, public opt_control_run(system)
logical function, public parse_is_defined(namespace, name)
subroutine, public phonons_run(system)
subroutine, public phonons_lr_run(system, from_scratch)
subroutine, public profiling_out(label)
Increment out counter and sum up difference between entry and exit time.
subroutine, public profiling_in(label, exclude)
Increment in counter and save entry time.
This module implements the factory for propagators.
subroutine, public pulpo_print()
subroutine, public restart_module_init(namespace)
top level module for all calculation modes
integer function get_resp_method(namespace)
query input file for the response mode.
subroutine, public run(namespace, calc_mode_id)
main routine to run all calculations: This routine parses the input file, sets up the systems and int...
subroutine, public static_pol_run(system, from_scratch)
integer, parameter, public system_multisystem
container system. (multisystem_basic_oct_m::multisystem_basic_t)
This module implements the abstract system type.
subroutine, public td_run_init()
This module implements a unit-test like runmode for Octopus.
subroutine, public test_run(namespace)
subroutine, public time_dependent_run(system, from_scratch)
This module defines the unit system, used for input and output.
subroutine, public unit_system_init(namespace)
subroutine, public unocc_run(system, from_scratch)
subroutine, public vdw_run(system, from_scratch)
subroutine calc_mode_init()
Container class for lists of system_oct_m::system_t.
This class defines the factory for propagators.