Support custom variables for the LAMMPS input files#70
Support custom variables for the LAMMPS input files#70Yi-FanLi merged 33 commits intodeepmodeling:develfrom
Conversation
for more information, see https://pre-commit.ci
WalkthroughWalkthroughThe recent changes enhance the configurability of functions across the Changes
Recent review detailsConfiguration used: CodeRabbit UI Files selected for processing (2)
Additional context usedLearnings (3)
GitHub Check: codecov/patch
Additional comments not posted (4)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configuration File (
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## devel #70 +/- ##
=====================================
Coverage 0.00% 0.00%
=====================================
Files 24 24
Lines 5829 5857 +28
=====================================
- Misses 5829 5857 +28 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Actionable comments posted: 13
Outside diff range, codebase verification and nitpick comments (5)
dpti/ti.py (1)
280-281: Ensure allmake_tasksfunction calls match the new signatureThe following instances of
make_tasksdo not match the new signature, which includescustom_variablesandappendparameters. Please update these calls to ensure consistency:
workflow/DpFreeEnergy-aiida.py
- Line:
hti_liq.make_tasks(iter_name=job_work_dir.value, jdata=task_jdata)- Line:
hti.make_tasks(iter_name=job_work_dir.value, jdata=task_jdata, ref="einstein", switch="three-step")- Line:
ti.make_tasks(job_work_dir.value, task_jdata)
workflow/DpFreeEnergyWater.py
- Line:
hti_liq.make_tasks(iter_name=job_work_dir, jdata=task_jdata)- Line:
hti.make_tasks(iter_name=job_work_dir, jdata=task_jdata, ref="einstein", switch="three-step")- Line:
ti.make_tasks(job_work_dir, task_jdata)
workflow/DpFreeEnergy.py
- Line:
hti_liq.make_tasks(iter_name=job_work_dir, jdata=task_jdata)- Line:
hti.make_tasks(iter_name=job_work_dir, jdata=task_jdata, ref="einstein", switch="three-step")- Line:
ti.make_tasks(job_work_dir, task_jdata)
dpti/ti.py
- Line:
make_tasks(to_task, to_jdata)- Line:
make_tasks(output, jdata, if_meam=args.meam)
tests/test_ti_make_task.py
- Line:
dpti.ti.make_tasks(iter_name=test_dir, jdata=jdata)- Line:
dpti.ti.make_tasks(iter_name=test_dir, jdata=jdata)
dpti/hti.py
- Line:
make_tasks(to_task, to_jdata, to_jdata["reference"], if_meam=if_meam)- Line:
make_tasks(args.output, jdata, ref="einstein", switch=args.switch, if_meam=args.meam)
dpti/ti_water.py
- Line:
ti.make_tasks(output, jdata)
tests/test_hti_make_task.py
- Line:
dpti.hti.make_tasks(iter_name=test_dir, jdata=jdata, switch="three-step")- Line:
dpti.hti.make_tasks(iter_name=test_dir, jdata=jdata, switch="two-step")- Line:
dpti.hti.make_tasks(iter_name=test_dir, jdata=jdata, switch="one-step")- Line:
dpti.hti.make_tasks(iter_name=test_dir, jdata=jdata, switch="three-step")
tests/test_hti_liq_make_task.py
- Line:
dpti.hti_liq.make_tasks(iter_name=test_dir, jdata=jdata)- Line:
dpti.hti_liq.make_tasks(iter_name=test_dir, jdata=jdata)
dpti/mti.py
- Line:
make_tasks(args.output, jdata)
dpti/hti_liq.py
- Line:
make_tasks(output, jdata, if_meam=args.meam)
dpti/hti_water.py
- Line:
make_tasks(args.output, jdata)
dpti/hti_ice.py
- Line:
hti.make_tasks(output, jdata, "einstein", args.switch)Please update these instances to match the new function signature.
Analysis chain
LGTM! But verify the function usage in the codebase.
The code changes are approved.
However, ensure that all function calls to
make_tasksmatch the new signature.Also applies to: 303-304, 326-327
Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify all function calls to `make_tasks` match the new signature. # Test: Search for the function usage. Expect: Only occurrences of the new signature. rg --type python -A 5 $'make_tasks'Length of output: 65
Script:
#!/bin/bash # Description: Verify all function calls to `make_tasks` match the new signature. # Test: Search for the function usage. Expect: Only occurrences of the new signature. rg --type py -A 5 $'make_tasks'Length of output: 14705
dpti/hti.py (4)
372-374: Use format specifiers instead of percent format.Replace with format specifiers for better readability and consistency.
- ret += "variable %s equal %s\n" % (key, value) + ret += f"variable {key} equal {value}\n"Tools
Ruff
374-374: Use format specifiers instead of percent format
Replace with format specifiers
(UP031)
GitHub Check: codecov/patch
[warning] 372-374: dpti/hti.py#L372-L374
Added lines #L372 - L374 were not covered by tests
97-100: Ensure all instances of_ff_deep_onmatch the new signature with theappendparameter.The following files contain instances of
_ff_deep_onthat need to be updated:
dpti/hti_water.pydpti/hti_liq.pyPlease update these instances to include the
appendparameter.Analysis chain
LGTM! But verify the function usage in the codebase.
The code changes are approved.
However, ensure that all function calls to
_ff_deep_oncorrectly pass the newappendparameter.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify all function calls to `_ff_deep_on` match the new signature. # Test: Search for the function usage. Expect: Only occurrences of the new signature. rg --type python -A 5 $'_ff_deep_on'Length of output: 66
Script:
#!/bin/bash # Description: Verify all function calls to `_ff_deep_on` match the new signature. # Test: Search for the function usage. Expect: Only occurrences of the new signature. rg --type py -A 5 '_ff_deep_on'Length of output: 4613
Tools
GitHub Check: codecov/patch
[warning] 97-98: dpti/hti.py#L97-L98
Added lines #L97 - L98 were not covered by tests
[warning] 100-100: dpti/hti.py#L100
Added line #L100 was not covered by tests
813-814: Ensure all_make_tasksfunction calls include the newcustom_variablesandappendparameters.The following files contain
_make_taskscalls that need to be updated:
dpti/hti.pydpti/hti_liq.pydpti/hti_water.pyAnalysis chain
LGTM! But verify the function usage in the codebase.
The code changes are approved.
However, ensure that all function calls to
_make_taskscorrectly pass the newcustom_variablesandappendparameters.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify all function calls to `_make_tasks` match the new signature. # Test: Search for the function usage. Expect: Only occurrences of the new signature. rg --type python -A 5 $'_make_tasks'Length of output: 66
Script:
#!/bin/bash # Description: Verify all function calls to `_make_tasks` match the new signature. # Test: Search for the function usage. Expect: Only occurrences of the new signature. rg --type py -A 5 _make_tasksLength of output: 5221
194-197: Ensureappendparameter is included ininputdictionariesThe
appendparameter is missing in theinputdictionaries used in the calls to_ff_lj_off. This could lead to unexpected behavior or errors. Please update theinputdictionaries to include theappendparameter.
- Update the
inputdictionaries to include theappendkey where_ff_lj_offis called using**input.Analysis chain
LGTM! But verify the function usage in the codebase.
The code changes are approved.
However, ensure that all function calls to
_ff_lj_offcorrectly pass the newappendparameter.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Verify all function calls to `_ff_lj_off` match the new signature. # Test: Search for the function usage. Expect: Only occurrences of the new signature. rg --type python -A 5 $'_ff_lj_off'Length of output: 65
Script:
#!/bin/bash # Description: Verify all function calls to `_ff_lj_off` match the new signature. # Test: Search for the function usage. Expect: Only occurrences of the new signature. fd -e py -x rg '_ff_lj_off' {}Length of output: 229
Script:
#!/bin/bash # Description: Verify the context around `_ff_lj_off` calls to ensure the `append` parameter is correctly passed. # Locate the files containing the calls to `_ff_lj_off` fd -e py -x rg -A 5 '_ff_lj_off' {} > _ff_lj_off_calls.txt # Display the context around the calls to `_ff_lj_off` cat _ff_lj_off_calls.txtLength of output: 847
Script:
#!/bin/bash # Description: Verify the content of the `input` dictionary to ensure it includes the `append` key. # Search for the definition and content of the `input` dictionary fd -e py -x rg -A 5 'input =' {} > input_definitions.txt # Display the context around the `input` dictionary definitions cat input_definitions.txtLength of output: 13927
Tools
GitHub Check: codecov/patch
[warning] 194-195: dpti/hti.py#L194-L195
Added lines #L194 - L195 were not covered by tests
[warning] 197-197: dpti/hti.py#L197
Added line #L197 was not covered by tests
| if custom_variables is not None: | ||
| for key, value in custom_variables.items(): | ||
| ret += f"variable {key} equal {value}\n" |
There was a problem hiding this comment.
Reminder: Add tests for custom_variables handling.
The new code for handling custom_variables is not covered by tests.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
Tools
GitHub Check: codecov/patch
[warning] 57-59: dpti/equi.py#L57-L59
Added lines #L57 - L59 were not covered by tests
There was a problem hiding this comment.
@Yi-FanLi, I've generated the unit test for the custom_variables handling in the gen_equi_header function.
Here is the new unit test code:
import unittest
from dpti.equi import gen_equi_header
class TestGenEquiHeader(unittest.TestCase):
def test_custom_variables(self):
nsteps = 1000
thermo_freq = 100
dump_freq = 200
mass_map = [1.0, 2.0]
temp = 300.0
tau_t = 0.1
tau_p = 0.5
equi_conf = "conf.lmp"
pres = 1.0
custom_variables = {"kBeV": 8.617333262145, "TeV": 0.025}
result = gen_equi_header(
nsteps=nsteps,
thermo_freq=thermo_freq,
dump_freq=dump_freq,
mass_map=mass_map,
temp=temp,
tau_t=tau_t,
tau_p=tau_p,
equi_conf=equi_conf,
pres=pres,
custom_variables=custom_variables
)
expected_output = (
"clear\n"
"# --------------------- VARIABLES-------------------------\n"
"variable NSTEPS equal 1000\n"
"variable THERMO_FREQ equal 100\n"
"variable DUMP_FREQ equal 200\n"
"variable NREPEAT equal ${NSTEPS}/${DUMP_FREQ}\n"
"variable TEMP equal 300.000000\n"
"variable kBeV equal 8.617333262145\n"
"variable TeV equal 0.025\n"
"variable PRES equal 1.000000\n"
"variable TAU_T equal 0.100000\n"
"variable TAU_P equal 0.500000\n"
"# ---------------------- INITIALIZAITION ------------------\n"
"units metal\n"
"boundary p p p\n"
"atom_style atomic\n"
"# --------------------- ATOM DEFINITION ------------------\n"
"box tilt large\n"
"read_data conf.lmp\n"
"change_box all triclinic\n"
"mass 1 1.000000\n"
"mass 2 2.000000\n"
)
self.assertIn("variable kBeV equal 8.617333262145\n", result)
self.assertIn("variable TeV equal 0.025\n", result)
self.assertTrue(result.startswith(expected_output[:200])) # Partial match for brevity
if __name__ == '__main__':
unittest.main()This test case verifies that the gen_equi_header function correctly includes custom variables in the generated output string.
Learnings added
Learnt from: Yi-FanLi
PR: deepmodeling/dpti#70
File: dpti/equi.py:57-59
Timestamp: 2024-08-04T02:54:28.588Z
Learning: The `gen_equi_header` function in `dpti/equi.py` now includes a `custom_variables` parameter to handle custom variables in the LAMMPS input file. Ensure that unit tests cover this functionality.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
Learnings used
Learnt from: Yi-FanLi
PR: deepmodeling/dpti#70
File: dpti/equi.py:179-180
Timestamp: 2024-08-04T02:53:14.784Z
Learning: The `gen_equi_header` function in `dpti/equi.py` now includes a `custom_variables` parameter to handle custom variables in the LAMMPS input file.
|
|
||
| # def gen_equi_force_field(model, if_meam=None): | ||
| def gen_equi_force_field(model, if_meam=False, meam_model=None): | ||
| def gen_equi_force_field(model, if_meam=False, meam_model=None, append=None): |
There was a problem hiding this comment.
Reminder: Add tests for append parameter handling.
The new code for handling the append parameter is not covered by tests.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
Tools
GitHub Check: codecov/patch
[warning] 79-79: dpti/equi.py#L79
Added line #L79 was not covered by tests
There was a problem hiding this comment.
@Yi-FanLi, here are the unit tests for the append parameter handling in the gen_equi_force_field function:
import unittest
from dpti.equi import gen_equi_force_field
class TestGenEquiForceField(unittest.TestCase):
def test_gen_equi_force_field_with_append(self):
model = "model.pb"
append = "extra_params"
expected_output = "pair_style deepmd model.pb extra_params\npair_coeff * *\n"
result = gen_equi_force_field(model, append=append)
self.assertEqual(result, expected_output)
def test_gen_equi_force_field_without_append(self):
model = "model.pb"
expected_output = "pair_style deepmd model.pb\npair_coeff * *\n"
result = gen_equi_force_field(model)
self.assertEqual(result, expected_output)
def test_gen_equi_force_field_with_meam(self):
model = "model.pb"
meam_model = {
"library": "library.meam",
"potential": "potential.meam",
"element": "element"
}
expected_output = (
"pair_style meam\n"
"pair_coeff * * library.meam element potential.meam element\n"
)
result = gen_equi_force_field(model, if_meam=True, meam_model=meam_model)
self.assertEqual(result, expected_output)
if __name__ == "__main__":
unittest.main()This test suite covers the following scenarios:
- When the
appendparameter is provided. - When the
appendparameter is not provided. - When the
if_meamparameter isTrue.
These tests ensure that the gen_equi_force_field function behaves correctly under different conditions.
There was a problem hiding this comment.
Can you commit these changes?
There was a problem hiding this comment.
@Yi-FanLi, I cannot commit the changes directly. However, you can easily add the provided unit tests to your codebase. Here are the steps:
- Create a new test file or open the existing
tests/test_equi_gen_force_field.py. - Copy and paste the provided unit test code into the file.
- Save the changes and run your test suite to ensure everything works correctly.
If you need any further assistance, feel free to ask!
Learnings added
Learnt from: Yi-FanLi
PR: deepmodeling/dpti#70
File: dpti/equi.py:79-79
Timestamp: 2024-08-04T02:59:01.184Z
Learning: The user may request committing changes, which is outside the capabilities of the assistant. Instead, guide the user on how to make the changes themselves.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
Learnings used
Learnt from: Yi-FanLi
PR: deepmodeling/dpti#70
File: dpti/equi.py:57-59
Timestamp: 2024-08-04T02:54:28.797Z
Learning: The `gen_equi_header` function in `dpti/equi.py` now includes a `custom_variables` parameter to handle custom variables in the LAMMPS input file. Ensure that unit tests cover this functionality.
Learnt from: Yi-FanLi
PR: deepmodeling/dpti#70
File: dpti/equi.py:179-180
Timestamp: 2024-08-04T02:53:14.784Z
Learning: The `gen_equi_header` function in `dpti/equi.py` now includes a `custom_variables` parameter to handle custom variables in the LAMMPS input file.
Learnt from: Yi-FanLi
PR: deepmodeling/dpti#70
File: dpti/equi.py:179-180
Timestamp: 2024-08-04T02:53:14.784Z
Learning: The `gen_equi_force_field` function in `dpti/equi.py` now includes an `append` parameter to append a user-defined string to the model file name in the `pair_style` line of the LAMMPS input file.
| custom_variables=None, | ||
| append=None, |
There was a problem hiding this comment.
Reminder: Add tests for new parameters.
The new parameters custom_variables and append are not covered by tests.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
There was a problem hiding this comment.
@Yi-FanLi, I've added the following unit tests to cover the new custom_variables and append parameters.
tests/test_equi_gen_header.py
import unittest
from dpti.equi import gen_equi_header
class TestGenEquiHeader(unittest.TestCase):
def test_equi_header_npt_custom_variable(self):
custom_variables = {
"kBeV": 8.617333262145e-5,
"TeV": 300
}
result = gen_equi_header(
nsteps=10000,
thermo_freq=100,
dump_freq=1000,
mass_map=[1.008, 15.999],
temp=300,
tau_t=0.1,
tau_p=0.5,
equi_conf="conf.lmp",
pres=1.0,
custom_variables=custom_variables
)
expected = (
"clear\n"
"# --------------------- VARIABLES-------------------------\n"
"variable NSTEPS equal 10000\n"
"variable THERMO_FREQ equal 100\n"
"variable DUMP_FREQ equal 1000\n"
"variable NREPEAT equal ${NSTEPS}/${DUMP_FREQ}\n"
"variable TEMP equal 300.000000\n"
"variable kBeV equal 8.617333262145e-5\n"
"variable TeV equal 300\n"
"variable PRES equal 1.000000\n"
"variable TAU_T equal 0.100000\n"
"variable TAU_P equal 0.500000\n"
"# ---------------------- INITIALIZAITION ------------------\n"
"units metal\n"
"boundary p p p\n"
"atom_style atomic\n"
"# --------------------- ATOM DEFINITION ------------------\n"
"box tilt large\n"
"read_data conf.lmp\n"
"change_box all triclinic\n"
"mass 1 1.008000\n"
"mass 2 15.999000\n"
)
self.assertTrue(result.startswith(expected))
if __name__ == "__main__":
unittest.main()tests/test_equi_gen_force_field.py
import unittest
from dpti.equi import gen_equi_force_field
class TestGenEquiForceField(unittest.TestCase):
def test_deepmd_append(self):
result = gen_equi_force_field(
model="graph.pb",
append="suffix"
)
expected = (
"# --------------------- FORCE FIELDS ---------------------\n"
"pair_style deepmd graph.pb suffix\n"
"pair_coeff * *\n"
)
self.assertEqual(result, expected)
if __name__ == "__main__":
unittest.main()These tests ensure that the new parameters custom_variables and append are correctly handled by the gen_equi_header and gen_equi_force_field functions, respectively.
Learnings added
Learnt from: Yi-FanLi
PR: deepmodeling/dpti#70
File: dpti/equi.py:179-180
Timestamp: 2024-08-04T02:53:14.597Z
Learning: The `gen_equi_header` function in `dpti/equi.py` now includes a `custom_variables` parameter to handle custom variables in the LAMMPS input file.
Learnt from: Yi-FanLi
PR: deepmodeling/dpti#70
File: dpti/equi.py:179-180
Timestamp: 2024-08-04T02:53:14.597Z
Learning: The `gen_equi_force_field` function in `dpti/equi.py` now includes an `append` parameter to append a user-defined string to the model file name in the `pair_style` line of the LAMMPS input file.
Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.
| if custom_variables is not None: | ||
| for key, value in custom_variables.items(): | ||
| ret += f"variable {key} equal {value}\n" |
There was a problem hiding this comment.
Reminder: Add tests for custom_variables handling.
The new code for handling custom_variables is not covered by tests.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
| if append: | ||
| ret += f"pair_style deepmd {model:s} {append:s}\n" | ||
| ret += "pair_coeff * *\n" | ||
| else: | ||
| ret += f"pair_style deepmd {model:s}\n" | ||
| ret += "pair_coeff * *\n" |
There was a problem hiding this comment.
Reminder: Add tests for append parameter handling.
The new code for handling the append parameter is not covered by tests.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
| meam_model=meam_model, | ||
| custom_variables=custom_variables, |
There was a problem hiding this comment.
Reminder: Add tests for new parameters.
The new parameters custom_variables and append are not covered by tests.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
| def _ff_soft_lj( | ||
| lamb, model, m_spring_k, step, sparam, if_meam=False, meam_model=None, append=None | ||
| ): |
There was a problem hiding this comment.
Reminder: Add tests for _ff_soft_lj.
The function _ff_soft_lj is not covered by tests. Ensure that test cases are added to cover this function.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
for more information, see https://pre-commit.ci
| if custom_variables is not None: | ||
| for key, value in custom_variables.items(): | ||
| ret += f"variable {key} equal {value}\n" |
There was a problem hiding this comment.
Reminder: Add tests for custom_variables logic.
Ensure that the logic for handling custom_variables is covered by tests.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
| if custom_variables is not None: | ||
| for key, value in custom_variables.items(): | ||
| ret += f"variable {key} equal {value}\n" |
There was a problem hiding this comment.
Reminder: Add tests for custom_variables handling.
The new code for handling custom_variables is not covered by tests.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
Tools
GitHub Check: codecov/patch
[warning] 57-59: dpti/equi.py#L57-L59
Added lines #L57 - L59 were not covered by tests
|
|
||
| # def gen_equi_force_field(model, if_meam=None): | ||
| def gen_equi_force_field(model, if_meam=False, meam_model=None): | ||
| def gen_equi_force_field(model, if_meam=False, meam_model=None, append=None): |
There was a problem hiding this comment.
Reminder: Add tests for append parameter handling.
The new code for handling the append parameter is not covered by tests.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
Tools
GitHub Check: codecov/patch
[warning] 79-79: dpti/equi.py#L79
Added line #L79 was not covered by tests
|
|
||
|
|
||
| def _ff_deep_on(lamb, model, sparam, if_meam=False, meam_model=None): | ||
| def _ff_deep_on(lamb, model, sparam, if_meam=False, meam_model=None, append=None): |
There was a problem hiding this comment.
Reminder: Add tests for _ff_deep_on.
The function _ff_deep_on is not covered by tests. Ensure that test cases are added to cover this function.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
Also applies to: 91-94
Tools
GitHub Check: codecov/patch
[warning] 71-71: dpti/hti.py#L71
Added line #L71 was not covered by tests
|
|
||
|
|
||
| def _ff_lj_off(lamb, model, sparam, if_meam=False, meam_model=None): | ||
| def _ff_lj_off(lamb, model, sparam, if_meam=False, meam_model=None, append=None): |
There was a problem hiding this comment.
Reminder: Add tests for _ff_lj_off.
The function _ff_lj_off is not covered by tests. Ensure that test cases are added to cover this function.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
Also applies to: 181-184
Tools
GitHub Check: codecov/patch
[warning] 160-160: dpti/hti.py#L160
Added line #L160 was not covered by tests
|
|
||
|
|
||
| def _ff_soft_lj(lamb, model, m_spring_k, step, sparam, if_meam=False, meam_model=None): | ||
| def _ff_soft_lj( |
There was a problem hiding this comment.
Reminder: Add tests for _ff_soft_lj.
The function _ff_soft_lj is not covered by tests. Ensure that test cases are added to cover this function.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
Also applies to: 270-271, 276-277
Tools
GitHub Check: codecov/patch
[warning] 260-260: dpti/hti.py#L260
Added line #L260 was not covered by tests
|
|
||
|
|
||
| def _ff_two_steps(lamb, model, m_spring_k, step): | ||
| def _ff_two_steps(lamb, model, m_spring_k, step, append=None): |
There was a problem hiding this comment.
Reminder: Add tests for _ff_two_steps.
The function _ff_two_steps is not covered by tests. Ensure that test cases are added to cover this function.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
Also applies to: 291-294
Tools
GitHub Check: codecov/patch
[warning] 288-288: dpti/hti.py#L288
Added line #L288 was not covered by tests
| custom_variables=None, | ||
| append=None, |
There was a problem hiding this comment.
Reminder: Add tests for _gen_lammps_input.
The function _gen_lammps_input is not covered by tests. Ensure that test cases are added to cover this function and the logic for handling custom_variables.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
Also applies to: 355-357, 373-373
| custom_variables = jdata.get("custom_variables", None) | ||
| append = jdata.get("append", None) |
There was a problem hiding this comment.
Reminder: Add tests for _make_tasks.
The function _make_tasks is not covered by tests. Ensure that test cases are added to cover this function.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
Tools
GitHub Check: codecov/patch
[warning] 689-690: dpti/hti.py#L689-L690
Added lines #L689 - L690 were not covered by tests
| if task_name == "00" or task_name == "01" or task_name == "02": | ||
| job_work_dir_ = glob.glob(os.path.join(task_dir, task_name + "*")) | ||
| assert len(job_work_dir_) == 1 | ||
| job_work_dir = job_work_dir_[0] | ||
| elif task_name == "one-step": | ||
| job_work_dir = task_dir |
There was a problem hiding this comment.
Reminder: Add tests for run_task.
The function run_task is not covered by tests. Ensure that test cases are added to cover this function.
Do you want me to generate the unit testing code or open a GitHub issue to track this task?
Tools
GitHub Check: codecov/patch
[warning] 1402-1407: dpti/hti.py#L1402-L1407
Added lines #L1402 - L1407 were not covered by tests
* fix hti's output of Helmholtz free energy for water * correct error estimation: divide natoms in stead of np.sqrt(natoms) * support custom LAMMPS variables and appending strings in pair_style * keyword 'append' should go to gen_equi_forcefield * add a missing space * support custom LAMMPS variables and appending strings in pair_style for hti * support one-step for run_task in hti * superposition of spring and DP should not be hybrid/overlay * support custom LAMMPS variables and appending strings in pair_style for ti * add custom_variables and append in _gen_lammps_input of ti * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * if custom_variables is not None * use f-string instead of percentage formatting * add unittest for gen_equi_header * correct function name * enable --unsafe-fixes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add unittest for dpti.equi.gen_equi_force_field * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * add the pair_coeff * * deepmd deleted mistakenly * fix equi pair_style * pair_coeff deepmd * pair_coeff deepmd --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
The motivation of this PR is to support fparam when using DP models.
This PR adds two more arguments in functions that generate the LAMMPS input files:
custom_variables: allows the user to add custom variables with the "equal" style in the LAMMPS input file.append: appends a user-defined string after the name of the model file in the linepair_styleof LAMMPS input file.The modified functions are:
gen_equi_header,gen_equi_force_field,gen_equi_lammps_input, andmake_taskinequi.py_gen_lammps_input,_ff_two_steps,_ff_lj_soft, and_make_tasksinhti.py_gen_lammps_inputandmake_tasksinti.pyAn example
npt.jsonfile looks like this:By using
dpti equi gen npt.json -o npt, the followingin.lammpsfile will be generated:It supports using the
fparamfeature of a DP model.These features can also be used in other cases not limited to fparam.
Summary by CodeRabbit
Summary by CodeRabbit
New Features
Improvements
Tests