45 class(*),
intent(inout) :: system
46 logical,
intent(inout) :: from_scratch
62 class(multisystem_basic_t),
intent(inout) :: systems
63 logical,
intent(in) :: from_scratch
65 logical :: trigger_restart, stop_code, stop_loop
66 logical :: restart_read
76 call systems%init_iteration_counters()
77 if (.not. from_scratch)
then
78 restart_read = systems%restart_read()
80 restart_read = .false.
82 if (restart_read)
then
83 message(1) =
"Successfully read restart data for all system."
86 call systems%initial_conditions()
89 call systems%propagation_start()
95 do while (.not. systems%algorithm_finished())
97 call systems%execute_algorithm()
103 if (trigger_restart .and. .not. stop_loop)
then
104 call systems%start_barrier(systems%next_time_on_largest_dt(),
barrier_restart)
105 stop_loop = stop_code
106 trigger_restart = .false.
109 call systems%restart_write()
115 if (systems%algorithm_finished())
then
116 call systems%restart_write()
121 call systems%propagation_finish()
130 class(electrons_t),
intent(inout) :: electrons
131 logical,
intent(inout) :: from_scratch
135 call td_init(electrons%td, electrons%namespace, electrons%space, electrons%gr, electrons%ions, electrons%st, electrons%ks, &
136 electrons%hm, electrons%ext_partners, electrons%outp)
137 call td_init_run(electrons%td, electrons%namespace, electrons%mc, electrons%gr, electrons%ions, electrons%st, electrons%ks, &
138 electrons%hm, electrons%ext_partners, electrons%outp, electrons%space, from_scratch)
139 call td_run(electrons%td, electrons%namespace, electrons%mc, electrons%gr, electrons%ions, electrons%st, electrons%ks, &
140 electrons%hm, electrons%ext_partners, electrons%outp, electrons%space, from_scratch)
141 call td_end_run(electrons%td, electrons%st, electrons%hm)
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
This module implements the basic mulsisystem class, a container system for other systems.
This module implements the multisystem debug functionality.
subroutine, public multisystem_debug_write_marker(system_namespace, event)
subroutine, public multisystem_debug_init(filename, namespace, group)
subroutine, public multisystem_debug_end()
type(namespace_t), public global_namespace
logical function, public clean_stop(comm)
returns true if a file named stop exists
This module implements the abstract system type.
integer, parameter, public barrier_restart
subroutine, public td_end(td)
subroutine, public td_end_run(td, st, hm)
subroutine, public td_init(td, namespace, space, gr, ions, st, ks, hm, ext_partners, outp)
subroutine, public td_run(td, namespace, mc, gr, ions, st, ks, hm, ext_partners, outp, space, from_scratch)
subroutine, public td_init_run(td, namespace, mc, gr, ions, st, ks, hm, ext_partners, outp, space, from_scratch)
subroutine time_dependent_run_multisystem(systems, from_scratch)
subroutine time_dependent_run_legacy(electrons, from_scratch)
subroutine, public time_dependent_run(system, from_scratch)
This module provices a simple timer class which can be used to trigger the writing of a restart file ...
logical function, public walltimer_alarm(comm, print)
indicate whether time is up
logical function, public restart_walltime_period_alarm(comm)
Class describing the electron system.
Container class for lists of system_oct_m::system_t.