Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
nomad-lab
parser-cp2k
Commits
e00bb0ce
Commit
e00bb0ce
authored
Jun 16, 2016
by
Lauri Himanen
Browse files
Removed issue with multiple parents.
parent
43ad0095
Changes
4
Hide whitespace changes
Inline
Side-by-side
parser/parser-cp2k/cp2kparser/versions/cp2k262/commonmatcher.py
View file @
e00bb0ce
...
...
@@ -47,7 +47,7 @@ class CommonMatcher(object):
#=======================================================================
# Globally cached values
self
.
cache_service
.
add
(
"simulation_cell"
,
single
=
False
,
update
=
Tru
e
)
self
.
cache_service
.
add
(
"simulation_cell"
,
single
=
False
,
update
=
Fals
e
)
self
.
cache_service
.
add
(
"number_of_scf_iterations"
,
0
)
self
.
cache_service
.
add
(
"atom_positions"
,
single
=
False
,
update
=
True
)
self
.
cache_service
.
add
(
"atom_labels"
,
single
=
False
,
update
=
False
)
...
...
@@ -313,6 +313,12 @@ class CommonMatcher(object):
if
number_of_atoms
is
not
None
:
self
.
cache_service
[
"number_of_atoms"
]
=
number_of_atoms
# def onClose_x_cp2k_section_quickstep_calculation(self, backend, gIndex, section):
# print "quickstep CLOSED"
# def onClose_x_cp2k_section_geometry_optimization_step(self, backend, gIndex, section):
# print "Optimisation step CLOSED"
def
onClose_section_method
(
self
,
backend
,
gIndex
,
section
):
"""When all the functional definitions have been gathered, matches them
with the nomad correspondents and combines into one single string which
...
...
@@ -591,10 +597,10 @@ class CommonMatcher(object):
self
.
test_electronic_structure_method
=
"RPA"
return
wrapper
def
debug
(
self
):
def
wrapper
(
parser
):
print
(
"FOUND"
)
return
wrapper
#
def debug(self):
#
def wrapper(parser):
#
print("FOUND")
#
return wrapper
#===========================================================================
# MISC functions
...
...
parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py
View file @
e00bb0ce
...
...
@@ -19,6 +19,7 @@ class CP2KGeoOptParser(MainHierarchicalParser):
super
(
CP2KGeoOptParser
,
self
).
__init__
(
file_path
,
parser_context
)
self
.
setup_common_matcher
(
CommonMatcher
(
parser_context
))
self
.
traj_iterator
=
None
self
.
energy_reeval_quickstep
=
None
#=======================================================================
# Globally cached values
...
...
@@ -30,11 +31,10 @@ class CP2KGeoOptParser(MainHierarchicalParser):
#=======================================================================
# Cache levels
self
.
caching_level_for_metaname
.
update
({
'x_cp2k_optimization_energy'
:
CachingLevel
.
ForwardAndCache
,
'x_cp2k_section_geometry_optimization_step'
:
CachingLevel
.
ForwardAndCache
,
'x_cp2k_section_quickstep_calculation'
:
CachingLevel
.
ForwardAndCache
,
'x_cp2k_section_geometry_optimization'
:
CachingLevel
.
ForwardAndCache
,
'x_cp2k_section_geometry_optimization_energy_reevaluation'
:
CachingLevel
.
ForwardAndCache
,
#
'x_cp2k_section_geometry_optimization_energy_reevaluation': CachingLevel.ForwardAndCache,
})
#=======================================================================
...
...
@@ -73,7 +73,6 @@ class CP2KGeoOptParser(MainHierarchicalParser):
endReStr
=
" Conv. in RMS gradients ="
,
name
=
"geooptstep"
,
repeats
=
True
,
# sections=["section_single_configuration_calculation", "section_system"],
subMatchers
=
[
SM
(
""
,
forwardMatch
=
True
,
...
...
@@ -140,12 +139,19 @@ class CP2KGeoOptParser(MainHierarchicalParser):
otherMetaInfo
=
[
"geometry_optimization_converged"
]
),
SM
(
" Reevaluating energy at the minimum"
,
sections
=
[
"x_cp2k_section_geometry_optimization_energy_reevaluation"
],
#
sections=["x_cp2k_section_geometry_optimization_energy_reevaluation"],
subMatchers
=
[
self
.
cm
.
quickstep_calculation
(),
# SM("",
# adHoc=self.adHoc_save_energy_reeval_quickstep()
# )
],
# adHoc=self.adHoc_step()
# adHoc=self.adHoc_
save_energy_reeval_quick
step()
),
# SM( "",
# forwardMatch=True,
# adHoc=self.adHoc_save_energy_reeval_quickstep()
# )
],
)
...
...
@@ -173,13 +179,11 @@ class CP2KGeoOptParser(MainHierarchicalParser):
def
onClose_x_cp2k_section_geometry_optimization
(
self
,
backend
,
gIndex
,
section
):
# Get the re-evaluated energy and add it to frame_sequence_potential_energy
energy
=
section
.
get_latest_value
([
"x_cp2k_section_geometry_optimization_energy_reevaluation"
,
"x_cp2k_section_quickstep_calculation"
,
"x_cp2k_energy_total"
]
)
if
energy
is
not
None
:
self
.
cache_service
[
"frame_sequence_potential_energy"
].
append
(
energy
)
reeval_quickstep
=
self
.
energy_reeval_quickstep
if
reeval_quickstep
is
not
None
:
energy
=
reeval_quickstep
.
get_latest_value
(
"x_cp2k_energy_total"
)
if
energy
is
not
None
:
self
.
cache_service
[
"frame_sequence_potential_energy"
].
append
(
energy
)
# Push values from cache
self
.
cache_service
.
push_array_values
(
"frame_sequence_potential_energy"
)
...
...
@@ -231,6 +235,9 @@ class CP2KGeoOptParser(MainHierarchicalParser):
def
onClose_section_sampling_method
(
self
,
backend
,
gIndex
,
section
):
self
.
backend
.
addValue
(
"sampling_method"
,
"geometry_optimization"
)
def
onClose_x_cp2k_section_quickstep_calculation
(
self
,
backend
,
gIndex
,
section
):
self
.
energy_reeval_quickstep
=
section
def
onClose_x_cp2k_section_geometry_optimization_step
(
self
,
backend
,
gIndex
,
section
):
energy
=
section
[
"x_cp2k_optimization_energy"
]
if
energy
is
not
None
:
...
...
@@ -283,11 +290,18 @@ class CP2KGeoOptParser(MainHierarchicalParser):
self
.
cache_service
[
"geometry_optimization_method"
]
=
"bfgs"
return
wrapper
# def adHoc_step(self):
# """Called when all the step information has been retrieved from the
# output file. Here further information is gathered from external files.
# """
# def adHoc_save_energy_reeval_quickstep(self):
# def wrapper(parser):
# self.cache_service["number_of_frames_in_sequence"] += 1
# section_managers = parser.backend.sectionManagers
# section_run_manager = section_managers["section_run"]
# section_run = section_run_manager.openSections[0]
# print section_run.subSectionValues
# # quickstep = section_run.get_latest_value("x_cp2k_section_quickstep_calculation")
# # print quickstep
# # self.energy_reeval_quickstep = quickstep
# return wrapper
def
debug
(
self
):
def
wrapper
(
parser
):
print
"DEBUG"
return
wrapper
parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py
View file @
e00bb0ce
...
...
@@ -31,6 +31,7 @@ class CP2KMDParser(MainHierarchicalParser):
self
.
velo_freq
=
None
self
.
energy_freq
=
None
self
.
cell_freq
=
None
self
.
md_quicksteps
=
[]
#=======================================================================
# Globally cached values
...
...
@@ -88,10 +89,12 @@ class CP2KMDParser(MainHierarchicalParser):
SM
(
" INITIAL CELL LNTHS\[bohr\] =\s+(?P<x_cp2k_md_cell_length_a_instantaneous__bohr>{0})\s+(?P<x_cp2k_md_cell_length_b_instantaneous__bohr>{0})\s+(?P<x_cp2k_md_cell_length_c_instantaneous__bohr>{0})"
.
format
(
self
.
cm
.
regex_f
)),
SM
(
" INITIAL CELL ANGLS\[deg\] =\s+(?P<x_cp2k_md_cell_angle_a_instantaneous__deg>{0})\s+(?P<x_cp2k_md_cell_angle_b_instantaneous__deg>{0})\s+(?P<x_cp2k_md_cell_angle_c_instantaneous__deg>{0})"
.
format
(
self
.
cm
.
regex_f
)),
],
adHoc
=
self
.
adHoc_save_md_quickstep
()
),
SM
(
" SCF WAVEFUNCTION OPTIMIZATION"
,
endReStr
=
" TEMPERATURE \[K\] ="
,
name
=
"md_step"
,
forwardMatch
=
True
,
repeats
=
True
,
sections
=
[
"x_cp2k_section_md_step"
],
subMatchers
=
[
...
...
@@ -113,6 +116,7 @@ class CP2KMDParser(MainHierarchicalParser):
SM
(
" CELL ANGLS\[deg\] =\s+(?P<x_cp2k_md_cell_angle_a_instantaneous__deg>{0})\s+(?P<x_cp2k_md_cell_angle_b_instantaneous__deg>{0})\s+(?P<x_cp2k_md_cell_angle_c_instantaneous__deg>{0})"
.
format
(
self
.
cm
.
regex_f
)),
SM
(
" AVE. CELL ANGLS\[deg\] =\s+(?P<x_cp2k_md_cell_angle_a_average__deg>{0})\s+(?P<x_cp2k_md_cell_angle_b_average__deg>{0})\s+(?P<x_cp2k_md_cell_angle_c_average__deg>{0})"
.
format
(
self
.
cm
.
regex_f
)),
],
adHoc
=
self
.
adHoc_save_md_quickstep
()
),
]
)
...
...
@@ -321,7 +325,7 @@ class CP2KMDParser(MainHierarchicalParser):
if
md_steps
:
if
(
i_step
+
1
)
%
freqs
[
"output"
][
0
]
==
0
:
md_step
=
md_steps
[
i_md_step
]
quickstep
=
md_step
.
get_latest_value
(
"x_cp2k_section_quickstep_calculation"
)
quickstep
=
self
.
md_quicksteps
[
i_md_step
]
if
quickstep
is
not
None
:
quickstep
.
add_latest_value
(
"x_cp2k_atom_forces"
,
"atom_forces"
)
quickstep
.
add_latest_value
(
"x_cp2k_stress_tensor"
,
"stress_tensor"
)
...
...
@@ -388,3 +392,14 @@ class CP2KMDParser(MainHierarchicalParser):
mean_pressure
=
frame_sequence_pressure
.
mean
()
std_pressure
=
frame_sequence_pressure
.
std
()
backend
.
addArrayValues
(
"frame_sequence_pressure_stats"
,
np
.
array
([
mean_pressure
,
std_pressure
]))
#===========================================================================
# adHoc functions
def
adHoc_save_md_quickstep
(
self
):
def
wrapper
(
parser
):
section_managers
=
parser
.
backend
.
sectionManagers
section_run_manager
=
section_managers
[
"section_run"
]
section_run
=
section_run_manager
.
openSections
[
0
]
quickstep
=
section_run
.
get_latest_value
(
"x_cp2k_section_quickstep_calculation"
)
self
.
md_quicksteps
.
append
(
quickstep
)
return
wrapper
test/unittests/cp2k_2.6.2/run_tests.py
View file @
e00bb0ce
...
...
@@ -1022,14 +1022,14 @@ if __name__ == '__main__':
logger
.
setLevel
(
logging
.
ERROR
)
suites
=
[]
#
suites.append(unittest.TestLoader().loadTestsFromTestCase(TestErrors))
#
suites.append(unittest.TestLoader().loadTestsFromTestCase(TestXCFunctional))
#
suites.append(unittest.TestLoader().loadTestsFromTestCase(TestEnergyForce))
#
suites.append(unittest.TestLoader().loadTestsFromTestCase(TestStressTensorMethods))
#
suites.append(unittest.TestLoader().loadTestsFromTestCase(TestSelfInteractionCorrectionMethod))
#
suites.append(unittest.TestLoader().loadTestsFromTestCase(TestConfigurationPeriodicDimensions))
#
suites.append(unittest.TestLoader().loadTestsFromTestCase(TestSCFConvergence))
#
suites.append(unittest.TestLoader().loadTestsFromTestCase(TestForceFiles))
suites
.
append
(
unittest
.
TestLoader
().
loadTestsFromTestCase
(
TestErrors
))
suites
.
append
(
unittest
.
TestLoader
().
loadTestsFromTestCase
(
TestXCFunctional
))
suites
.
append
(
unittest
.
TestLoader
().
loadTestsFromTestCase
(
TestEnergyForce
))
suites
.
append
(
unittest
.
TestLoader
().
loadTestsFromTestCase
(
TestStressTensorMethods
))
suites
.
append
(
unittest
.
TestLoader
().
loadTestsFromTestCase
(
TestSelfInteractionCorrectionMethod
))
suites
.
append
(
unittest
.
TestLoader
().
loadTestsFromTestCase
(
TestConfigurationPeriodicDimensions
))
suites
.
append
(
unittest
.
TestLoader
().
loadTestsFromTestCase
(
TestSCFConvergence
))
suites
.
append
(
unittest
.
TestLoader
().
loadTestsFromTestCase
(
TestForceFiles
))
suites
.
append
(
unittest
.
TestLoader
().
loadTestsFromTestCase
(
TestPreprocessor
))
suites
.
append
(
unittest
.
TestLoader
().
loadTestsFromTestCase
(
TestGeoOpt
))
suites
.
append
(
unittest
.
TestLoader
().
loadTestsFromTestCase
(
TestGeoOptTrajFormats
))
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment