Commit d54553aa authored by Lauri Himanen's avatar Lauri Himanen
Browse files

Added cell parsing to MD parser, added some general parsing to commonmatcher.

parent eaa6fd34
......@@ -24,7 +24,9 @@ class CommonMatcher(object):
self.cache_service = parser_context.cache_service
self.regex_f = "-?\d+\.\d+(?:E(?:\+|-)\d+)?" # Regex for a floating point value
self.regex_i = "-?\d+" # Regex for an integer
self.regex_word = "[^\s]+" # Regex for a single word. Can contain anything else but whitespace
self.regex_word = "[\S]+" # Regex for a single word. Can contain anything else but whitespace
self.regex_letter = "[^\W\d_]" # Regex for a single alphabetical letter
self.regex_eol = "[^\n]+" # Regex for a single alphabetical letter
self.section_method_index = None
self.section_system_index = None
......@@ -34,11 +36,12 @@ class CommonMatcher(object):
'x_cp2k_atoms': CachingLevel.ForwardAndCache,
'section_XC_functionals': CachingLevel.ForwardAndCache,
'self_interaction_correction_method': CachingLevel.Cache,
'x_cp2k_section_programinformation': CachingLevel.ForwardAndCache,
}
#=======================================================================
# Globally cached values
self.cache_service.add_cache_object("simulation_cell", single=False, update=False)
self.cache_service.add_cache_object("simulation_cell", single=False, update=True)
self.cache_service.add_cache_object("number_of_scf_iterations", 0)
self.cache_service.add_cache_object("atom_positions", single=False, update=True)
self.cache_service.add_cache_object("atom_labels", single=False, update=False)
......@@ -49,25 +52,72 @@ class CommonMatcher(object):
# SimpleMatcher for the header that is common to all run types
def header(self):
return SM(r" DBCSR\| Multiplication driver",
return SM( " DBCSR\| Multiplication driver",
forwardMatch=True,
subMatchers=[
SM( r" DBCSR\| Multiplication driver",
SM( " DBCSR\| Multiplication driver",
forwardMatch=True,
sections=['x_cp2k_section_dbcsr'],
subMatchers=[
SM( " DBCSR\| Multiplication driver\s+(?P<x_cp2k_dbcsr_multiplication_driver>{})".format(self.regex_word)),
SM( " DBCSR\| Multrec recursion limit\s+(?P<x_cp2k_dbcsr_multrec_recursion_limit>{})".format(self.regex_i)),
SM( " DBCSR\| Multiplication stack size\s+(?P<x_cp2k_dbcsr_multiplication_stack_size>{})".format(self.regex_i)),
SM( " DBCSR\| Multiplication size stacks\s+(?P<x_cp2k_dbcsr_multiplication_size_stacks>{})".format(self.regex_i)),
SM( " DBCSR\| Use subcommunicators\s+(?P<x_cp2k_dbcsr_use_subcommunicators>{})".format(self.regex_letter)),
SM( " DBCSR\| Use MPI combined types\s+(?P<x_cp2k_dbcsr_use_mpi_combined_types>{})".format(self.regex_letter)),
SM( " DBCSR\| Use MPI memory allocation\s+(?P<x_cp2k_dbcsr_use_mpi_memory_allocation>{})".format(self.regex_letter)),
SM( " DBCSR\| Use Communication thread\s+(?P<x_cp2k_dbcsr_use_communication_thread>{})".format(self.regex_letter)),
SM( " DBCSR\| Communication thread load\s+(?P<x_cp2k_dbcsr_communication_thread_load>{})".format(self.regex_i)),
]
),
SM( r" \*\*\*\* \*\*\*\* \*\*\*\*\*\* \*\* PROGRAM STARTED AT\s+(?P<x_cp2k_run_start_date>\d{4}-\d{2}-\d{2}) (?P<x_cp2k_run_start_time>\d{2}:\d{2}:\d{2}.\d{3})",
SM( " **** **** ****** ** PROGRAM STARTED AT".replace("*", "\*"),
forwardMatch=True,
sections=['x_cp2k_section_startinformation'],
subMatchers=[
SM( " **** **** ****** ** PROGRAM STARTED AT\s+(?P<x_cp2k_start_time>{})".replace("*", "\*").format(self.regex_eol)),
SM( " ***** ** *** *** ** PROGRAM STARTED ON\s+(?P<x_cp2k_start_host>{})".replace("*", "\*").format(self.regex_word)),
SM( " ** **** ****** PROGRAM STARTED BY\s+(?P<x_cp2k_start_user>{})".replace("*", "\*").format(self.regex_word)),
SM( " ***** ** ** ** ** PROGRAM PROCESS ID\s+(?P<x_cp2k_start_id>{})".replace("*", "\*").format(self.regex_i)),
SM( " **** ** ******* ** PROGRAM STARTED IN".replace("*", "\*"),
forwardMatch=True,
adHoc=self.adHoc_run_dir(),
)
]
),
SM( r" CP2K\|",
SM( " CP2K\| version string:",
sections=['x_cp2k_section_programinformation'],
forwardMatch=True,
subMatchers=[
SM( r" CP2K\| version string:\s+(?P<program_version>[\w\d\W\s]+)"),
SM( r" CP2K\| source code revision number:\s+svn:(?P<x_cp2k_svn_revision>\d+)"),
SM( " CP2K\| version string:\s+(?P<program_version>{})".format(self.regex_eol)),
SM( " CP2K\| source code revision number:\s+svn:(?P<x_cp2k_svn_revision>\d+)"),
SM( " CP2K\| is freely available from{}".format(self.regex_word)),
SM( " CP2K\| Program compiled at{}".format(self.regex_word)),
SM( " CP2K\| Program compiled on{}".format(self.regex_word)),
SM( " CP2K\| Program compiled for{}".format(self.regex_word)),
SM( " CP2K\| Input file name\s+(?P<x_cp2k_input_filename>{})".format(self.regex_eol)),
]
),
SM( r" CP2K\| Input file name\s+(?P<x_cp2k_input_filename>.+$)",
sections=['x_cp2k_section_filenames'],
SM( " GLOBAL\|",
sections=['x_cp2k_section_global_settings'],
subMatchers=[
SM( " GLOBAL\| Force Environment number"),
SM( " GLOBAL\| Basis set file name\s+(?P<x_cp2k_basis_set_filename>{})".format(self.regex_eol)),
SM( " GLOBAL\| Geminal file name\s+(?P<x_cp2k_geminal_filename>{})".format(self.regex_eol)),
SM( " GLOBAL\| Potential file name\s+(?P<x_cp2k_potential_filename>{})".format(self.regex_eol)),
SM( " GLOBAL\| MM Potential file name\s+(?P<x_cp2k_mm_potential_filename>{})".format(self.regex_eol)),
SM( " GLOBAL\| Coordinate file name\s+(?P<x_cp2k_coordinate_filename>{})".format(self.regex_eol)),
SM( " GLOBAL\| Method name\s+(?P<x_cp2k_method_name>{})".format(self.regex_eol)),
SM( " GLOBAL\| Project name"),
SM( " GLOBAL\| Preferred FFT library\s+(?P<x_cp2k_preferred_fft_library>{})".format(self.regex_eol)),
SM( " GLOBAL\| Preferred diagonalization lib.\s+(?P<x_cp2k_preferred_diagonalization_library>{})".format(self.regex_eol)),
SM( " GLOBAL\| Run type\s+(?P<x_cp2k_run_type>{})".format(self.regex_eol)),
SM( " GLOBAL\| All-to-all communication in single precision"),
SM( " GLOBAL\| FFTs using library dependent lengths"),
SM( " GLOBAL\| Global print level"),
SM( " GLOBAL\| Total number of message passing processes"),
SM( " GLOBAL\| Number of threads for this process"),
SM( " GLOBAL\| This output is from process"),
],
otherMetaInfo=[
"section_XC_functionals",
'XC_functional_name',
......@@ -77,51 +127,11 @@ class CommonMatcher(object):
"stress_tensor_method",
"atom_positions",
],
subMatchers=[
SM( r" GLOBAL\| Basis set file name\s+(?P<x_cp2k_basis_set_filename>.+$)"),
SM( r" GLOBAL\| Geminal file name\s+(?P<x_cp2k_geminal_filename>.+$)"),
SM( r" GLOBAL\| Potential file name\s+(?P<x_cp2k_potential_filename>.+$)"),
SM( r" GLOBAL\| MM Potential file name\s+(?P<x_cp2k_mm_potential_filename>.+$)"),
SM( r" GLOBAL\| Coordinate file name\s+(?P<x_cp2k_coordinate_filename>.+$)"),
]
),
SM( " CELL\|",
adHoc=self.adHoc_x_cp2k_section_cell(),
otherMetaInfo=["simulation_cell"]
),
SM( " DFT\|",
otherMetaInfo=["self_interaction_correction_method"],
forwardMatch=True,
subMatchers=[
SM( " DFT\| Multiplicity\s+(?P<spin_target_multiplicity>{})".format(self.regex_i)),
SM( " DFT\| Charge\s+(?P<total_charge>{})".format(self.regex_i)),
SM( " DFT\| Self-interaction correction \(SIC\)\s+(?P<self_interaction_correction_method>[^\n]+)"),
]
),
SM( " Total number of",
forwardMatch=True,
sections=["x_cp2k_section_total_numbers"],
subMatchers=[
SM( " Total number of - Atomic kinds:\s+(?P<x_cp2k_atomic_kinds>\d+)"),
SM( "\s+- Atoms:\s+(?P<x_cp2k_atoms>\d+)",
otherMetaInfo=["number_of_atoms"],
),
SM( "\s+- Shell sets:\s+(?P<x_cp2k_shell_sets>\d+)"),
SM( "\s+- Shells:\s+(?P<x_cp2k_shells>\d+)"),
SM( "\s+- Primitive Cartesian functions:\s+(?P<x_cp2k_primitive_cartesian_functions>\d+)"),
SM( "\s+- Cartesian basis functions:\s+(?P<x_cp2k_cartesian_basis_functions>\d+)"),
SM( "\s+- Spherical basis functions:\s+(?P<x_cp2k_spherical_basis_functions>\d+)"),
]
),
SM( " Maximum angular momentum of",
forwardMatch=True,
sections=["x_cp2k_section_maximum_angular_momentum"],
subMatchers=[
SM( " Maximum angular momentum of- Orbital basis functions::\s+(?P<x_cp2k_orbital_basis_functions>\d+)"),
SM( "\s+- Local part of the GTH pseudopotential:\s+(?P<x_cp2k_local_part_of_gth_pseudopotential>\d+)"),
SM( "\s+- Non-local part of the GTH pseudopotential:\s+(?P<x_cp2k_non_local_part_of_gth_pseudopotential>\d+)"),
]
)
]
)
......@@ -177,13 +187,50 @@ class CommonMatcher(object):
# SimpleMatcher the stuff that is done to initialize a quickstep calculation
def quickstep_header(self):
return SM(
" MODULE QUICKSTEP: ATOMIC COORDINATES IN angstrom",
return SM( " *******************************************************************************".replace("*", "\*"),
forwardMatch=True,
subMatchers=[
SM( " DFT\|",
forwardMatch=True,
subMatchers=[
SM( " DFT\| Multiplicity\s+(?P<spin_target_multiplicity>{})".format(self.regex_i)),
SM( " DFT\| Charge\s+(?P<total_charge>{})".format(self.regex_i)),
SM( " DFT\| Self-interaction correction \(SIC\)\s+(?P<self_interaction_correction_method>[^\n]+)"),
],
otherMetaInfo=["self_interaction_correction_method"],
),
SM( " Total number of",
forwardMatch=True,
sections=["x_cp2k_section_total_numbers"],
subMatchers=[
SM( " Total number of - Atomic kinds:\s+(?P<x_cp2k_atomic_kinds>\d+)"),
SM( "\s+- Atoms:\s+(?P<x_cp2k_atoms>\d+)",
otherMetaInfo=["number_of_atoms"],
),
SM( "\s+- Shell sets:\s+(?P<x_cp2k_shell_sets>\d+)"),
SM( "\s+- Shells:\s+(?P<x_cp2k_shells>\d+)"),
SM( "\s+- Primitive Cartesian functions:\s+(?P<x_cp2k_primitive_cartesian_functions>\d+)"),
SM( "\s+- Cartesian basis functions:\s+(?P<x_cp2k_cartesian_basis_functions>\d+)"),
SM( "\s+- Spherical basis functions:\s+(?P<x_cp2k_spherical_basis_functions>\d+)"),
]
),
SM( " Maximum angular momentum of",
forwardMatch=True,
sections=["x_cp2k_section_maximum_angular_momentum"],
subMatchers=[
SM( " Maximum angular momentum of- Orbital basis functions::\s+(?P<x_cp2k_orbital_basis_functions>\d+)"),
SM( "\s+- Local part of the GTH pseudopotential:\s+(?P<x_cp2k_local_part_of_gth_pseudopotential>\d+)"),
SM( "\s+- Non-local part of the GTH pseudopotential:\s+(?P<x_cp2k_non_local_part_of_gth_pseudopotential>\d+)"),
]
),
SM( " MODULE QUICKSTEP: ATOMIC COORDINATES IN angstrom",
adHoc=self.adHoc_x_cp2k_section_quickstep_atom_information(),
otherMetaInfo=["atom_labels", "atom_positions"]
forwardMatch=True,
subMatchers=[
SM( " MODULE QUICKSTEP: ATOMIC COORDINATES IN angstrom",
adHoc=self.adHoc_x_cp2k_section_quickstep_atom_information(),
otherMetaInfo=["atom_labels", "atom_positions"]
)
]
)
]
)
......@@ -229,12 +276,13 @@ class CommonMatcher(object):
except:
pass
def onClose_x_cp2k_section_filenames(self, backend, gIndex, section):
"""
"""
# If the input file is available, parse it
def onClose_x_cp2k_section_programinformation(self, backend, gIndex, section):
input_file = section.get_latest_value("x_cp2k_input_filename")
filepath = self.file_service.get_absolute_path_to_file(input_file)
self.file_service.set_file_id(input_file, "input")
def onClose_x_cp2k_section_global_settings(self, backend, gIndex, section):
# If the input file is available, parse it
filepath = self.file_service.get_file_by_id("input")
if filepath is not None:
input_parser = CP2KInputParser(filepath, self.parser_context)
input_parser.parse()
......@@ -407,6 +455,27 @@ class CommonMatcher(object):
return wrapper
def adHoc_run_dir(self):
def wrapper(parser):
end_str = "\n"
end = False
path_array = []
# Loop through coordinates until the sum of forces is read
while not end:
line = parser.fIn.readline()
if line.startswith(end_str):
end = True
else:
path_part = line.split()[-1]
path_array.append(path_part)
# Form the final path and push to backend
path = "".join(path_array)
parser.backend.addValue("x_cp2k_start_path", path)
return wrapper
def debug(self):
def wrapper(parser):
print "FOUND"
......
......@@ -24,17 +24,16 @@ class CP2KMDParser(MainHierarchicalParser):
self.setup_common_matcher(CommonMatcher(parser_context))
self.traj_iterator = None
self.energy_iterator = None
self.cell_iterator = None
self.n_steps = None
self.output_freq = None
self.coord_freq = None
self.velo_freq = None
self.energy_freq = None
self.cell_freq = None
#=======================================================================
# Globally cached values
self.cache_service.add_cache_object("number_of_frames_in_sequence", 0)
self.cache_service.add_cache_object("frame_sequence_potential_energy", [])
self.cache_service.add_cache_object("frame_sequence_local_frames_ref", [])
#=======================================================================
# Cache levels
......@@ -162,6 +161,7 @@ class CP2KMDParser(MainHierarchicalParser):
self.energy_freq = section.get_latest_value("x_cp2k_md_energies_print_frequency")
self.coord_freq = section.get_latest_value("x_cp2k_md_coordinates_print_frequency")
self.velo_freq = section.get_latest_value("x_cp2k_md_velocities_print_frequency")
self.cell_freq = section.get_latest_value("x_cp2k_md_simulation_cell_print_frequency")
# Step number
self.n_steps = section.get_latest_value("x_cp2k_md_number_of_time_steps")
......@@ -170,8 +170,10 @@ class CP2KMDParser(MainHierarchicalParser):
coord_filename = section.get_latest_value("x_cp2k_md_coordinates_filename")
velocities_filename = section.get_latest_value("x_cp2k_md_velocities_filename")
energies_filename = section.get_latest_value("x_cp2k_md_energies_filename")
cell_filename = section.get_latest_value("x_cp2k_md_simulation_cell_filename")
self.file_service.set_file_id(coord_filename, "coordinates")
self.file_service.set_file_id(velocities_filename, "velocities")
cell_filepath = self.file_service.set_file_id(cell_filename, "cell")
energies_filepath = self.file_service.set_file_id(energies_filename, "energies")
# Setup trajectory iterator
......@@ -192,6 +194,10 @@ class CP2KMDParser(MainHierarchicalParser):
if energies_filepath is not None:
self.energy_iterator = cp2kparser.generic.csvparsing.iread(energies_filepath, columns=[0, 1, 2, 3, 4, 5, 6], comments="#")
# Setup cell file iterator
if cell_filepath is not None:
self.cell_iterator = cp2kparser.generic.csvparsing.iread(cell_filepath, columns=[2, 3, 4, 5, 6, 7, 8, 9, 10], comments="#")
def onClose_x_cp2k_section_md(self, backend, gIndex, section):
# Determine the highest print frequency and use that as the number of
......@@ -201,6 +207,7 @@ class CP2KMDParser(MainHierarchicalParser):
"coordinates": [self.coord_freq, True],
"velocities": [self.velo_freq, True],
"energies": [self.energy_freq, True],
"cell": [self.cell_freq, True],
}
# See if the files actually exist
......@@ -213,15 +220,9 @@ class CP2KMDParser(MainHierarchicalParser):
energies_file = self.file_service.get_file_by_id("energies")
if energies_file is None:
freqs["energies"][1] = False
# Determine the highest available frequency
max_freq = 0
for freq in freqs.itervalues():
if freq[0] is not None and freq[1] is not None:
if freq[0] > max_freq:
max_freq = freq[1]
else:
freq[1] = False
cell_file = self.file_service.get_file_by_id("cell")
if cell_file is None:
freqs["cell"][1] = False
# Trajectory print settings
add_last_traj = False
......@@ -278,6 +279,13 @@ class CP2KMDParser(MainHierarchicalParser):
backend.addValue("energy_total", conserved_quantity)
backend.addValue("time_calculation", wall_time)
# Cell file
if self.cell_iterator is not None:
if (i_step + 1) % freqs["cell"][0] == 0:
line = self.cell_iterator.next()
cell = np.reshape(line, (3, 3))
self.cache_service["simulation_cell"] = cell
# Output file
if md_steps:
if (i_step + 1) % freqs["output"][0] == 0:
......
# Step Nr. Time[fs] Kin.[a.u.] Temp[K] Pot.[a.u.] Cons Qty[a.u.] UsedTime[s]
0 0.000000 0.007125335 300.000000000 -34.336403530 -34.324047996 0.000000000
1 0.500000 0.007358038 309.797597156 -34.336638312 -34.324054403 2.979168899
2 1.000000 0.007414878 312.190722217 -34.336698674 -34.324056733 0.842197949
3 1.500000 0.007245416 305.055835462 -34.336539787 -34.324059082 1.418614861
4 2.000000 0.006832946 287.689475065 -34.336141815 -34.324057040 1.415143902
5 2.500000 0.006241331 262.780549510 -34.335562912 -34.324043992 1.398936698
6 3.000000 0.005685824 239.391887129 -34.335021181 -34.324022684 0.867581070
7 3.500000 0.005480859 230.762197167 -34.334844452 -34.324007616 1.268830910
8 4.000000 0.005835031 245.673981276 -34.335254239 -34.324014235 1.262329495
9 4.500000 0.006642601 279.675336061 -34.336142063 -34.324043595 1.263161745
10 5.000000 0.007478540 314.871094720 -34.337060810 -34.324078054 1.387408595
1 0.500000 0.007358038 309.797597156 -34.336638312 -34.324054403 2.884762674
2 1.000000 0.007414878 312.190722217 -34.336698674 -34.324056733 0.846901371
3 1.500000 0.007245416 305.055835462 -34.336539787 -34.324059082 1.401093733
4 2.000000 0.006832946 287.689475065 -34.336141815 -34.324057040 1.396403917
5 2.500000 0.006241331 262.780549510 -34.335562912 -34.324043992 1.396984484
6 3.000000 0.005685824 239.391887129 -34.335021181 -34.324022684 0.848225022
7 3.500000 0.005480859 230.762197167 -34.334844452 -34.324007616 1.259262077
8 4.000000 0.005835031 245.673981276 -34.335254239 -34.324014235 1.244773507
9 4.500000 0.006642601 279.675336061 -34.336142063 -34.324043595 1.243345618
10 5.000000 0.007478540 314.871094720 -34.337060810 -34.324078054 1.577752011
......@@ -73,4 +73,8 @@
PRESSURE 1
&END BAROSTAT
&END MD
&PRINT
&CELL MEDIUM
&END CELL
&END PRINT
&END MOTION
......@@ -9,10 +9,10 @@
DBCSR| Communication thread load 87
**** **** ****** ** PROGRAM STARTED AT 2016-06-08 14:46:55.207
**** **** ****** ** PROGRAM STARTED AT 2016-06-11 10:35:13.332
***** ** *** *** ** PROGRAM STARTED ON lauri-Lenovo-Z50-70
** **** ****** PROGRAM STARTED BY lauri
***** ** ** ** ** PROGRAM PROCESS ID 14709
***** ** ** ** ** PROGRAM PROCESS ID 5514
**** ** ******* ** PROGRAM STARTED IN /home/lauri/Dropbox/nomad-dev/nomad-l
ab-base/parsers/cp2k/test/unittests/c
p2k_2.6.2/md/npt
......@@ -45,13 +45,13 @@
MEMORY| system memory details [Kb]
MEMORY| rank 0 min max average
MEMORY| MemTotal 8070360 8070360 8070360 8070360
MEMORY| MemFree 1787192 1787192 1787192 1787192
MEMORY| Buffers 925448 925448 925448 925448
MEMORY| Cached 2599116 2599116 2599116 2599116
MEMORY| Slab 542952 542952 542952 542952
MEMORY| SReclaimable 503128 503128 503128 503128
MEMORY| MemLikelyFree 5814884 5814884 5814884 5814884
MEMORY| MemTotal 8070364 8070364 8070364 8070364
MEMORY| MemFree 2826576 2826576 2826576 2826576
MEMORY| Buffers 887736 887736 887736 887736
MEMORY| Cached 1753152 1753152 1753152 1753152
MEMORY| Slab 493820 493820 493820 493820
MEMORY| SReclaimable 457008 457008 457008 457008
MEMORY| MemLikelyFree 5924472 5924472 5924472 5924472
*** Fundamental physical constants (SI units) ***
......@@ -1018,7 +1018,7 @@
CONSERVED QUANTITY [hartree] = -0.343240544028E+02
INSTANTANEOUS AVERAGES
CPU TIME [s] = 2.98 2.98
CPU TIME [s] = 2.88 2.88
ENERGY DRIFT PER ATOM [K] = -0.337174401249E+00 0.000000000000E+00
POTENTIAL ENERGY[hartree] = -0.343366383116E+02 -0.343366383116E+02
KINETIC ENERGY [hartree] = 0.735803837990E-02 0.735803837990E-02
......@@ -1229,7 +1229,7 @@
CONSERVED QUANTITY [hartree] = -0.343240567328E+02
INSTANTANEOUS AVERAGES
CPU TIME [s] = 0.84 1.91
CPU TIME [s] = 0.85 1.87
ENERGY DRIFT PER ATOM [K] = -0.459802540657E+00 -0.229901270328E+00
POTENTIAL ENERGY[hartree] = -0.343366986739E+02 -0.343366684928E+02
KINETIC ENERGY [hartree] = 0.741487776862E-02 0.738645807426E-02
......@@ -1472,7 +1472,7 @@
CONSERVED QUANTITY [hartree] = -0.343240590823E+02
INSTANTANEOUS AVERAGES
CPU TIME [s] = 1.42 1.75
CPU TIME [s] = 1.40 1.71
ENERGY DRIFT PER ATOM [K] = -0.583452867095E+00 -0.347751802584E+00
POTENTIAL ENERGY[hartree] = -0.343365397866E+02 -0.343366255907E+02
KINETIC ENERGY [hartree] = 0.724541625225E-02 0.733944413359E-02
......@@ -1617,7 +1617,7 @@
Total charge density on r-space grids: 0.0000038259
Total charge density g-space grids: 0.0000038259
4 DIIS/Diag. 0.26E-04 0.2 0.00007385 -34.3361418148 -6.73E-08
4 DIIS/Diag. 0.26E-04 0.1 0.00007385 -34.3361418148 -6.73E-08
Trace(PS): 16.0000000000
Electronic density on regular grids: -15.9999961737 0.0000038263
......@@ -1715,7 +1715,7 @@
CONSERVED QUANTITY [hartree] = -0.343240570397E+02
INSTANTANEOUS AVERAGES
CPU TIME [s] = 1.42 1.66
CPU TIME [s] = 1.40 1.63
ENERGY DRIFT PER ATOM [K] = -0.475954806481E+00 -0.379802553558E+00
POTENTIAL ENERGY[hartree] = -0.343361418152E+02 -0.343365046468E+02
KINETIC ENERGY [hartree] = 0.683294582803E-02 0.721281955720E-02
......@@ -1958,7 +1958,7 @@
CONSERVED QUANTITY [hartree] = -0.343240439921E+02
INSTANTANEOUS AVERAGES
CPU TIME [s] = 1.40 1.61
CPU TIME [s] = 1.40 1.59
ENERGY DRIFT PER ATOM [K] = 0.210729076390E+00 -0.261696227569E+00
POTENTIAL ENERGY[hartree] = -0.343355629121E+02 -0.343363162999E+02
KINETIC ENERGY [hartree] = 0.624133107079E-02 0.701852185992E-02
......@@ -2169,7 +2169,7 @@
CONSERVED QUANTITY [hartree] = -0.343240226842E+02
INSTANTANEOUS AVERAGES
CPU TIME [s] = 0.87 1.49
CPU TIME [s] = 0.85 1.46
ENERGY DRIFT PER ATOM [K] = 0.133214493049E+01 0.394396544115E-02
POTENTIAL ENERGY[hartree] = -0.343350211809E+02 -0.343361004467E+02
KINETIC ENERGY [hartree] = 0.568582425915E-02 0.679640559312E-02
......@@ -2404,7 +2404,7 @@
CONSERVED QUANTITY [hartree] = -0.343240076158E+02
INSTANTANEOUS AVERAGES
CPU TIME [s] = 1.27 1.46
CPU TIME [s] = 1.26 1.43
ENERGY DRIFT PER ATOM [K] = 0.212518245839E+01 0.306978035863E+00
POTENTIAL ENERGY[hartree] = -0.343348444523E+02 -0.343359210189E+02
KINETIC ENERGY [hartree] = 0.548085949980E-02 0.660847043693E-02
......@@ -2639,7 +2639,7 @@
CONSERVED QUANTITY [hartree] = -0.343240142350E+02
INSTANTANEOUS AVERAGES
CPU TIME [s] = 1.26 1.43
CPU TIME [s] = 1.24 1.41
ENERGY DRIFT PER ATOM [K] = 0.177681961288E+01 0.490708232990E+00
POTENTIAL ENERGY[hartree] = -0.343352542387E+02 -0.343358376714E+02
KINETIC ENERGY [hartree] = 0.583503100013E-02 0.651179050733E-02
......@@ -2874,7 +2874,7 @@
CONSERVED QUANTITY [hartree] = -0.343240435951E+02
INSTANTANEOUS AVERAGES
CPU TIME [s] = 1.26 1.41
CPU TIME [s] = 1.24 1.39
ENERGY DRIFT PER ATOM [K] = 0.231625222982E+00 0.461921231878E+00
POTENTIAL ENERGY[hartree] = -0.343361420625E+02 -0.343358714926E+02
KINETIC ENERGY [hartree] = 0.664260109033E-02 0.652632501656E-02
......@@ -3043,7 +3043,7 @@
Total charge density on r-space grids: 0.0000040920
Total charge density g-space grids: 0.0000040920
7 DIIS/Diag. 0.18E-05 0.1 0.00000141 -34.3370608096 -3.66E-10
7 DIIS/Diag. 0.18E-05 0.2 0.00000141 -34.3370608096 -3.66E-10
Trace(PS): 16.0000000000
Electronic density on regular grids: -15.9999960152 0.0000039848
......@@ -3051,7 +3051,7 @@
Total charge density on r-space grids: 0.0000040920
Total charge density g-space grids: 0.0000040920
8 DIIS/Diag. 0.13E-06 0.1 0.00000039 -34.3370608096 -1.98E-12
8 DIIS/Diag. 0.13E-06 0.2 0.00000039 -34.3370608096 -1.98E-12
*** SCF run converged in 8 steps ***
......@@ -3117,7 +3117,7 @@
CONSERVED QUANTITY [hartree] = -0.343240780538E+02
INSTANTANEOUS AVERAGES
CPU TIME [s] = 1.39 1.41
CPU TIME [s] = 1.58 1.41
ENERGY DRIFT PER ATOM [K] = -0.158190851027E+01 0.257538257663E+00
POTENTIAL ENERGY[hartree] = -0.343370608096E+02 -0.343359904243E+02
KINETIC ENERGY [hartree] = 0.747853960438E-02 0.662154647534E-02
......@@ -3170,13 +3170,13 @@
ROUTINE CALLS TOT TIME [s] AVE VOLUME [Bytes] PERFORMANCE [MB/s]
MP_Group 45 0.000
MP_Bcast 111 0.001 5. 0.85
MP_Allreduce 1719 0.001 30. 40.90
MP_Bcast 111 0.001 5. 0.88
MP_Allreduce 1719 0.001 30. 43.37
MP_Sync 44 0.000
MP_Alltoall 2559 0.002 3665. 4984.88
MP_Alltoall 2559 0.002 3665. 5328.21
MP_Wait 3072 0.001
MP_ISend 1024 0.002 4431. 2454.15
MP_IRecv 1024 0.001 4431. 6810.65
MP_ISend 1024 0.002 4431. 2468.52
MP_IRecv 1024 0.001 4431. 7377.48
MP_Memory 2976 0.002
-------------------------------------------------------------------------------
......@@ -3259,47 +3259,47 @@
-------------------------------------------------------------------------------
SUBROUTINE CALLS ASD SELF TIME TOTAL TIME
MAXIMUM AVERAGE MAXIMUM AVERAGE MAXIMUM
CP2K 1 1.0 0.003 0.003 14.191 14.191
qs_mol_dyn_low 1 2.0 0.002 0.002 14.108 14.108
qs_forces 11 3.9 0.000 0.000 14.083 14.083
velocity_verlet 10 3.0 0.001 0.001 12.862 12.862
qs_energies_scf 11 4.9 0.000 0.000 12.087 12.087
CP2K 1 1.0 0.002 0.002 14.187 14.187
qs_mol_dyn_low 1 2.0 0.002 0.002 14.105 14.105
qs_forces 11 3.9 0.000 0.000 14.078 14.078
velocity_verlet 10 3.0 0.001 0.001 12.879 12.879
qs_energies_scf 11 4.9 0.000 0.000 12.072 12.072
scf_env_do_scf 11 5.9 0.000 0.000 10.978 10.978
scf_env_do_scf_inner_loop 83 6.9 0.007 0.007 10.978 10.978
rebuild_ks_matrix 94 8.5 0.000 0.000 7.058 7.058
qs_ks_build_kohn_sham_matrix 94 9.5 0.013 0.013 7.058 7.058
qs_ks_update_qs_env 83 7.9 0.001 0.001 5.770 5.770
qs_rho_update_rho 94 8.0 0.000 0.000 5.687 5.687
calculate_rho_elec 94 9.0 4.007 4.007 5.687 5.687
sum_up_and_integrate 94 10.5 0.022 0.022 5.153 5.153
integrate_v_rspace 94 11.5 4.158 4.158 5.131 5.131
fft_wrap_pw1pw2 951 11.9 0.008 0.008 3.150 3.150
fft_wrap_pw1pw2_100 387 12.4 0.136 0.136 2.797 2.797
fft3d_s 952 13.9 2.106 2.106 2.123 2.123
density_rs2pw 94 10.0 0.002 0.002 1.666 1.666
qs_ks_update_qs_env_forces 11 4.9 0.000 0.000 1.291 1.291
potential_pw2rs 94 12.5 0.004 0.004 0.962 0.962
qs_vxc_create 94 10.5 0.001 0.001 0.732 0.732
xc_vxc_pw_create 94 11.5 0.075 0.075 0.731 0.731
init_scf_run 11 5.9 0.001 0.001 0.721 0.721
scf_env_initial_rho_setup 11 6.9 0.000 0.000 0.717 0.717
wfi_extrapolate 11 7.9 0.000 0.000 0.673 0.673
qs_env_rebuild_pw_env 23 4.9 0.000 0.000 0.659 0.659
pw_env_rebuild 11 6.0 0.003 0.003 0.659 0.659
xc_rho_set_and_dset_create 94 12.5 0.002 0.002 0.655 0.655
xc_functional_eval 94 13.5 0.628 0.628 0.628 0.628
pw_grid_setup 44 7.0 0.026 0.026 0.605 0.605
pw_grid_sort 44 8.0 0.261 0.261 0.527 0.527
pw_gather_s 481 13.4 0.515 0.515 0.515 0.515
pw_poisson_solve 94 10.5 0.290 0.290 0.425 0.425
pw_scatter_s 470 14.4 0.356 0.356 0.356 0.356
fft_wrap_pw1pw2_40 188 13.2 0.011 0.011 0.294 0.294
rebuild_ks_matrix 94 8.5 0.000 0.000 7.079 7.079
qs_ks_build_kohn_sham_matrix 94 9.5 0.012 0.012 7.079 7.079
qs_ks_update_qs_env 83 7.9 0.001 0.001 5.768 5.768
qs_rho_update_rho 94 8.0 0.000 0.000 5.683 5.683
calculate_rho_elec 94 9.0 4.027 4.027 5.682 5.682
sum_up_and_integrate 94 10.5 0.023 0.023 5.152 5.152
integrate_v_rspace 94 11.5 4.174 4.174 5.130 5.130
fft_wrap_pw1pw2 951 11.9 0.007 0.007 3.113 3.113
fft_wrap_pw1pw2_100 387 12.4 0.134 0.134 2.762 2.762