92#include "../base/base_uses.f90"
98 CHARACTER(len=*),
PARAMETER,
PRIVATE :: moduleN =
'tmc_worker'
103 INTEGER,
PARAMETER :: DEBUG = 0
118 CHARACTER(LEN=*),
PARAMETER :: routinen =
'do_tmc_worker'
120 CHARACTER(LEN=default_string_length) :: c_tmp
121 INTEGER :: calc_stat, handle, i1, i2, ierr, itmp, &
123 INTEGER,
DIMENSION(:),
POINTER :: ana_restart_conf
124 LOGICAL :: flag, master
131 NULLIFY (conf, para_env_m_w, ana_restart_conf)
133 cpassert(
ASSOCIATED(tmc_env))
136 CALL timeset(routinen, handle)
139 IF (tmc_env%tmc_comp_set%group_nr > 0)
THEN
140 cpassert(
ASSOCIATED(tmc_env%tmc_comp_set%para_env_sub_group))
141 IF (tmc_env%w_env%env_id_ener > 0)
THEN
142 itmp = tmc_env%w_env%env_id_ener
144 itmp = tmc_env%w_env%env_id_approx
148 atoms=tmc_env%params%atoms, cell=tmc_env%params%cell)
149 para_env_m_w => tmc_env%tmc_comp_set%para_env_m_w
153 cpassert(
ASSOCIATED(tmc_env%tmc_comp_set%para_env_m_ana))
154 para_env_m_w => tmc_env%tmc_comp_set%para_env_m_ana
162 IF (tmc_env%tmc_comp_set%group_nr > 0)
THEN
163 IF (tmc_env%w_env%env_id_ener > 0)
THEN
164 itmp = tmc_env%w_env%env_id_ener
166 itmp = tmc_env%w_env%env_id_approx
170 IF (tmc_env%params%use_scf_energy_info)
THEN
171 CALL set_intermediate_info_comm(env_id=itmp, &
172 comm=tmc_env%tmc_comp_set%para_env_m_w)
174 IF (tmc_env%params%SPECULATIVE_CANCELING)
THEN
188 para_env=para_env_m_w, &
189 result_count=ana_restart_conf, &
190 tmc_params=tmc_env%params, elem=conf)
193 WRITE (tmc_env%w_env%io_unit, *)
"worker: group master of group ", &
194 tmc_env%tmc_comp_set%group_nr,
"got task ", work_stat
197 SELECT CASE (work_stat)
204 para_env=tmc_env%tmc_comp_set%para_env_sub_group, &
205 tmc_params=tmc_env%params)
211 para_env=para_env_m_w, &
212 tmc_params=tmc_env%params)
215 WRITE (tmc_env%w_env%io_unit, *)
"master worker of group", &
216 tmc_env%tmc_comp_set%group_nr,
" exit work time."
218 EXIT master_work_time
221 IF (tmc_env%w_env%env_id_ener > 0)
THEN
222 itmp = tmc_env%w_env%env_id_ener
224 itmp = tmc_env%w_env%env_id_approx
233 para_env=para_env_m_w, &
234 tmc_params=tmc_env%params, elem=conf, &
235 wait_for_message=.true.)
237 IF (
ASSOCIATED(tmc_env%tmc_comp_set%para_env_m_first_w))
THEN
240 para_env=tmc_env%tmc_comp_set%para_env_m_first_w)
244 cpassert(tmc_env%w_env%env_id_approx > 0)
249 para_env=tmc_env%tmc_comp_set%para_env_sub_group, &
250 tmc_params=tmc_env%params, elem=conf)
252 env_id=tmc_env%w_env%env_id_approx, &
253 exact_approx_pot=.false., &
259 para_env=para_env_m_w, &
260 tmc_params=tmc_env%params, elem=conf)
267 para_env=tmc_env%tmc_comp_set%para_env_sub_group, &
268 tmc_params=tmc_env%params, elem=conf)
272 CALL nested_markov_chain_mc(conf=conf, &
273 env_id=tmc_env%w_env%env_id_approx, &
274 tmc_env=tmc_env, calc_status=calc_stat)
277 cpabort(
"there is no Hybrid MC implemented yet.")
280 cpabort(
"unknown task type for workers.")
286 para_env=para_env_m_w, &
287 tmc_params=tmc_env%params, &
289 SELECT CASE (calc_stat)
291 SELECT CASE (work_stat)
297 CALL cp_abort(__location__, &
298 "unknown work status after possible NMC subgroup "// &
304 CALL cp_abort(__location__, &
305 "unknown calc status before sending NMC result "// &
312 para_env=para_env_m_w, &
313 tmc_params=tmc_env%params, elem=conf)
315 cpassert(tmc_env%w_env%env_id_ener > 0)
320 para_env=tmc_env%tmc_comp_set%para_env_sub_group, &
321 tmc_params=tmc_env%params, elem=conf)
324 env_id=tmc_env%w_env%env_id_ener, &
325 exact_approx_pot=.true., &
332 para_env=para_env_m_w, &
333 tmc_params=tmc_env%params, success=flag)
334 SELECT CASE (calc_stat)
336 SELECT CASE (work_stat)
340 IF (tmc_env%params%print_dipole)
THEN
342 CALL get_result_r1(env_id=tmc_env%w_env%env_id_ener, &
343 description=c_tmp, n=3, result=conf%dipole, &
344 res_exist=flag, ierr=ierr)
345 IF (.NOT. flag) tmc_env%params%print_dipole = .false.
348 CALL cp_abort(__location__, &
349 "TMC: The requested dipoles are not porvided by the "// &
350 "force environment.")
354 CALL cp_abort(__location__, &
355 "energy worker should handle unknown stat "// &
361 CALL cp_abort(__location__, &
362 "worker while energy calc is in unknown state "// &
368 WRITE (tmc_env%w_env%io_unit, *)
"worker group ", &
369 tmc_env%tmc_comp_set%group_nr, &
370 "calculations done, send result energy", conf%potential
375 para_env=para_env_m_w, &
376 tmc_params=tmc_env%params, elem=conf)
378 cpassert(
ASSOCIATED(ana_restart_conf))
379 cpassert(
SIZE(ana_restart_conf) == tmc_env%params%nr_temp)
380 cpassert(
PRESENT(ana_list))
381 cpassert(
ASSOCIATED(ana_list))
384 source=itmp, para_env=tmc_env%tmc_comp_set%para_env_m_ana)
386 num_dim =
SIZE(conf%pos)
387 DO itmp = 1, tmc_env%params%nr_temp
389 ana_list(itmp)%temp%temperature = tmc_env%params%Temp(itmp)
390 ana_list(itmp)%temp%atoms => tmc_env%params%atoms
391 ana_list(itmp)%temp%cell => tmc_env%params%cell
394 CALL analysis_init(ana_env=ana_list(itmp)%temp, nr_dim=num_dim)
395 ana_list(itmp)%temp%print_test_output = tmc_env%params%print_test_output
396 IF (.NOT.
ASSOCIATED(conf))
THEN
398 next_el=conf, nr_dim=num_dim)
404 IF ((.NOT.
ASSOCIATED(ana_list(itmp)%temp%last_elem)) .AND. &
405 ana_restart_conf(itmp) > 0)
THEN
408 i2 = ana_restart_conf(itmp)
409 CALL cp_warn(__location__, &
410 "analysis old trajectory up to "// &
412 ". Read trajectory file.")
413 ELSE IF (
ASSOCIATED(ana_list(itmp)%temp%last_elem))
THEN
414 IF (.NOT. (ana_list(itmp)%temp%last_elem%nr == ana_restart_conf(itmp)))
THEN
416 i1 = ana_list(itmp)%temp%last_elem%nr
417 i2 = ana_restart_conf(itmp)
418 CALL cp_warn(__location__, &
419 "analysis restart with the incorrect configuration "// &
421 " ana "//
cp_to_string(ana_list(itmp)%temp%last_elem%nr)// &
422 ". REread trajectory file.")
428 ana_env=ana_list(itmp)%temp, &
429 tmc_params=tmc_env%params)
433 cpassert(
PRESENT(ana_list))
434 cpassert(
ASSOCIATED(ana_list(conf%sub_tree_nr)%temp))
436 ana_env=ana_list(conf%sub_tree_nr)%temp)
441 para_env=para_env_m_w, &
442 tmc_params=tmc_env%params, elem=conf)
444 CALL cp_abort(__location__, &
445 "worker received unknown message task type "// &
450 WRITE (tmc_env%w_env%io_unit, *)
"worker: group ", &
451 tmc_env%tmc_comp_set%group_nr, &
452 "send back status:", work_stat
454 IF (
ASSOCIATED(conf))
THEN
457 END DO master_work_time
466 para_env=tmc_env%tmc_comp_set%para_env_sub_group, &
467 tmc_params=tmc_env%params, elem=conf)
469 SELECT CASE (work_stat)
475 EXIT worker_work_time
478 cpassert(tmc_env%w_env%env_id_approx > 0)
480 SELECT CASE (tmc_env%params%task_type)
482 IF (tmc_env%params%NMC_inp_file /=
"")
THEN
483 conf%box_scale(:) = 1.0_dp
485 env_id=tmc_env%w_env%env_id_approx, &
486 exact_approx_pot=.false., &
490 CALL cp_abort(__location__, &
491 "unknown task_type for participants in "// &
492 "START_CONF_RESULT request ")
499 CALL nested_markov_chain_mc(conf=conf, &
500 env_id=tmc_env%w_env%env_id_approx, &
501 tmc_env=tmc_env, calc_status=calc_stat)
504 cpabort(
"there is no Hybrid MC implemented yet.")
507 cpabort(
"unknown task type for workers.")
512 cpassert(tmc_env%w_env%env_id_approx > 0)
514 env_id=tmc_env%w_env%env_id_approx, &
515 exact_approx_pot=.false., &
519 cpassert(tmc_env%w_env%env_id_ener > 0)
521 env_id=tmc_env%w_env%env_id_ener, &
522 exact_approx_pot=.true., &
525 CALL cp_abort(__location__, &
526 "group participant got unknown working type "// &
529 IF (
ASSOCIATED(conf))
THEN
532 END DO worker_work_time
536 IF (
ASSOCIATED(tmc_env%tmc_comp_set%para_env_m_ana))
THEN
537 DO itmp = 1, tmc_env%params%nr_temp
539 IF (
ASSOCIATED(conf))
THEN
549 IF (tmc_env%tmc_comp_set%group_nr > 0)
THEN
552 IF (tmc_env%params%use_scf_energy_info)
THEN
553 IF (tmc_env%w_env%env_id_ener > 0)
THEN
554 itmp = tmc_env%w_env%env_id_ener
556 itmp = tmc_env%w_env%env_id_approx
558 CALL remove_intermediate_info_comm(env_id=itmp)
561 IF (
ASSOCIATED(tmc_env%tmc_comp_set%para_env_sub_group))
THEN
563 tmc_params=tmc_env%params)
569 para_env=para_env_m_w, &
570 tmc_params=tmc_env%params)
571 ELSE IF (
ASSOCIATED(tmc_env%tmc_comp_set%para_env_sub_group))
THEN
575 para_env=tmc_env%tmc_comp_set%para_env_sub_group, &
576 tmc_params=tmc_env%params)
580 WRITE (tmc_env%w_env%io_unit, *)
"worker ", &
581 tmc_env%tmc_comp_set%para_env_sub_group%mepos,
"of group ", &
582 tmc_env%tmc_comp_set%group_nr,
"stops working!"
585 IF (
PRESENT(ana_list))
THEN
586 DO itmp = 1, tmc_env%params%nr_temp
587 ana_list(itmp)%temp%atoms => null()
588 ana_list(itmp)%temp%cell => null()
591 IF (
ASSOCIATED(conf))
THEN
594 IF (
ASSOCIATED(ana_restart_conf))
DEALLOCATE (ana_restart_conf)
597 CALL timestop(handle)
612 SUBROUTINE nested_markov_chain_mc(conf, env_id, tmc_env, calc_status)
614 INTEGER,
INTENT(IN) :: env_id
616 INTEGER,
INTENT(OUT) :: calc_status
618 CHARACTER(LEN=*),
PARAMETER :: routinen =
'nested_markov_chain_MC'
620 INTEGER :: comm_dest, handle, substeps
621 LOGICAL :: accept, change_rejected, flag
622 REAL(kind=
dp) :: rnd_nr
623 TYPE(
tree_type),
POINTER :: last_acc_conf
625 NULLIFY (last_acc_conf)
627 cpassert(
ASSOCIATED(tmc_env))
628 cpassert(
ASSOCIATED(tmc_env%params))
629 cpassert(
ASSOCIATED(tmc_env%tmc_comp_set))
630 cpassert(
ALLOCATED(tmc_env%rng_stream))
631 cpassert(
ASSOCIATED(conf))
632 cpassert(conf%temp_created > 0)
633 cpassert(conf%temp_created <= tmc_env%params%nr_temp)
638 CALL timeset(routinen, handle)
641 next_el=last_acc_conf, nr_dim=
SIZE(conf%pos))
643 last_acc_conf%pos = conf%pos
644 last_acc_conf%box_scale = conf%box_scale
648 env_id=tmc_env%w_env%env_id_approx, exact_approx_pot=.false., &
651 nmc_steps:
DO substeps = 1, int(tmc_env%params%move_types%mv_size(
mv_type_nmc_moves, 1))
653 IF (
ASSOCIATED(tmc_env%tmc_comp_set%para_env_m_w))
THEN
659 para_env=tmc_env%tmc_comp_set%para_env_m_w, &
660 tmc_params=tmc_env%params, success=flag)
665 para_env=tmc_env%tmc_comp_set%para_env_sub_group, &
666 tmc_params=tmc_env%params)
667 SELECT CASE (calc_status)
674 CALL cp_abort(__location__, &
676 "in the NMC routine, expect only caneling status. ")
680 CALL tmc_env%rng_stream%set( &
681 bg=conf%rng_seed(:, :, 1), cg=conf%rng_seed(:, :, 2), &
682 ig=conf%rng_seed(:, :, 3))
684 move_types=tmc_env%params%nmc_move_types, &
685 rnd=tmc_env%rng_stream%next())
686 CALL tmc_env%rng_stream%get( &
687 bg=conf%rng_seed(:, :, 1), cg=conf%rng_seed(:, :, 2), &
688 ig=conf%rng_seed(:, :, 3))
692 move_types=tmc_env%params%nmc_move_types, &
693 rng_stream=tmc_env%rng_stream, &
694 elem=conf, mv_conf=1, new_subbox=.false., &
695 move_rejected=change_rejected)
702 CALL cp_abort(__location__, &
703 "Hybrid MC is not implemented yet, "// &
704 "(no MD section in TMC yet). ")
708 CALL prob_update(move_types=tmc_env%params%nmc_move_types, elem=conf, &
709 acc=.NOT. change_rejected, subbox=.true., &
710 prob_opt=tmc_env%params%esimate_acc_prob)
713 IF (.NOT. change_rejected)
THEN
715 env_id=tmc_env%w_env%env_id_approx, exact_approx_pot=.false., &
718 conf%e_pot_approx = huge(conf%e_pot_approx)
722 CALL tmc_env%rng_stream%set( &
723 bg=conf%rng_seed(:, :, 1), cg=conf%rng_seed(:, :, 2), &
724 ig=conf%rng_seed(:, :, 3))
725 rnd_nr = tmc_env%rng_stream%next()
726 CALL tmc_env%rng_stream%get( &
727 bg=conf%rng_seed(:, :, 1), cg=conf%rng_seed(:, :, 2), &
728 ig=conf%rng_seed(:, :, 3))
730 IF (.NOT. change_rejected)
THEN
732 tmc_params=tmc_env%params, &
733 temperature=tmc_env%params%Temp(conf%temp_created), &
734 diff_pot_check=.false., &
735 accept=accept, approx_ener=.true., rnd_nr=rnd_nr)
740 CALL prob_update(move_types=tmc_env%params%nmc_move_types, elem=conf, &
741 acc=accept, prob_opt=tmc_env%params%esimate_acc_prob)
744 IF (accept .AND. (.NOT. change_rejected))
THEN
745 last_acc_conf%pos = conf%pos
746 last_acc_conf%vel = conf%vel
747 last_acc_conf%e_pot_approx = conf%e_pot_approx
748 last_acc_conf%ekin = conf%ekin
749 last_acc_conf%ekin_before_md = conf%ekin_before_md
750 last_acc_conf%box_scale = conf%box_scale
752 conf%pos = last_acc_conf%pos
753 conf%vel = last_acc_conf%vel
754 conf%box_scale = last_acc_conf%box_scale
760 conf%pos = last_acc_conf%pos
761 conf%vel = last_acc_conf%vel
762 conf%e_pot_approx = last_acc_conf%e_pot_approx
763 conf%potential = 0.0_dp
764 conf%ekin = last_acc_conf%ekin
765 conf%ekin_before_md = last_acc_conf%ekin_before_md
770 CALL timestop(handle)
771 END SUBROUTINE nested_markov_chain_mc
786 CHARACTER(LEN=*),
PARAMETER :: routinen =
'get_initial_conf'
788 INTEGER :: handle, ierr, mol, ndim, nr_atoms
793 cpassert(.NOT.
ASSOCIATED(init_conf))
796 CALL timeset(routinen, handle)
799 CALL get_natom(env_id=env_id, n_atom=nr_atoms, ierr=ierr)
803 next_el=init_conf, nr_dim=ndim)
804 CALL get_pos(env_id=env_id, pos=init_conf%pos, n_el=
SIZE(init_conf%pos), &
812 loop_mol:
DO mol = 1,
SIZE(molecule_new%els(:))
813 init_conf%mol(molecule_new%els(mol)%first_atom: &
814 molecule_new%els(mol)%last_atom) = mol
818 CALL timestop(handle)
834 INTEGER :: iparticle, nr_atoms, nunits_tot
840 NULLIFY (f_env, subsys, particles)
844 cpassert(.NOT.
ASSOCIATED(atoms))
845 cpassert(.NOT.
ASSOCIATED(cell))
849 CALL force_env_get(f_env%force_env, subsys=subsys, cell=cell_tmp)
851 CALL cell_copy(cell_in=cell_tmp, cell_out=cell)
856 nunits_tot =
SIZE(particles%els(:))
857 IF (nunits_tot > 0)
THEN
858 DO iparticle = 1, nunits_tot
859 atoms(iparticle)%name = particles%els(iparticle)%atomic_kind%name
860 atoms(iparticle)%mass = particles%els(iparticle)%atomic_kind%mass
862 cpassert(iparticle - 1 == nr_atoms)
873 SUBROUTINE set_intermediate_info_comm(comm, env_id)
877 CHARACTER(LEN=default_string_length) :: description
878 REAL(kind=
dp),
DIMENSION(3) :: values
883 NULLIFY (results, subsys)
888 cpassert(
ASSOCIATED(f_env))
889 cpassert(
ASSOCIATED(f_env%force_env))
890 IF (.NOT.
ASSOCIATED(f_env%force_env%qs_env))
THEN
891 CALL cp_abort(__location__, &
892 "the intermediate SCF energy request can not be set "// &
893 "employing this force environment! ")
897 values(1) = real(comm%get_handle(), kind=
dp)
900 description =
"[EXT_SCF_ENER_COMM]"
905 CALL put_results(results, description=description, values=values)
906 END SUBROUTINE set_intermediate_info_comm
914 SUBROUTINE remove_intermediate_info_comm(env_id)
917 CHARACTER(LEN=default_string_length) :: description
922 NULLIFY (subsys, results)
927 cpassert(
ASSOCIATED(f_env))
928 cpassert(
ASSOCIATED(f_env%force_env))
929 IF (.NOT.
ASSOCIATED(f_env%force_env%qs_env))
THEN
930 CALL cp_abort(__location__, &
931 "the SCF intermediate energy communicator can not be "// &
935 description =
"[EXT_SCF_ENER_COMM]"
941 END SUBROUTINE remove_intermediate_info_comm
Handles all functions related to the CELL.
subroutine, public init_cell(cell, hmat, periodic)
Initialise/readjust a simulation cell after hmat has been changed.
Handles all functions related to the CELL.
subroutine, public cell_copy(cell_in, cell_out, tag)
Copy cell variable.
Routines to handle the external control of CP2K.
subroutine, public set_external_comm(comm, in_external_master_id, in_scf_energy_message_tag, in_exit_tag)
set the communicator to an external source or destination, to send messages (e.g. intermediate energi...
various routines to log and control the output. The idea is that decisions about where to log should ...
set of type/routines to handle the storage of results in force_envs
subroutine, public cp_results_erase(results, description, nval)
erase a part of result_list
set of type/routines to handle the storage of results in force_envs
types that represent a subsys, i.e. a part of the system
subroutine, public cp_subsys_get(subsys, ref_count, atomic_kinds, atomic_kind_set, particles, particle_set, local_particles, molecules, molecule_set, molecule_kinds, molecule_kind_set, local_molecules, para_env, colvar_p, shell_particles, core_particles, gci, multipoles, natom, nparticle, ncore, nshell, nkind, atprop, virial, results, cell, cell_ref, use_ref_cell)
returns information about various attributes of the given subsys
interface to use cp2k as library
subroutine, public f_env_get_from_id(f_env_id, f_env)
...
subroutine, public get_natom(env_id, n_atom, ierr)
returns the number of atoms in the given force env
subroutine, public get_pos(env_id, pos, n_el, ierr)
gets the positions of the particles
Interface for the force calculations.
integer function, public force_env_get_natom(force_env)
returns the number of atoms
recursive subroutine, public force_env_get(force_env, in_use, fist_env, qs_env, meta_env, fp_env, subsys, para_env, potential_energy, additional_potential, kinetic_energy, harmonic_shell, kinetic_shell, cell, sub_force_env, qmmm_env, qmmmx_env, eip_env, pwdft_env, globenv, input, force_env_section, method_name_id, root_section, mixed_env, nnp_env, embed_env, ipi_env)
returns various attributes about the force environment
Defines the basic variable types.
integer, parameter, public dp
integer, parameter, public default_string_length
Interface to the message passing library MPI.
represent a simple array based list of the given type
represent a simple array based list of the given type
module provides variables for the TMC analysis tool
module analyses element of the TMC tree element structure e.g. density, radial distribution function,...
subroutine, public analysis_restart_read(ana_env, elem)
read analysis restart file
subroutine, public finalize_tmc_analysis(ana_env)
call all the necessarry analysis printing routines
subroutine, public analyze_file_configurations(start_id, end_id, dir_ind, ana_env, tmc_params)
read the files and analyze the configurations
subroutine, public analysis_init(ana_env, nr_dim)
initialize all the necessarry analysis structures
subroutine, public do_tmc_analysis(elem, ana_env)
call all the necessarry analysis routines analysis the previous element with the weight of the differ...
subroutine, public analysis_restart_print(ana_env)
print analysis restart file
calculation section for TreeMonteCarlo
subroutine, public calc_potential_energy(conf, env_id, exact_approx_pot, tmc_env)
start the calculation of the energy (distinguish between exact and approximate)
set up the different message for different tasks A TMC message consists of 3 parts (messages) 1: firs...
subroutine, public tmc_message(msg_type, send_recv, dest, para_env, tmc_params, elem, elem_array, list_elem, result_count, wait_for_message, success)
tmc message handling, packing messages with integer and real data type. Send first info message with ...
subroutine, public communicate_atom_types(atoms, source, para_env)
routines send atom names to the global master (using broadcast in a specialized group consisting of t...
integer, parameter, public bcast_group
logical function, public check_if_group_master(para_env)
checks if the core is the group master
integer, parameter, public master_comm_id
subroutine, public stop_whole_group(para_env, worker_info, tmc_params)
send stop command to all group participants
logical, parameter, public send_msg
logical, parameter, public recv_msg
acceptance ratio handling of the different Monte Carlo Moves types For each move type and each temper...
subroutine, public clear_move_probs(move_types)
clear the statistics of accepting/rejection moves because worker statistics will be add separately on...
integer function, public select_random_move_type(move_types, rnd)
selects a move type related to the weighings and the entered rnd nr
subroutine, public prob_update(move_types, pt_el, elem, acc, subbox, prob_opt)
adaptation of acceptance probability of every kind of change/move and the overall acc prob,...
tree nodes creation, searching, deallocation, references etc.
integer, parameter, public mv_type_md
integer, parameter, public mv_type_nmc_moves
different move types are applied
subroutine, public change_pos(tmc_params, move_types, rng_stream, elem, mv_conf, new_subbox, move_rejected)
applying the preselected move type
tree nodes creation, searching, deallocation, references etc.
integer, parameter, public tmc_status_calculating
integer, parameter, public tmc_status_failed
integer, parameter, public tmc_stat_analysis_request
integer, parameter, public tmc_status_worker_init
integer, parameter, public tmc_stat_md_result
integer, parameter, public tmc_stat_md_request
integer, parameter, public tmc_stat_approx_energy_result
integer, parameter, public tmc_stat_start_conf_result
integer, parameter, public tmc_status_wait_for_new_task
integer, parameter, public tmc_stat_nmc_result
integer, parameter, public tmc_stat_analysis_result
integer, parameter, public task_type_mc
integer, parameter, public tmc_stat_init_analysis
integer, parameter, public tmc_stat_energy_result
integer, parameter, public tmc_stat_scf_step_ener_receive
integer, parameter, public tmc_stat_approx_energy_request
integer, parameter, public tmc_stat_start_conf_request
integer, parameter, public tmc_canceling_receipt
integer, parameter, public tmc_stat_energy_request
integer, parameter, public tmc_stat_nmc_request
integer, parameter, public tmc_status_stop_receipt
integer, parameter, public tmc_canceling_message
integer, parameter, public task_type_ideal_gas
tree nodes acceptance code is separated in 3 parts, first the acceptance criteria,...
subroutine, public acceptance_check(tree_element, parent_element, tmc_params, temperature, diff_pot_check, accept, rnd_nr, approx_ener)
standard Monte Carlo and 2 potential acceptance check acceptance check of move from old(last accepted...
tree nodes creation, deallocation, references etc.
subroutine, public deallocate_sub_tree_node(tree_elem)
deallocates an elements of the subtree element structure
subroutine, public allocate_new_sub_tree_node(tmc_params, next_el, nr_dim)
allocates an elements of the subtree element structure
module handles definition of the tree nodes for the global and the subtrees binary tree parent elemen...
module handles definition of the tree nodes for the global and the subtrees binary tree parent elemen...
subroutine, public allocate_tmc_atom_type(atoms, nr_atoms)
creates a structure for storing the atom informations
module contains the worker routine handling the communication and the calculation / creation of the c...
subroutine, public do_tmc_worker(tmc_env, ana_list)
worker get tasks form master and fulfill them
subroutine, public get_initial_conf(tmc_params, init_conf, env_id)
get the initial confuguration (pos,...)
subroutine, public get_atom_kinds_and_cell(env_id, atoms, cell)
get the pointer to the atoms, for easy handling
Type defining parameters related to the simulation cell.
contains arbitrary information which need to be stored
represents a system: atoms, molecules, their pos,vel,...
stores all the informations relevant to an mpi environment
represent a list of objects
represent a list of objects