Skip to content

Commit

Permalink
Tests: Molpro MRCI implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
kfir4444 authored and alongd committed Jul 2, 2024
1 parent d909b21 commit 992fec3
Showing 1 changed file with 117 additions and 7 deletions.
124 changes: 117 additions & 7 deletions arc/job/adapters/molpro_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,26 @@ def setUpClass(cls):
species=[ARCSpecies(label='spc1', xyz=['O 0 0 1'])],
testing=True,
)
cls.job_3 = MolproAdapter(execution_type='queue',
job_type='sp',
level=Level(method='MRCI', basis='aug-cc-pvtz-f12'),
project='test',
project_directory=os.path.join(ARC_PATH, 'arc', 'testing', 'test_MolproAdapter_3'),
species=[ARCSpecies(label='HNO_t', xyz=["""N -0.08142 0.37454 0.00000
O 1.01258 -0.17285 0.00000
H -0.93116 -0.20169 0.00000"""])],
testing=True,
)
cls.job_4 = MolproAdapter(execution_type='queue',
job_type='sp',
level=Level(method='MRCI-F12', basis='aug-cc-pvtz-f12'),
project='test',
project_directory=os.path.join(ARC_PATH, 'arc', 'testing', 'test_MolproAdapter_4'),
species=[ARCSpecies(label='HNO_t', xyz=["""N -0.08142 0.37454 0.00000
O 1.01258 -0.17285 0.00000
H -0.93116 -0.20169 0.00000"""])],
testing=True,
)

def test_set_cpu_and_mem(self):
"""Test assigning number of cpu's and memory"""
Expand All @@ -57,26 +77,26 @@ def test_set_input_file_memory(self):
self.job_1.input_file_memory = None
self.job_1.cpu_cores = 48
self.job_1.set_input_file_memory()
self.assertEqual(self.job_1.input_file_memory, 40)
self.assertEqual(self.job_1.input_file_memory, 438)

self.job_1.cpu_cores = 8
self.job_1.set_input_file_memory()
self.assertEqual(self.job_1.input_file_memory, 235)
self.assertEqual(self.job_1.input_file_memory, 438)

self.job_1.input_file_memory = None
self.job_1.cpu_cores = 1
self.job_1.set_input_file_memory()
self.assertEqual(self.job_1.input_file_memory, 1880)
self.assertEqual(self.job_1.input_file_memory, 438)

def test_write_input_file(self):
"""Test writing Gaussian input files"""
"""Test writing Molpro input files"""
self.job_1.cpu_cores = 48
self.job_1.set_input_file_memory()
self.job_1.write_input_file()
with open(os.path.join(self.job_1.local_path, input_filenames[self.job_1.job_adapter]), 'r') as f:
content_1 = f.read()
job_1_expected_input_file = """***,spc1
memory,40,m;
memory,Total=438,m;
geometry={angstrom;
O 0.00000000 0.00000000 1.00000000}
Expand Down Expand Up @@ -105,7 +125,7 @@ def test_write_input_file(self):
with open(os.path.join(self.job_2.local_path, input_filenames[self.job_2.job_adapter]), 'r') as f:
content_2 = f.read()
job_2_expected_input_file = """***,spc1
memory,40,m;
memory,Total=438,m;
geometry={angstrom;
O 0.00000000 0.00000000 1.00000000}
Expand All @@ -128,6 +148,96 @@ def test_write_input_file(self):
"""
self.assertEqual(content_2, job_2_expected_input_file)

def test_write_mrci_input_file(self):
"""Test writing MRCI Molpro input files"""
self.job_3.cpu_cores = 48
self.job_3.set_input_file_memory()
self.job_3.write_input_file()
with open(os.path.join(self.job_3.local_path, input_filenames[self.job_3.job_adapter]), 'r') as f:
content_3 = f.read()
job_3_expected_input_file = """***,HNO_t
memory,Total=438,m;
geometry={angstrom;
N -0.08142000 0.37454000 0.00000000
O 1.01258000 -0.17285000 0.00000000
H -0.93116000 -0.20169000 0.00000000}
gprint,orbitals;
basis=aug-cc-pvtz-f12
int;
{hf;
maxit,1000;
wf,spin=0,charge=0;}
{casscf;
maxit,999;
wf,spin=0,charge=0;}
{mrci;
maxit,999;
wf,spin=0,charge=0;};
E_mrci=energy;
E_mrci_Davidson=energd;
table,E_mrci,E_mrci_Davidson;
---;
"""
self.assertEqual(content_3, job_3_expected_input_file)

self.job_4.cpu_cores = 48
self.job_4.set_input_file_memory()
self.job_4.write_input_file()
with open(os.path.join(self.job_4.local_path, input_filenames[self.job_4.job_adapter]), 'r') as f:
content_4 = f.read()
job_4_expected_input_file = """***,HNO_t
memory,Total=438,m;
geometry={angstrom;
N -0.08142000 0.37454000 0.00000000
O 1.01258000 -0.17285000 0.00000000
H -0.93116000 -0.20169000 0.00000000}
gprint,orbitals;
basis=aug-cc-pvtz-f12
int;
{hf;
maxit,1000;
wf,spin=0,charge=0;}
{casscf;
maxit,999;
wf,spin=0,charge=0;}
{mrci-f12;
maxit,999;
wf,spin=0,charge=0;};
E_mrci=energy;
E_mrci_Davidson=energd;
table,E_mrci,E_mrci_Davidson;
---;
"""
self.assertEqual(content_4, job_4_expected_input_file)

def test_set_files(self):
"""Test setting files"""
job_1_files_to_upload = [{'file_name': 'submit.sub',
Expand Down Expand Up @@ -155,7 +265,7 @@ def tearDownClass(cls):
A function that is run ONCE after all unit tests in this class.
Delete all project directories created during these unit tests
"""
for folder in ['test_MolproAdapter_1', 'test_MolproAdapter_2']:
for folder in ['test_MolproAdapter_1', 'test_MolproAdapter_2', 'test_MolproAdapter_3', 'test_MolproAdapter_4']:
shutil.rmtree(os.path.join(ARC_PATH, 'arc', 'testing', folder), ignore_errors=True)


Expand Down

0 comments on commit 992fec3

Please sign in to comment.