Skip to content

Commit 7362077

Browse files
committed
simplify
1 parent 9e91276 commit 7362077

File tree

2 files changed

+33
-63
lines changed

2 files changed

+33
-63
lines changed

src/nomad_simulation_parsers/parsers/gaussian/parser.py

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,12 @@ def _select_orientation(system: dict[str, Any]) -> Any:
7878
or system.get('z_matrix_orientation')
7979
)
8080

81-
def get_systems(self, src: dict[str, Any]) -> list[dict[str, Any]]:
81+
def get_atoms(self, src):
8282
runs = src.get('run') or []
8383
runs = runs if isinstance(runs, list) else [runs]
84-
systems: list[dict[str, Any]] = []
84+
systems = []
8585

8686
for run in runs:
87-
charge = run.get('charge')
88-
total_spin = self._get_total_spin(run.get('spin_target'))
8987
for system in run.get('system', []) or []:
9088
orientation = self._select_orientation(system)
9189
if orientation is None:
@@ -96,21 +94,9 @@ def get_systems(self, src: dict[str, Any]) -> list[dict[str, Any]]:
9694

9795
positions = arr[:, -3:]
9896
atomic_numbers = arr[:, 1].astype(int) if arr.shape[1] > 1 else []
99-
particle_states = []
100-
for z in atomic_numbers:
101-
symbol = (
102-
chemical_symbols[z] if 0 <= z < len(chemical_symbols) else None
103-
)
104-
particle_states.append({'chemical_symbol': symbol})
105-
106-
systems.append(
107-
dict(
108-
positions=positions,
109-
particle_states=particle_states,
110-
total_charge=charge,
111-
total_spin=total_spin,
112-
)
113-
)
97+
atoms = [{'atomic_number': int(z)} for z in atomic_numbers]
98+
systems.append({'positions': positions, 'particle_states': atoms})
99+
114100
return systems
115101

116102
def get_outputs(self, src: dict[str, Any]) -> list[dict[str, Any]]:
@@ -154,7 +140,9 @@ def parse(
154140

155141
meta = MetainfoParser(data_object=Simulation())
156142
meta.annotation_key = 'out'
157-
# meta.max_nested_level = 1
143+
# Need to traverse Simulation -> ModelSystem -> particle_states
144+
# Depth: Simulation (0) -> model_system (1) -> particle_states (2) -> AtomsState quantities (3)
145+
meta.max_nested_level = 3
158146

159147
reader.convert(meta)
160148
archive.data = meta.data_object

src/nomad_simulation_parsers/schema_packages/gaussian.py

Lines changed: 25 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -16,58 +16,40 @@
1616

1717
m_package = SchemaPackage()
1818

19-
add_mapping_annotation(general.Simulation.m_def, OUT_KEY, '@')
20-
21-
22-
class Simulation(general.Simulation):
23-
add_mapping_annotation(
24-
general.Simulation.program, OUT_KEY, ('get_program_data', ['.@'])
25-
)
26-
add_mapping_annotation(
27-
general.Simulation.model_system, OUT_KEY, ('get_systems', ['.@'])
28-
)
29-
# add_mapping_annotation(
30-
# general.Simulation.outputs, OUT_KEY, ('get_outputs', ['.@'])
31-
# )
32-
33-
34-
class Program(general.Program):
35-
add_mapping_annotation(general.Program.name, OUT_KEY, '.name')
36-
add_mapping_annotation(general.Program.version, OUT_KEY, '.version')
37-
3819

39-
class ModelSystem(model_system.ModelSystem):
40-
add_mapping_annotation(model_system.ModelSystem.positions, OUT_KEY, '.positions')
41-
add_mapping_annotation(
42-
model_system.ModelSystem.total_charge, OUT_KEY, '.total_charge'
43-
)
44-
add_mapping_annotation(model_system.ModelSystem.total_spin, OUT_KEY, '.total_spin')
45-
add_mapping_annotation(atoms_state.AtomsState.m_def, OUT_KEY, '.particle_states')
20+
############# Simulation + Program ###################
4621

22+
add_mapping_annotation(general.Simulation.m_def, OUT_KEY, '@')
4723

48-
class AtomsState(atoms_state.AtomsState):
49-
add_mapping_annotation(
50-
atoms_state.AtomsState.chemical_symbol, OUT_KEY, '.chemical_symbol'
51-
)
24+
add_mapping_annotation(general.Simulation.program, OUT_KEY, '.@')
5225

26+
add_mapping_annotation(general.Program.version, OUT_KEY, '.program_version')
5327

54-
# class Outputs(outputs.Outputs):
55-
# add_mapping_annotation(outputs.Outputs.total_energies, OUT_KEY, '.total_energies')
56-
# add_mapping_annotation(outputs.Outputs.total_forces, OUT_KEY, '.total_forces')
28+
############# Atoms / ModelSystem ###################
5729

30+
add_mapping_annotation(
31+
general.Simulation.model_system,
32+
OUT_KEY,
33+
('get_atoms', ['.@']),
34+
)
5835

59-
# class TotalEnergy(properties.energies.TotalEnergy):
60-
# add_mapping_annotation(
61-
# properties.energies.TotalEnergy.value,
62-
# OUT_KEY,
63-
# '.value || .energy_total || .@',
64-
# )
36+
add_mapping_annotation(
37+
model_system.ModelSystem.positions,
38+
OUT_KEY,
39+
'.positions',
40+
)
6541

42+
add_mapping_annotation(
43+
atoms_state.AtomsState.m_def,
44+
OUT_KEY,
45+
'.particle_states',
46+
)
6647

67-
# class TotalForce(properties.forces.TotalForce):
68-
# add_mapping_annotation(
69-
# properties.forces.TotalForce.value, OUT_KEY, '.value || .forces || .@'
70-
# )
48+
add_mapping_annotation(
49+
atoms_state.AtomsState.atomic_number,
50+
OUT_KEY,
51+
'.atomic_number',
52+
)
7153

7254
try:
7355
m_package.__init_metainfo__()

0 commit comments

Comments
 (0)