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)
202 call systems%create_interactions(interactions_factory, partners)
205 select type (systems)
209 iunit_out = io_open(
'debug/interaction_graph.dot', systems%namespace, action=
'write')
210 write(iunit_out,
'(a)')
'digraph {'
211 call systems%write_interaction_graph(iunit_out, debug%interaction_graph_full)
212 write(iunit_out,
'(a)')
'}'
213 call io_close(iunit_out)
217 if (.not. systems%process_is_slave())
then
233 call parse_variable(namespace,
'FromScratch', .false., from_scratch)
237 select case (calc_mode_id)
238 case (option__calculationmode__gs)
240 case (option__calculationmode__unocc)
242 case (option__calculationmode__td)
244 case (option__calculationmode__go)
246 case (option__calculationmode__opt_control)
248 case (option__calculationmode__em_resp)
255 case (option__calculationmode__casida)
257 case (option__calculationmode__vdw)
258 call vdw_run(systems, from_scratch)
259 case (option__calculationmode__vib_modes)
266 case (option__calculationmode__one_shot)
267 message(1) =
"CalculationMode = one_shot is obsolete. Please use gs with MaximumIter = 0."
269 case (option__calculationmode__kdotp)
271 case (option__calculationmode__dummy)
272 case (option__calculationmode__invert_ks)
274 case (option__calculationmode__recipe)
281 select type (systems)
284 call iter%start(partners)
285 do while (iter%has_next())
286 select type(ptr => iter%get_next())
289 safe_deallocate_p(partner)
292 safe_deallocate_p(partner)
295 safe_deallocate_p(partner)
301 safe_deallocate_p(systems)
317 select case (calc_mode_id)
318 case (option__calculationmode__gs, option__calculationmode__go, option__calculationmode__unocc)
320 case (option__calculationmode__td)
322 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)
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.