Skip to content

Commit f64f2b1

Browse files
committed
Extend example to do both
1 parent de008e1 commit f64f2b1

1 file changed

Lines changed: 39 additions & 3 deletions

File tree

examples/advanced/ex09_align_ldos.py

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import os
22

3+
import numpy
4+
35
import mala
46

57
from mala.datahandling.data_repo import data_path
@@ -22,11 +24,45 @@
2224
# initialize and add snapshots to workflow
2325
ldos_aligner = mala.LDOSAligner(parameters)
2426
ldos_aligner.clear_data()
25-
ldos_aligner.add_snapshot("Be_snapshot0.out.h5", data_path, snapshot_type='openpmd')
26-
ldos_aligner.add_snapshot("Be_snapshot1.out.h5", data_path, snapshot_type='openpmd')
27-
ldos_aligner.add_snapshot("Be_snapshot2.out.h5", data_path, snapshot_type='openpmd')
27+
ldos_aligner.add_snapshot("Be_snapshot0.out.npy", data_path)
28+
ldos_aligner.add_snapshot("Be_snapshot1.out.npy", data_path)
29+
ldos_aligner.add_snapshot("Be_snapshot2.out.npy", data_path)
2830

2931
# align and cut the snapshots from the left and right-hand sides
3032
ldos_aligner.align_ldos_to_ref(
3133
left_truncate=True, right_truncate_value=11, number_of_electrons=4
3234
)
35+
36+
try:
37+
import openpmd_api
38+
use_openpmd = True
39+
except ImportError:
40+
use_openpmd = False
41+
42+
if use_openpmd:
43+
# initialize and add snapshots to workflow
44+
ldos_aligner = mala.LDOSAligner(parameters)
45+
ldos_aligner.clear_data()
46+
ldos_aligner.add_snapshot("Be_snapshot0.out.h5",
47+
data_path, snapshot_type='openpmd')
48+
ldos_aligner.add_snapshot("Be_snapshot1.out.h5",
49+
data_path, snapshot_type='openpmd')
50+
ldos_aligner.add_snapshot("Be_snapshot2.out.h5",
51+
data_path, snapshot_type='openpmd')
52+
53+
# align and cut the snapshots from the left and right-hand sides
54+
ldos_aligner.align_ldos_to_ref(
55+
left_truncate=True, right_truncate_value=11, number_of_electrons=4
56+
)
57+
58+
parameters = mala.Parameters()
59+
data_handler = mala.DataHandler(parameters)
60+
for i in range(1, 4):
61+
data_openpmd = data_handler.target_calculator.read_from_openpmd_file(
62+
f"{data_path}/aligned/Be_snapshot0.out.h5")
63+
data_numpy = data_handler.target_calculator.read_from_numpy_file(
64+
f"{data_path}/aligned/Be_snapshot0.out.npy")
65+
if not numpy.allclose(data_numpy, data_openpmd):
66+
raise Exception("Inconsistency in snapshot", i)
67+
else:
68+
print("All close.")

0 commit comments

Comments
 (0)