diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 00000000..fc6eb4a2 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,470 @@ +# GitHub Copilot Instructions for NOMAD Parser Development + +## Overview + +This document provides guidance for GitHub Copilot when working with NOMAD electronic structure parsers. Each parser extracts computational results from simulation output files and maps them to NOMAD's unified runschema. + +**IMPORTANT**: Before merging any parser changes (especially new features), ensure the parser's `FEATURES.yml` file is updated to reflect new capabilities and that these changes are reviewed. The exact `FEATURES.yml` requirements to be enforced are stated below. + +## Parser Feature Documentation + +Each parser has a `FEATURES.yml` file in its directory that documents its capabilities using standardized runschema terminology. These files serve as a reference for: +- Understanding what data each parser extracts +- Identifying which runschema sections are populated +- Recognizing special features and capabilities +- Maintaining consistency across parser implementations + +### File Location + +Parser feature files are located at: +``` +electronicparsers/{parser_name}/FEATURES.yml +``` + +### Editing Guidelines + +**IMPORTANT**: When editing FEATURES.yml files: +- Always add a `metadata` section at the top with: + - `last_updated`: Current timestamp (YYYY-MM-DD format) + - `updated_by`: The model (i.e. YOU) that made the edits (e.g., "GitHub Copilot", "Claude Sonnet 4.5", "GPT-4", etc.) +- The model name should be retained in the file to track which AI assisted with the documentation +- Do NOT annotate every line with the model name, only include it in the metadata section +- Update the timestamp each time the file is modified +- Place string type values in duoble quotation marks + +Example metadata section: +```yaml +metadata: + last_updated: "2025-12-05" + updated_by: "Claude Sonnet 4.5" + +parser: + name: "VASP" + ... +``` + +## NOMAD Runschema Terminology + +The runschema is NOMAD's unified data model for computational materials science. It consists of hierarchical sections: + +### 1. Run Section (`runschema.run`) + +Top-level container for a complete calculation run. + +**Key components:** +- `Program` - Software metadata + - `name` - Code name (e.g., "VASP", "CP2K") + - `version` - Software version + - `compilation_host` - Where compiled +- `TimeRun` - Execution timing + - `date_start`, `date_end` - Timestamps + - `cpu1_start`, `cpu1_end` - CPU time + - `wall_start`, `wall_end` - Wall clock time + +### 2. Method Section (`runschema.method`) + +Describes the computational methodology used. + +**Key components:** + +#### Electronic Structure Method +- `Method.electronic` - Electronic structure approach + - Values: "DFT", "HF", "GW", "MP2", "CCSD", "DMFT", etc. + - `n_spin_channels` - 1 (unpolarized) or 2 (spin-polarized) + - `smearing` - Electron occupation smearing method + - `relativity_method` - Relativistic treatment + - `van_der_waals_method` - Dispersion corrections + +#### DFT Specifics +- `DFT` with `XCFunctional` - Exchange-correlation functional + - `exchange` - Exchange functional(s) + - Examples: "GGA_X_PBE", "HYB_GGA_XC_HSE06" + - `correlation` - Correlation functional(s) + - Examples: "GGA_C_PBE", "LDA_C_PW" + - `hybrid` - Hybrid functional components + - Common functionals: LDA, PBE, PBE0, HSE06, B3LYP + +#### Basis Sets +- `BasisSetContainer` with `BasisSet` - Basis set description + - `type` - Basis set type + - "plane waves" - Plane wave expansion + - "gaussians" - Gaussian-type orbitals + - "numeric AOs" - Numerical atomic orbitals + - "Slater-type orbitals" - Slater orbitals + - `cutoff` - Energy cutoff (for plane waves) + - `native_tier` - Quality level (low/medium/high/tight) + +#### K-point Sampling +- `KMesh` - Brillouin zone sampling + - `n_points` - Number of k-points + - `points` - K-point coordinates + - `grid` - Monkhorst-Pack grid dimensions + +#### Self-Consistent Field +- `Scf` - SCF convergence parameters + - `threshold_energy_change` - Energy convergence criterion + - `n_max_iteration` - Maximum SCF iterations + +#### Atom-Specific Parameters +- `AtomParameters` - Per-atom settings + - `mass` - Atomic mass + - `charge` - Atomic charge + - Pseudopotential information + +- `Pseudopotential` - Pseudopotential details + - `type` - "norm conserving", "ultrasoft", "PAW" + - `name` - Pseudopotential identifier + +#### Advanced Methods +- `HubbardKanamoriModel` - DFT+U parameters + - Hubbard U, J values for correlated electrons +- `GW` - GW approximation settings + - G0W0, scGW, etc. +- `CoreHole` - Core hole spectroscopy + +### 3. System Section (`runschema.system`) + +Describes the atomic structure and configuration. + +**Key components:** + +- `System` - Complete atomic configuration + - `Atoms` - Atomic structure + - `labels` - Atomic symbols (e.g., ["Si", "Si", "O", "O"]) + - `positions` - Atomic coordinates in Cartesian (Å) + - `lattice_vectors` - Unit cell vectors (3x3 matrix, Å) + - `periodic` - Periodicity flags [x, y, z] + - `velocities` - Atomic velocities (for MD) + - `AtomsGroup` - Subsets of atoms (molecules, fragments) + - `Symmetry` - Space group and symmetry operations + - `Constraint` - Constrained atoms or geometric constraints + +### 4. Calculation Section (`runschema.calculation`) + +Contains results from a single-point calculation. + +**Key components:** + +#### Energy +- `Energy` with `EnergyEntry` - Energy values + - `total` - Total energy (most common) + - `free` - Free energy (Helmholtz) + - `kinetic` - Kinetic energy + - `potential` - Potential energy + - `xc` - Exchange-correlation energy + - `electrostatic` - Electrostatic/Coulomb energy + - `ewald` - Ewald summation energy + - `nuclear_repulsion` - Nuclear-nuclear repulsion + - `zero_point` - Zero-point energy + - `fermi` - Fermi energy + - `highest_occupied` - HOMO energy + - `lowest_unoccupied` - LUMO energy + - Each entry has: + - `value` - Energy value + - `contributions` - Breakdown of components + +#### Forces and Stress +- `Forces` with `ForcesEntry` - Atomic forces + - `total` - Total forces on atoms (N_atoms x 3) + - `value` - Force array + - `contributions` - Force component breakdown + +- `Stress` with `StressEntry` - Stress tensor + - `total` - Total stress (3x3 matrix) + - `value` - Stress tensor + - `contributions` - Stress component breakdown + +#### Thermodynamics +- `Thermodynamics` - Thermodynamic properties + - `pressure` - Pressure + - `temperature` - Temperature + - `enthalpy` - Enthalpy + - `entropy` - Entropy + +#### SCF Convergence +- `ScfIteration` - SCF convergence history + - `energy` - Energy per iteration + - `time_physical` - Physical time (for MD) + - `time_calculation` - Computation time + +#### Electronic Structure +- `BandEnergies` - Band energies/eigenvalues + - `energies` - Band energies [spin, kpoint, band] + - `kpoints` - K-point coordinates + - `occupations` - Band occupations + +- `BandStructure` - Band structure along paths + - `segment` - High-symmetry path segments + - Each segment has energy and k-point arrays + +- `Dos` with `DosValues` - Density of states + - `energies` - Energy grid + - `total` - Total DOS [spin, energy] + - `atom_projected` - Atom-projected DOS [spin, atom, orbital, energy] + - `orbital_projected` - Orbital-projected DOS + +- `BandGap` - Electronic band gap + - `value` - Gap value + - `type` - "direct" or "indirect" + +#### Charge Analysis +- `Charges` - Atomic charge analysis + - `value` - Charges per atom + - `analysis_method` - "Mulliken", "Hirshfeld", "Bader", etc. + +#### Vibrational Properties +- `VibrationalFrequencies` - Phonon frequencies + - `value` - Frequencies + - `intensities` - IR intensities + - `raman_intensities` - Raman intensities + +#### Volumetric Data +- `Density` - Electron density on grid +- `Potential` - Potential on grid + +### 5. Workflow Section (`simulationworkflowschema`) + +Describes the type of calculation workflow. + +**Workflow types:** + +#### SinglePoint +Basic single-point energy calculation. + +#### GeometryOptimization +Structure relaxation to minimize forces. +- `GeometryOptimizationMethod` - Optimization settings + - `method` - Optimizer algorithm + - "BFGS", "CG" (conjugate gradient), "FIRE", "damped MD" + - `convergence_tolerance_force_maximum` - Force convergence + - `convergence_tolerance_energy_difference` - Energy convergence + - `convergence_tolerance_displacement_maximum` - Displacement convergence + +#### MolecularDynamics +Time-dependent simulation. +- `MolecularDynamicsMethod` - MD settings + - `ensemble_type` - Statistical ensemble + - "NVE" (microcanonical), "NVT" (canonical), "NPT" (isothermal-isobaric) + - `timestep` - Integration timestep + - `ThermostatParameters` - Temperature control + - `type` - "Nose-Hoover", "Berendsen", "Langevin", etc. + - `target_temperature` - Target temperature + - `BarostatParameters` - Pressure control (NPT only) + +#### Phonon +Vibrational/phonon calculation. +- Finite displacement or DFPT methods +- Phonon band structure and DOS + +#### GW +Beyond-DFT GW calculation. + +#### BSE +Bethe-Salpeter equation for excitations. + +#### DMFT +Dynamical mean-field theory. + +## YAML Schema for FEATURES.yml + +### Supported File Formats + +**IMPORTANT**: The `supported_file_formats` section lists ALL possible file formats the simulation code MAY produce, not necessarily all formats that are currently supported by the parser. + +Each format MUST include: +- `name`: The file format name +- `supported`: true/false (whether the parser can handle this format) +- `source`: filepath:class.method pointing to the implementation (filepath from project root, specify the lowest level: method if possible) +- `notes`: Optional brief explanation (e.g., "Fully supported", "Format exists but not parsed") + +**Why source is required:** +1. **Traceability**: Easy verification of documented capabilities +2. **Catching hallucinations**: Prevents documenting non-existent features + +### Runschema Capabilities + +**IMPORTANT**: Every claimed capability MUST include a source reference pointing to the implementation: filepath:class.method (from project root, lowest level possible). + +Each capability entry includes: +- `capability`: The runschema section/property name +- `source`: filepath:class.method pointing to the implementation + +**Why source is required:** +1. **Traceability**: Easy verification of documented capabilities +2. **Catching hallucinations**: Prevents documenting non-existent features + +### YAML Template + +```yaml +metadata: + last_updated: "YYYY-MM-DD" + updated_by: "Model Name (e.g., Claude Sonnet 4.5)" + +parser: + name: "Parser Name" + description: "Brief description" + homepage: "https://..." + mainfile_patterns: + - "pattern1" + - "pattern2" + supported_file_formats: + - name: "vasprun.xml" + supported: true + notes: "Fully supported" + source: "electronicparsers/vasp/parser.py:VASPParser.init_parser" + - name: "OUTCAR" + supported: true + notes: "Fully supported" + source: "electronicparsers/vasp/parser.py:VASPParser.init_parser" + +runschema_capabilities: + run: + - capability: program # name, version + source: "electronicparsers/vasp/parser.py:VASPParser.parse" + - capability: time_run # timing information + source: "electronicparsers/vasp/parser.py:VASPParser.parse" + + method: + - capability: electronic.method # DFT, HF, GW, etc. + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: dft.xc_functional # XC functional for DFT codes + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: basis_set # type, cutoff + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: k_mesh # k-point sampling + source: "electronicparsers/vasp/parser.py:VASPParser.parse_kpoints" + - capability: gw # GW approximation + source: "electronicparsers/vasp/parser.py:VASPParser.parse_gw" + # Add other method components as applicable with sources + + system: + - capability: atoms # positions, species, lattice_vectors, periodic + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + + calculation: + # Energy components (list what the parser extracts) + - capability: energy.total + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: energy.free + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + + # Electronic structure + - capability: eigenvalues + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: dos_electronic + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + + workflow: + - capability: single_point + source: "electronicparsers/vasp/parser.py:VASPParser.parse_workflow" + - capability: geometry_optimization + source: "electronicparsers/vasp/parser.py:VASPParser.parse_workflow" + - capability: molecular_dynamics + source: "electronicparsers/vasp/parser.py:VASPParser.parse_workflow" + # Add other workflow types as applicable with sources + +special_features: + # List parser-specific advanced capabilities + - "Feature description 1" + - "Feature description 2" + +notes: + # Optional: Additional implementation notes + - "Note 1" + - "Note 2" +``` + +## Guidelines for Maintaining Feature Files + +### When Adding New Parsers + +1. Create `FEATURES.yml` in the parser directory +2. Add metadata section with current date and your model name +3. Analyze the parser implementation to identify: + - Which runschema sections are populated + - What properties are extracted + - Special capabilities or unique features +4. Use the YAML schema above as a template +5. Focus on runschema terminology, not code-specific names + +### When Updating Existing Parsers + +1. Update the `metadata` section with current date and your model name +2. Add new runschema sections to `runschema_capabilities` +3. Document new special features +4. Keep descriptions concise and standardized + +### Best Practices + +- Always update metadata when editing +- Use runschema terminology consistently across all feature files +- List only capabilities that are actually implemented +- Group related capabilities logically +- Include parser-specific features in `special_features` +- Keep descriptions focused on "what" not "how" +- Reference official schema documentation for ambiguous cases + +## Schema Documentation References + +- Main runschema: `packages/nomad-schema-plugin-run/runschema/` + - `run.py` - Run section + - `method.py` - Method section + - `system.py` - System section + - `calculation.py` - Calculation section +- Workflow schema: `packages/nomad-schema-plugin-simulation-workflow/simulationworkflowschema/` + +## Common Patterns in Parser Implementation + +### Energy Extraction Pattern +```python +sec_energy = calculation.Energy() +sec_energy.total = EnergyEntry(value=total_energy * ureg.eV) +sec_energy.free = EnergyEntry(value=free_energy * ureg.eV) +sec_calculation.energy = sec_energy +``` + +### Forces Extraction Pattern +```python +sec_forces = calculation.Forces() +sec_forces.total = ForcesEntry(value=forces_array * ureg.eV / ureg.angstrom) +sec_calculation.forces = sec_forces +``` + +### Band Structure Pattern +```python +sec_k_band = calculation.BandEnergies() +sec_k_band.energies = eigenvalues * ureg.eV # [spin, kpoint, band] +sec_k_band.occupations = occupations +sec_k_band.kpoints = kpoint_coords +sec_calculation.band_structure_electronic.append(sec_k_band) +``` + +### Workflow Detection Pattern +```python +if self.is_geometry_optimization(): + workflow = GeometryOptimization() + workflow.method = GeometryOptimizationMethod( + method="BFGS", + convergence_tolerance_force_maximum=1e-3 * ureg.eV / ureg.angstrom + ) +elif self.is_molecular_dynamics(): + workflow = MolecularDynamics() + workflow.method = MolecularDynamicsMethod( + ensemble_type="NVT", + timestep=1.0 * ureg.fs + ) +``` + +## Usage with GitHub Copilot + +When working on parser code, Copilot can reference these feature files to: +- Suggest appropriate runschema sections for extracted data +- Recommend common patterns for similar properties +- Identify missing capabilities that should be implemented +- Ensure consistency with other parsers + +To help Copilot understand your intent: +- Mention the parser name in comments +- Reference runschema sections explicitly +- Use standard property names from the schema +- Comment on what data you're extracting in runschema terms diff --git a/electronicparsers/abacus/FEATURES.yml b/electronicparsers/abacus/FEATURES.yml new file mode 100644 index 00000000..f064efc9 --- /dev/null +++ b/electronicparsers/abacus/FEATURES.yml @@ -0,0 +1,114 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "ABACUS" + description: "Atomic-orbital Based Ab-initio Computation at UStc - DFT code with plane-wave and numeric atomic orbital basis sets" + homepage: "http://abacus.ustc.edu.cn/" + mainfile_patterns: + - "running_*.log" + supported_file_formats: + - name: "running_*.log" + supported: true + notes: "Primary output file" + source: "electronicparsers/abacus/parser.py:ABACUSParser.init_parser" + - name: "INPUT" + supported: true + notes: "Input parameters file" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_method" + - name: "STRU" + supported: true + notes: "Structure file" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - name: "KPT" + supported: true + notes: "K-points file" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_method" + - name: "TDOS" + supported: true + notes: "Total density of states" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" +runschema_capabilities: + run: + - capability: "program" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse" + - capability: "time_run" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse" + method: + - capability: "electronic.method" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_method" + - capability: "electronic.n_spin_channels" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_method" + - capability: "electronic.smearing" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_method" + - capability: "electronic.relativity_method" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_method" + - capability: "electronic.van_der_waals_method" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "dft.xc_functional" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_method" + - capability: "basis_set" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_method" + - capability: "k_mesh" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_method" + - capability: "scf" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_method" + - capability: "atom_parameters" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_method" + system: + - capability: "atoms" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "symmetry" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + calculation: + - capability: "energy.total" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "energy.fermi" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "energy.xc" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "energy.electrostatic" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "energy.van_der_waals" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "forces.total" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "stress.total" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "pressure" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "scf_iteration" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "eigenvalues" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "band_structure_electronic" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "dos_electronic" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + - capability: "temperature" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse_configurations" + workflow: + - capability: "single_point" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse" + - capability: "geometry_optimization" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse" + - capability: "molecular_dynamics" + source: "electronicparsers/abacus/parser.py:ABACUSParser.parse" +special_features: +- "Supports both plane-wave and numeric atomic orbital (NAO) basis sets" +- "Hybrid functionals (HSE, PBE0) with exact exchange" +- "DFT+U for strongly correlated systems" +- "Spin-orbit coupling for heavy elements" +- "van der Waals corrections (D2, D3 variants)" +- "Non-collinear magnetism support" +- "Comprehensive SCF convergence tracking with energy components" +- "Band structure and DOS calculations (TDOS file)" +- "Geometry optimization with force and stress convergence" +- "Molecular dynamics (NVE, NVT ensembles)" +notes: +- "Parser supports plane-wave and numeric atomic orbital basis sets" +- "XC functional mapping includes LDA, GGA (PBE, RPBE, etc.), meta-GGA (SCAN), and hybrid functionals (HSE, PBE0)" +- "K-point sampling supports Gamma-centered and Monkhorst-Pack grids" +- "Spin-polarized (nspin=2) and non-collinear (nspin=4) calculations supported" +- "SCF iteration tracking includes detailed energy component decomposition" +- "Symmetry information includes Bravais lattice and space group operations" diff --git a/electronicparsers/abinit/FEATURES.yml b/electronicparsers/abinit/FEATURES.yml new file mode 100644 index 00000000..3a800fcc --- /dev/null +++ b/electronicparsers/abinit/FEATURES.yml @@ -0,0 +1,143 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "ABINIT" + description: "ABINIT - plane-wave DFT code with extensive beyond-DFT capabilities (GW, BSE, DMFT)" + homepage: "https://www.abinit.org/" + mainfile_patterns: + - "*.*o*" + - "log" + supported_file_formats: + - name: "*.*o*" + supported: true + notes: "*.*o* (primary text output with user-defined name)" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.init_parser" + - name: "*.files" + supported: true + notes: "*.files (user-defined filenames)" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.init_parser" + - name: "*.*i*" + supported: true + notes: "*.*i* (input parameters)" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.init_parser" + - name: "*_o_DDB" + supported: true + notes: "*_o_DDB (netCDF Derivative DataBases)" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.init_parser" + - name: "*_o_DEN" + supported: true + notes: "*_o_DEN (netCDF charge density)" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.init_parser" + - name: "*_o_EIG" + supported: true + notes: "*_o_EIG (eigenvalues text file)" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.init_parser" + - name: "*_o_WFK" + supported: true + notes: "*_o_WFK (netCDF wavefunction)" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.init_parser" + - name: "*o_SCR" + supported: true + notes: "*o_SCR (netCDF RPA inverse dielectric screening)" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.init_parser" + - name: "*o_SIGRES" + supported: true + notes: "*o_SIGRES (netCDF GW self-energy corrections)" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.init_parser" + - name: "log" + supported: true + notes: "log (stdout redirection)" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.init_parser" +runschema_capabilities: + run: + - capability: "program" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse" + - capability: "time_run" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse" + method: + - capability: "electronic.method" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_method" + - capability: "electronic.n_spin_channels" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_method" + - capability: "electronic.smearing" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_method" + - capability: "dft.xc_functional" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_method" + - capability: "basis_set" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_method" + - capability: "k_mesh" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_method" + - capability: "scf" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_method" + - capability: "gw" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_method" + - capability: "screening" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_method" + - capability: "frequency_mesh" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_method" + system: + - capability: "atoms" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_system" + - capability: "atoms.labels" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_system" + - capability: "atoms.positions" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_system" + - capability: "atoms.lattice_vectors" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_system" + - capability: "atoms.periodic" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_system" + calculation: + - capability: "energy.total" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + - capability: "energy.kinetic" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + - capability: "energy.xc" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + - capability: "energy.electrostatic" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + - capability: "energy.ewald" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + - capability: "energy.fermi" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + - capability: "forces.total" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + - capability: "stress.total" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + - capability: "scf_iteration" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + - capability: "band_structure_electronic" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + - capability: "dos_electronic" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + - capability: "band_gap" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_configurations" + workflow: + - capability: "single_point" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_workflow" + - capability: "geometry_optimization" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_workflow" + - capability: "molecular_dynamics" + source: "electronicparsers/abinit/parser.py:AbinitOutParser.parse_workflow" +special_features: +- "Plane-wave basis set with norm-conserving and PAW pseudopotentials" +- "Extensive XC functional library via native ABINIT functionals and libxc" +- GW approximation: "G0W0, eigenvalue self-consistent GW (ev-scGW), quasi-particle self-consistent GW (qp-scGW)'" +- "Bethe-Salpeter equation (BSE) for optical spectra and excitons" +- "DMFT for strongly correlated systems" +- "Time-dependent DFT (TDFPT) for excited states and response functions" +- "Phonons via density-functional perturbation theory (DFPT)" +- "Spin-orbit coupling" +- "Non-linear response properties (second harmonic generation, electro-optic effect)" +- "Multi-dataset calculations (sequential calculations with different parameters)" +- "Band structure calculations along high-symmetry paths (kptopt < 0)" +- "Support for both text output and netCDF binary files" +- "RPA dielectric screening for beyond-DFT calculations" +- "GW band gap corrections and quasi-particle energies" +notes: +- "ABINIT uses plane waves and is particularly suited for periodic systems" +- "Parser handles multi-dataset calculations (DATASET 1, 2, 3, ...)" +- "Beyond-DFT workflows (GW, BSE) are parsed via BeyondDFTWorkflowsParser" +- "XC functional specified via ixc parameter (native) or via libxc (negative ixc)" +- "Parser extracts k-mesh from ngkpt (Monkhorst-Pack) or kptrlatt" +- "Supports both text-based output files and netCDF binary files for density, wavefunctions, screening, and GW results" diff --git a/electronicparsers/ams/FEATURES.yml b/electronicparsers/ams/FEATURES.yml new file mode 100644 index 00000000..49b90d86 --- /dev/null +++ b/electronicparsers/ams/FEATURES.yml @@ -0,0 +1,111 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "AMS" + description: "Amsterdam Modeling Suite - comprehensive DFT package with various engines (BAND, DFTB, etc.)" + homepage: "https://www.scm.com" + mainfile_patterns: + - "*.out" + - "ams.rkf" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary text output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.init_parser" + - name: "ams.rkf" + supported: true + notes: "Binary results file (RKF format)" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse" + - name: "*.rkf" + supported: true + notes: "Additional RKF files for calculation results" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/rkf.py:rkf_to_dict" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse" + - capability: "time_run" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "electronic.n_spin_channels" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "electronic.relativity_method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "electronic.charge" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "k_mesh" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "scf" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "atom_parameters" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "energy.fermi" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "energy.electronic_kinetic" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "energy.xc" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "energy.electrostatic" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "energy.nuclear_repulsion" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "energy.highest_occupied" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "energy.lowest_unoccupied" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "scf_iteration" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "dos_electronic" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "charges" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "multipoles" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "band_gap" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "temperature" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "geometry_optimization" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" + - capability: "molecular_dynamics" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ams/parser.py:AMSParser.parse_configurations" +special_features: +- "Support for multiple computational engines (BAND, DFTB, ADF)" +- "Extensive XC functional library (LDA, GGA, meta-GGA)" +- "Grimme D3 dispersion corrections" +- "Mulliken and other charge analysis methods (Hirshfeld, Voronoi)" +- "Numeric atomic orbital (NAO) basis sets with confinement parameters" +- "DIIS convergence acceleration for SCF" +- "Band gap analysis with valence and conduction band identification" +- "Dipole moment calculations" +- "Scalar relativistic corrections (ZORA, APA)" +- "RKF binary format for efficient data storage" +- "Comprehensive MD trajectory tracking" +- "Hessian matrix calculations" +notes: +- "Parser supports both text (.out) and binary (RKF) output formats" +- "RKF format provides more comprehensive data including MD histories" +- "Multiple charge analysis methods supported (Mulliken, Hirshfeld, etc.)" +- "Spin-polarized calculations supported" +- "Relativistic treatment via scalar ZORA or APA methods" +- "K-space sampling with BZ integration parameters" diff --git a/electronicparsers/atk/FEATURES.yml b/electronicparsers/atk/FEATURES.yml new file mode 100644 index 00000000..476cd1a6 --- /dev/null +++ b/electronicparsers/atk/FEATURES.yml @@ -0,0 +1,59 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "ATK" + description: "QuantumATK (formerly Atomistix ToolKit) - DFT package for atomic-scale modeling" + homepage: "https://www.synopsys.com/silicon/quantumatk.html" + mainfile_patterns: + - "*.nc" + supported_file_formats: + - name: "*.nc" + supported: true + notes: "NetCDF format with molecular/bulk configurations" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:NCParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" + - capability: "electronic.charge" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" + - capability: "electronic.smearing" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" + - capability: "electronic.relativity_method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" + - capability: "energy.xc" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" + - capability: "energy.kinetic_electronic" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" + - capability: "energy.electrostatic" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/atk/parser.py:ATKParser.parse_configurations" +special_features: +- "NetCDF-based file format for structured data storage" +- "Support for molecular and bulk configurations" +- "Fermi smearing for metallic systems" +- "Pseudo-scalar relativistic corrections" +- XC functionals: "LDA (RPA, PZ, PW), GGA (PW91, PBE, RPBE, BLYP, WC, AM05), meta-GGA (mBEEF)'" +- "Energy decomposition into kinetic, XC, and electrostatic components" +- "Velocity information for molecular dynamics" +notes: +- "Parser reads NetCDF files with configuration fingerprints" +- "Supports both periodic and molecular systems" +- "XC functional mapping covers common LDA and GGA variants" +- "Basis sets can be either numeric AOs or plane waves" diff --git a/electronicparsers/bigdft/FEATURES.yml b/electronicparsers/bigdft/FEATURES.yml new file mode 100644 index 00000000..8ff32a58 --- /dev/null +++ b/electronicparsers/bigdft/FEATURES.yml @@ -0,0 +1,69 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "BigDFT" + description: "Massively parallel DFT code using Daubechies wavelets" + homepage: "http://bigdft.org/" + mainfile_patterns: + - "*.yaml" + - "log-*.yaml" + supported_file_formats: + - name: "*.yaml" + supported: true + notes: "YAML format output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_method" + - capability: "electronic.n_spin_channels" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_method" + - capability: "electronic.charge" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_method" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_method" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_method" + - capability: "scf" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_method" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_system" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_scc" + - capability: "energy.xc" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_scc" + - capability: "energy.xc_potential" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_scc" + - capability: "energy.kinetic_electronic" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_scc" + - capability: "energy.correction_hartree" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_scc" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_scc" + - capability: "scf_iteration" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse_scc" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/bigdft/parser.py:BigDFTParser.parse" +special_features: +- "Daubechies wavelet basis functions (real-space grid representation)" +- "Massively parallel implementation" +- "Extensive XC functional library via LibXC integration" +- "Support for LDA, GGA, meta-GGA, and hybrid functionals" +- "Hartree-Fock exchange (HF_X)" +- "Hybrid functionals (B3PW91, B3LYP, B3P86, O3LYP, PBEH, etc.)" +- "Subspace and wavefunction optimization tracking" +- "Free, periodic, and surface boundary conditions" +- "YAML-based structured output format" +notes: +- "Parser processes YAML output files" +- "XC functional identification via LibXC codes (both positive and negative IDs)" +- "Real-space grid basis set type" +- "SCF iterations tracked through wavefunction optimization" +- "Energy decomposition includes XC, kinetic, and Hartree contributions" diff --git a/electronicparsers/castep/FEATURES.yml b/electronicparsers/castep/FEATURES.yml new file mode 100644 index 00000000..2e3bb8cf --- /dev/null +++ b/electronicparsers/castep/FEATURES.yml @@ -0,0 +1,158 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "CASTEP" + description: "CASTEP - plane-wave DFT code for materials science and solid-state physics" + homepage: "http://www.castep.org/" + mainfile_patterns: + - "**/*.castep" + supported_file_formats: + - name: "CASTEP output files" + supported: true + notes: "CASTEP output files (.castep)" + source: "electronicparsers/castep/parser.py:CellParser.init_parser" + - name: "Cell files" + supported: true + notes: "Cell files (.cell) for structure" + source: "electronicparsers/castep/parser.py:CellParser.init_parser" + - name: "Param files" + supported: true + notes: "Param files (.param) for parameters" + source: "electronicparsers/castep/parser.py:CellParser.init_parser" + - name: "Band structure files" + supported: true + notes: "Band structure files (.bands)" + source: "electronicparsers/castep/parser.py:CellParser.init_parser" + - name: "Phonon files" + supported: true + notes: "Phonon files (.phonon)" + source: "electronicparsers/castep/parser.py:CellParser.init_parser" +runschema_capabilities: + run: + - capability: "program" + source: "electronicparsers/castep/parser.py:CellParser.parse" + - capability: "time_run" + source: "electronicparsers/castep/parser.py:CellParser.parse" + method: + - capability: "electronic.method" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "electronic.n_spin_channels" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "electronic.smearing" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "electronic.relativity_method" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "electronic.van_der_waals_method" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "dft.xc_functional" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "basis_set" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "basis_set.type" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "basis_set.cutoff" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "k_mesh" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "scf" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "pseudopotential" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + - capability: "pseudopotential.type" + source: "electronicparsers/castep/parser.py:CellParser.parse_method" + system: + - capability: "atoms" + source: "electronicparsers/castep/parser.py:CellParser.parse_system" + - capability: "atoms.labels" + source: "electronicparsers/castep/parser.py:CellParser.parse_system" + - capability: "atoms.positions" + source: "electronicparsers/castep/parser.py:CellParser.parse_system" + - capability: "atoms.lattice_vectors" + source: "electronicparsers/castep/parser.py:CellParser.parse_system" + - capability: "atoms.periodic" + source: "electronicparsers/castep/parser.py:CellParser.parse_system" + calculation: + - capability: "energy.total" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "energy.free" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "energy.kinetic" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "energy.xc" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "energy.electrostatic" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "energy.zero_point" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "energy.fermi" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "forces.total" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "stress.total" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "scf_iteration" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "band_structure_electronic" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "band_structure_electronic.energies" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "band_structure_electronic.kpoints" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "band_structure_electronic.occupations" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "band_gap" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "charges" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "thermodynamics.temperature" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "thermodynamics.pressure" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "vibrational_frequencies" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "vibrational_frequencies.value" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "vibrational_frequencies.intensities" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + - capability: "vibrational_frequencies.raman_intensities" + source: "electronicparsers/castep/parser.py:CellParser.parse_configurations" + workflow: + - capability: "single_point" + source: "electronicparsers/castep/parser.py:CellParser.parse_workflow" + - capability: "geometry_optimization" + source: "electronicparsers/castep/parser.py:CellParser.parse_workflow" + - capability: "molecular_dynamics" + source: "electronicparsers/castep/parser.py:CellParser.parse_workflow" + - capability: "phonon" + source: "electronicparsers/castep/parser.py:CellParser.parse_workflow" +special_features: +- "Density Functional Perturbation Theory (DFPT) for phonons and linear response" +- "Phonon calculations with IR and Raman intensities" +- "Raman tensor calculations for vibrational spectroscopy" +- "Time-Dependent DFT (TDDFT) for excited states and optical properties" +- "Transition state search algorithms (QST, LST/QST, NEB)" +- "Variable-cell optimization for lattice parameter relaxation" +- "Multiple optimization algorithms (BFGS, LBFGS, damped MD, FIRE)" +- "Molecular dynamics with NVE, NVT (Nose-Hoover, Langevin), NPT ensembles" +- "On-the-fly pseudopotential generation" +- "DFT-D dispersion corrections (various SEDC schemes)" +- "Core-level spectroscopy (XPS, EELS) calculations" +- "NMR chemical shift calculations (CASTEP-NMR variant)" +- "Electric field gradients and hyperfine parameters" +- "Basis set correction (BS_correction) for improved energy differences" +- "Extensive library of ultrasoft pseudopotentials" +- "Symmetry-adapted k-point sampling" +notes: +- "CASTEP primarily uses .castep extension for output files" +- ".cell file contains structure and constraints" +- ".param file contains calculation parameters" +- task parameter defines calculation type: "singlepoint, geometryoptimisation, moleculardynamics, phonon, etc.'" +- Band structure calculations require separate spectral_task: "bandstructure'" +- "Phonon calculations produce extensive output with normal modes, Born charges, dielectric constants" +- "Raman tensors computed from second derivatives via DFPT" +- "TDDFT available for optical absorption and excitation energies" +- "Transition state search via QST (Quadratic Synchronous Transit) or NEB (Nudged Elastic Band)" +- "Strong focus on solid-state and materials properties" +- "Efficient parallelization for large systems" +- "Integrated with Materials Studio GUI" diff --git a/electronicparsers/charmm/FEATURES.yml b/electronicparsers/charmm/FEATURES.yml new file mode 100644 index 00000000..bea158bb --- /dev/null +++ b/electronicparsers/charmm/FEATURES.yml @@ -0,0 +1,34 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "CHARMM" + description: "Chemistry at HARvard Macromolecular Mechanics - molecular mechanics and dynamics package" + homepage: "https://www.charmm.org" + mainfile_patterns: + - "*.out" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Text output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/charmm/parser.py:CharmmParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/charmm/parser.py:CharmmParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/charmm/parser.py:CharmmParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/charmm/parser.py:CharmmParser.parse" + workflow: + - capability: "molecular_dynamics" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/charmm/parser.py:CharmmParser.parse" +special_features: +- "Molecular mechanics force fields" +- "Molecular dynamics simulations" +- "Macromolecular modeling" +notes: +- "CHARMM is primarily a molecular mechanics code, not a quantum chemistry package" +- "Focus on MD trajectories and force field calculations" diff --git a/electronicparsers/cp2k/FEATURES.yml b/electronicparsers/cp2k/FEATURES.yml new file mode 100644 index 00000000..a803ba61 --- /dev/null +++ b/electronicparsers/cp2k/FEATURES.yml @@ -0,0 +1,144 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "CP2K" + description: "CP2K - Quantum chemistry and solid state physics software package" + homepage: "https://www.cp2k.org/" + mainfile_patterns: + - "**/*.out" + - "**/cp2k.out" + supported_file_formats: + - name: "CP2K text output files" + supported: true + notes: "CP2K text output files (.out)" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.init_parser" + - name: "Input files" + supported: true + notes: "Input files (.in, .inp, .restart)" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.init_parser" + - name: "PDOS files" + supported: true + notes: "PDOS files (projected density of states)" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.init_parser" + - name: "Trajectory files" + supported: true + notes: "Trajectory files (XYZ, PDB)" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.init_parser" +runschema_capabilities: + run: + - capability: "program" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "time_run" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + method: + - capability: "electronic.method" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "electronic.n_spin_channels" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "electronic.smearing" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "dft.xc_functional" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "basis_set" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "basis_set.type" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "basis_set.cutoff" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "k_mesh" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "scf" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "pseudopotential" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + system: + - capability: "atoms" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse_system" + - capability: "atoms.labels" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse_system" + - capability: "atoms.positions" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse_system" + - capability: "atoms.lattice_vectors" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse_system" + - capability: "atoms.periodic" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse_system" + - capability: "atoms.velocities" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse_system" + - capability: "atoms_group" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse_system" + calculation: + - capability: "energy.total" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "energy.kinetic" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "energy.potential" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "energy.xc" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "energy.electrostatic" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "energy.nuclear_repulsion" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "energy.fermi" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "forces.total" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "stress.total" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "scf_iteration" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "band_structure_electronic" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "band_structure_electronic.energies" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "band_structure_electronic.kpoints" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "band_structure_electronic.occupations" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "dos_electronic" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "dos_electronic.total" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "dos_electronic.atom_projected" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "dos_electronic.orbital_projected" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "thermodynamics.temperature" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "thermodynamics.pressure" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + - capability: "vibrational_frequencies" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse" + workflow: + - capability: "single_point" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse_workflow" + - capability: "geometry_optimization" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse_workflow" + - capability: "molecular_dynamics" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse_workflow" + - capability: "phonon" + source: "electronicparsers/cp2k/parser.py:XYZTrajParser.parse_workflow" +special_features: +- "Gaussian and Plane Wave (GPW) method combining Gaussians with auxiliary plane waves" +- "QM/MM calculations with subsystem definitions (QMMM, FORCE_EVAL)" +- "Multiple simulation cells and force evaluations (MULTIPLE_FORCE_EVALS)" +- "Hybrid functionals (B3LYP, PBE0) with exact exchange" +- "DFT+U for transition metals and f-electron systems" +- "Multiple MD ensembles (NVE, NVT with various thermostats, NPT with barostats)" +- "Cell optimization (CELL_OPT) for lattice parameter relaxation" +- "Trajectory parsing from multiple formats (XYZ, PDB)" +- "Fragment-based calculations and subsystem approaches" +- "Vibrational analysis with normal modes and frequencies" +- "Linear-scaling DFT methods" +- "Born-Oppenheimer molecular dynamics (BOMD)" +- "Support for both periodic and molecular systems" +notes: +- "CP2K supports multiple calculation types (ENERGY, GEO_OPT, MD, CELL_OPT, etc.)" +- "GPW method uses Gaussian basis for wavefunctions and plane waves for density" +- "PDOS files must be present in same directory for DOS extraction" +- "Multiple FORCE_EVAL sections enable QM/MM and hybrid calculations" +- "GTH pseudopotentials are commonly used for efficiency" +- "ALL_ELECTRON calculations available for high accuracy" +- "Very flexible input structure with nested sections (KIND, &DFT, &QS, etc.)" +- "Supports both Quickstep (DFT) and FIST (force field) engines" diff --git a/electronicparsers/cpmd/FEATURES.yml b/electronicparsers/cpmd/FEATURES.yml new file mode 100644 index 00000000..fb1fc10d --- /dev/null +++ b/electronicparsers/cpmd/FEATURES.yml @@ -0,0 +1,55 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "CPMD" + description: "Car-Parrinello Molecular Dynamics - plane-wave DFT code for ab initio MD" + homepage: "https://www.cpmd.org/" + mainfile_patterns: + - "*.out" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + - capability: "time_run" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + - capability: "electronic.n_spin_channels" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + - capability: "scf" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + - capability: "temperature" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" + - capability: "molecular_dynamics" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/cpmd/parser.py:CPMDParser.parse" +special_features: +- "Car-Parrinello molecular dynamics methodology" +- "Plane-wave basis set" +- "Pseudopotential methods" +- "Born-Oppenheimer and Car-Parrinello MD" +- "NVE, NVT, and NPT ensembles" +notes: +- "Specialized in ab initio molecular dynamics" +- "Plane-wave DFT implementation" diff --git a/electronicparsers/crystal/FEATURES.yml b/electronicparsers/crystal/FEATURES.yml new file mode 100644 index 00000000..6981c92e --- /dev/null +++ b/electronicparsers/crystal/FEATURES.yml @@ -0,0 +1,64 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "CRYSTAL" + description: "CRYSTAL - Gaussian-type orbital DFT and Hartree-Fock code for periodic systems" + homepage: "https://www.crystal.unito.it/" + mainfile_patterns: + - "*.out" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "time_run" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "electronic.n_spin_channels" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "k_mesh" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "scf" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "symmetry" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "energy.fermi" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "band_structure_electronic" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "dos_electronic" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" + - capability: "geometry_optimization" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/crystal/parser.py:CrystalParser.parse" +special_features: +- "Gaussian-type orbital basis sets for periodic systems" +- "Hartree-Fock and DFT methods" +- "Hybrid functionals (B3LYP, PBE0, etc.)" +- "Extensive symmetry exploitation" +- "Band structure and DOS calculations" +- "Periodic boundary conditions (1D, 2D, 3D)" +notes: +- "Specialized in periodic systems with Gaussian basis sets" +- "Strong symmetry analysis capabilities" diff --git a/electronicparsers/dmol3/FEATURES.yml b/electronicparsers/dmol3/FEATURES.yml new file mode 100644 index 00000000..395c5bf8 --- /dev/null +++ b/electronicparsers/dmol3/FEATURES.yml @@ -0,0 +1,41 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "DMol3" + description: "Materials Studio DMol3 - numeric atomic orbital DFT code for molecules and clusters" + homepage: "http://dmol3.web.psi.ch/" + mainfile_patterns: + - "*.outmol" + supported_file_formats: + - name: "*.outmol" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/dmol3/parser.py:Dmol3Parser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/dmol3/parser.py:Dmol3Parser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/dmol3/parser.py:Dmol3Parser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/dmol3/parser.py:Dmol3Parser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/dmol3/parser.py:Dmol3Parser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/dmol3/parser.py:Dmol3Parser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/dmol3/parser.py:Dmol3Parser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/dmol3/parser.py:Dmol3Parser.parse" +special_features: +- "Numeric atomic orbitals (NAOs)" +- "Molecular and cluster calculations" +- "Materials Studio integration" +notes: +- "Numeric atomic orbital basis sets" +- "Optimized for molecular systems" diff --git a/electronicparsers/edmft/FEATURES.yml b/electronicparsers/edmft/FEATURES.yml new file mode 100644 index 00000000..6b1bd801 --- /dev/null +++ b/electronicparsers/edmft/FEATURES.yml @@ -0,0 +1,37 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "eDMFT" + description: "Embedded Dynamical Mean Field Theory code for strongly correlated systems" + homepage: "http://hauleweb.rutgers.edu/tutorials/" + mainfile_patterns: + - "*.out" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/edmft/parser.py:EDMFTParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/edmft/parser.py:EDMFTParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/edmft/parser.py:EDMFTParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/edmft/parser.py:EDMFTParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/edmft/parser.py:EDMFTParser.parse" + workflow: + - capability: "dmft" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/edmft/parser.py:EDMFTParser.parse" +special_features: +- "Dynamical Mean Field Theory (DMFT) approach" +- "Treatment of strongly correlated electron systems" +- "Embedded impurity solvers" +notes: +- "Specialized for DMFT calculations" +- "Treats strong electron correlations beyond DFT" diff --git a/electronicparsers/elk/FEATURES.yml b/electronicparsers/elk/FEATURES.yml new file mode 100644 index 00000000..77c723bd --- /dev/null +++ b/electronicparsers/elk/FEATURES.yml @@ -0,0 +1,46 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "Elk" + description: "All-electron full-potential linearized augmented-plane-wave (FP-LAPW) DFT code" + homepage: "http://elk.sourceforge.net/" + mainfile_patterns: + - "INFO.OUT" + supported_file_formats: + - name: "INFO.OUT" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/elk/parser.py:ElkParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/elk/parser.py:ElkParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/elk/parser.py:ElkParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/elk/parser.py:ElkParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/elk/parser.py:ElkParser.parse" + - capability: "k_mesh" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/elk/parser.py:ElkParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/elk/parser.py:ElkParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/elk/parser.py:ElkParser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/elk/parser.py:ElkParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/elk/parser.py:ElkParser.parse" +special_features: +- "Full-potential LAPW method" +- "All-electron calculations (no pseudopotentials)" +- "High accuracy for electronic structure" +- "Spin-orbit coupling" +notes: +- "All-electron full-potential method" +- "LAPW basis set" diff --git a/electronicparsers/exciting/FEATURES.yml b/electronicparsers/exciting/FEATURES.yml new file mode 100644 index 00000000..c458ed6f --- /dev/null +++ b/electronicparsers/exciting/FEATURES.yml @@ -0,0 +1,70 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "exciting" + description: "All-electron full-potential linearized augmented plane-wave (FP-LAPW) code" + homepage: "http://exciting-code.org/" + mainfile_patterns: + - "*.OUT*" + - "INFO.OUT" + supported_file_formats: + - name: "*.OUT" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "time_run" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "electronic.n_spin_channels" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "k_mesh" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "scf" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "symmetry" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "energy.fermi" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "scf_iteration" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "band_structure_electronic" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "dos_electronic" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" + - capability: "geometry_optimization" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/exciting/parser.py:ExcitingParser.parse" +special_features: +- "Full-potential LAPW method" +- "All-electron calculations" +- "GW and BSE calculations for excited states" +- "Time-dependent DFT (TDDFT)" +- "Comprehensive band structure and DOS" +- "Spin-orbit coupling" +notes: +- "All-electron full-potential method" +- "Focus on excited-state properties" +- "Large parser implementation (~3400 lines)" diff --git a/electronicparsers/fhiaims/FEATURES.yml b/electronicparsers/fhiaims/FEATURES.yml new file mode 100644 index 00000000..0e02b475 --- /dev/null +++ b/electronicparsers/fhiaims/FEATURES.yml @@ -0,0 +1,165 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "FHI-aims" + description: "Fritz Haber Institute ab initio molecular simulations - all-electron electronic structure code" + homepage: "https://fhi-aims.org/" + mainfile_patterns: + - "**/aims.out" + - "**/*aims*.out" + supported_file_formats: + - name: "FHI-aims text output files" + supported: true + notes: "FHI-aims text output files (.out)" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.init_parser" + - name: "geometry.in" + supported: true + notes: "geometry.in (input structure)" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.init_parser" + - name: "control.in" + supported: true + notes: "control.in (input parameters)" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.init_parser" + - name: "BAND*.out" + supported: true + notes: "BAND*.out (band structure files)" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.init_parser" + - name: "DOS*.dat" + supported: true + notes: "DOS*.dat (density of states files)" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.init_parser" +runschema_capabilities: + run: + - capability: "program" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse" + - capability: "time_run" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse" + method: + - capability: "electronic.method" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "electronic.n_spin_channels" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "electronic.smearing" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "electronic.relativity_method" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "electronic.van_der_waals_method" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "dft.xc_functional" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "basis_set" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "basis_set.type" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "basis_set.native_tier" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "k_mesh" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "scf" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "pseudopotential" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + - capability: "gw" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_method" + system: + - capability: "atoms" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_system" + - capability: "atoms.labels" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_system" + - capability: "atoms.positions" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_system" + - capability: "atoms.lattice_vectors" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_system" + - capability: "atoms.periodic" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_system" + - capability: "atoms.velocities" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_system" + calculation: + - capability: "energy.total" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "energy.free" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "energy.kinetic" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "energy.xc" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "energy.electrostatic" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "energy.nuclear_repulsion" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "energy.zero_point" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "energy.fermi" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "energy.highest_occupied" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "energy.lowest_unoccupied" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "forces.total" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "stress.total" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "scf_iteration" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "band_structure_electronic" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "band_structure_electronic.energies" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "band_structure_electronic.kpoints" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "band_structure_electronic.occupations" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "dos_electronic" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "dos_electronic.total" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "dos_electronic.atom_projected" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "dos_electronic.orbital_projected" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "band_gap" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "charges" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "thermodynamics.temperature" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "thermodynamics.pressure" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + - capability: "vibrational_frequencies" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_configurations" + workflow: + - capability: "single_point" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_workflow" + - capability: "geometry_optimization" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_workflow" + - capability: "molecular_dynamics" + source: "electronicparsers/fhiaims/parser.py:FHIAimsControlParser.parse_workflow" +special_features: +- "All-electron calculations with no pseudopotential approximations" +- "Numerical atomic orbital (NAO) basis sets with hierarchical tiers" +- "Hybrid functionals (PBE0, HSE06, B3LYP) with efficient exact exchange" +- "GW calculations (G0W0, scGW) for accurate band structures and gaps" +- Beyond-GW methods: "RPA, MP2, coupled-cluster (CCSD)'" +- "Multiple van der Waals correction schemes (TS, MBD, vdW-DF)" +- "Scalar relativistic effects (ZORA) and spin-orbit coupling" +- "Non-collinear magnetism for complex magnetic structures" +- "Tier-based basis set convergence (light to tier4 for completeness)" +- "Multiple DOS energy references (Fermi level, vacuum level, custom)" +- "Implicit solvation models (MERM, MPB, MPBE)" +- "NMR shielding tensor calculations" +- "Efficient handling of large systems with linear-scaling DFT" +- "Extensive molecular and periodic system support" +- "Advanced SCF convergence techniques (DIIS, Pulay mixing)" +notes: +- "FHI-aims uses all-electron basis sets by default (no frozen core)" +- Basis set quality controlled by tier system: "light < tight < really_tight'" +- "NAO basis functions optimized for different chemical environments" +- "Excellent for molecular systems and surfaces" +- "Band structure output in separate BAND*.out files with output band syntax" +- "DOS output in DOS*.dat files, can be species/atom/orbital-projected" +- "GW calculations require SCF ground state first" +- "control.in specifies computational parameters and basis set tiers" +- "geometry.in contains atomic structure and lattice vectors" +- "Very accurate for band gaps and excited state properties" +- "Recommended for systems requiring all-electron accuracy" diff --git a/electronicparsers/fleur/FEATURES.yml b/electronicparsers/fleur/FEATURES.yml new file mode 100644 index 00000000..58fcde39 --- /dev/null +++ b/electronicparsers/fleur/FEATURES.yml @@ -0,0 +1,46 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "FLEUR" + description: "Full-potential linearized augmented plane-wave (FLAPW) DFT code" + homepage: "https://www.flapw.de/" + mainfile_patterns: + - "*.xml" + - "out.xml" + supported_file_formats: + - name: "*.xml" + supported: true + notes: "XML-based output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fleur/parser.py:FleurParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fleur/parser.py:FleurParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fleur/parser.py:FleurParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fleur/parser.py:FleurParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fleur/parser.py:FleurParser.parse" + - capability: "k_mesh" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fleur/parser.py:FleurParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fleur/parser.py:FleurParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fleur/parser.py:FleurParser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fleur/parser.py:FleurParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fleur/parser.py:FleurParser.parse" +special_features: +- "Full-potential LAPW method" +- "XML-based structured output" +- "All-electron calculations" +notes: +- "Uses XML format for structured data" +- "Full-potential all-electron method" diff --git a/electronicparsers/fplo/FEATURES.yml b/electronicparsers/fplo/FEATURES.yml new file mode 100644 index 00000000..60f510fd --- /dev/null +++ b/electronicparsers/fplo/FEATURES.yml @@ -0,0 +1,38 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "FPLO" + description: "Full-Potential Local-Orbital DFT code for solids" + homepage: "https://www.fplo.de/" + mainfile_patterns: + - "+log" + supported_file_formats: + - name: "+log" + supported: true + notes: "Primary log file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fplo/parser.py:FploParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fplo/parser.py:FploParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fplo/parser.py:FploParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fplo/parser.py:FploParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fplo/parser.py:FploParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fplo/parser.py:FploParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/fplo/parser.py:FploParser.parse" +special_features: +- "Full-potential local-orbital method" +- "Optimized for solid-state calculations" +notes: +- "Uses local orbitals instead of plane waves" +- "Full-potential all-electron approach" diff --git a/electronicparsers/gamess/FEATURES.yml b/electronicparsers/gamess/FEATURES.yml new file mode 100644 index 00000000..503c9ab0 --- /dev/null +++ b/electronicparsers/gamess/FEATURES.yml @@ -0,0 +1,49 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "GAMESS" + description: "General Atomic and Molecular Electronic Structure System - quantum chemistry package" + homepage: "https://www.msg.chem.iastate.edu/gamess/" + mainfile_patterns: + - "*.out" + - "*.log" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gamess/parser.py:GamessParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gamess/parser.py:GamessParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gamess/parser.py:GamessParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gamess/parser.py:GamessParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gamess/parser.py:GamessParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gamess/parser.py:GamessParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gamess/parser.py:GamessParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gamess/parser.py:GamessParser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gamess/parser.py:GamessParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gamess/parser.py:GamessParser.parse" + - capability: "geometry_optimization" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gamess/parser.py:GamessParser.parse" +special_features: +- "Comprehensive quantum chemistry methods (HF, DFT, MCSCF, CI, CC)" +- "Gaussian-type basis sets" +- "Molecular properties and excited states" +- "Solvation models" +notes: +- "Molecular quantum chemistry package" +- "Wide range of ab initio methods" diff --git a/electronicparsers/gaussian/FEATURES.yml b/electronicparsers/gaussian/FEATURES.yml new file mode 100644 index 00000000..a2852a79 --- /dev/null +++ b/electronicparsers/gaussian/FEATURES.yml @@ -0,0 +1,108 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "Gaussian" + description: "Gaussian - comprehensive quantum chemistry package for molecular systems" + homepage: "http://gaussian.com" + mainfile_patterns: + - "*.log" + - "*.out" + supported_file_formats: + - name: "*.log" + supported: true + notes: "*.log (primary output file)" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.init_parser" + - name: "*.out" + supported: true + notes: "*.out (output file)" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.init_parser" +runschema_capabilities: + run: + - capability: "program" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse" + - capability: "time_run" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse" + method: + - capability: "electronic.method" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_method" + - capability: "electronic.n_spin_channels" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_method" + - capability: "dft.xc_functional" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_method" + - capability: "basis_set" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_method" + - capability: "scf" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_method" + system: + - capability: "atoms" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_system" + - capability: "atoms.labels" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_system" + - capability: "atoms.positions" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_system" + - capability: "atoms.periodic" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_system" + calculation: + - capability: "energy.total" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "energy.nuclear_repulsion" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "energy.kinetic" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "energy.potential" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "energy.xc" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "energy.exchange" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "energy.correlation" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "energy.highest_occupied" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "energy.lowest_unoccupied" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "energy.zero_point" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "forces.total" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "scf_iteration" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "band_structure_electronic" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "eigenvalues" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "occupations" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "charges" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "vibrational_frequencies" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + - capability: "thermodynamics" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse_configurations" + workflow: + - capability: "single_point" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse" + - capability: "geometry_optimization" + source: "electronicparsers/gaussian/parser.py:GaussianOutParser.parse" +special_features: +- "Comprehensive DFT functional library (LDA, GGA, meta-GGA, hybrid, double-hybrid)" +- Post-Hartree-Fock methods: "MP2, MP3, MP4, MP5, CCSD, CCSD(T), CI, QCISD'" +- Hybrid functionals: "B3LYP, B3PW91, PBE0, HSE06, M06, M11, etc.'" +- Range-separated functionals: "LC-ωPBE, CAM-B3LYP, ωB97, ωB97X, ωB97X-D'" +- Double-hybrid functionals: "B2PLYP, MPW2PLYP'" +- Semiempirical methods: "AM1, PM3, PM6, PM7'" +- Composite methods: "G1, G2, G3, CBS-4, CBS-Q, CBS-QB3'" +- "Gaussian-type orbital (GTO) basis sets with extensive library" +- "Vibrational frequency analysis with IR and Raman intensities" +- "Thermochemistry calculations (ZPE, enthalpy, entropy, Gibbs free energy)" +- "Molecular multipole moments (dipole, quadrupole)" +- "Orbital symmetry analysis" +- "Excited state calculations (TD-DFT, CIS, CASSCF)" +- Charge analysis: "Mulliken, NPA, Hirshfeld, APT'" +notes: +- "Gaussian is primarily used for molecular (non-periodic) systems" +- "Parser handles single-point and geometry optimization calculations" +- "Extensive support for correlated wavefunction methods beyond DFT" +- "Vibrational analysis includes normal modes, frequencies, and intensities" +- "Parser extracts thermochemical properties when available" diff --git a/electronicparsers/gpaw/FEATURES.yml b/electronicparsers/gpaw/FEATURES.yml new file mode 100644 index 00000000..42edeaf7 --- /dev/null +++ b/electronicparsers/gpaw/FEATURES.yml @@ -0,0 +1,59 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "GPAW" + description: "Grid-based Projector Augmented Wave method - DFT code with real-space grids" + homepage: "https://wiki.fysik.dtu.dk/gpaw/" + mainfile_patterns: + - "*.gpw" + - "*.gpw2" + supported_file_formats: + - name: "*.gpw" + supported: true + notes: "GPAW restart file (binary)" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + - name: "*.gpw2" + supported: true + notes: "GPAW restart file v2 (binary)" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + - capability: "electronic.n_spin_channels" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + - capability: "k_mesh" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + - capability: "energy.fermi" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/gpaw/parser.py:GPAWParser.parse" +special_features: +- "Projector Augmented Wave (PAW) method" +- "Real-space grid representation" +- "Efficient parallelization" +- "Python-based interface (ASE integration)" +- "TDDFT for excited states" +notes: +- "Uses real-space grids instead of plane waves" +- "PAW method for efficient all-electron accuracy" +- "Binary restart file format" diff --git a/electronicparsers/magres/FEATURES.yml b/electronicparsers/magres/FEATURES.yml new file mode 100644 index 00000000..161f5b8f --- /dev/null +++ b/electronicparsers/magres/FEATURES.yml @@ -0,0 +1,35 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "magres" + description: "Magnetic resonance file format parser - for NMR and EPR calculations" + homepage: "https://www.ccpnc.ac.uk/docs/magres" + mainfile_patterns: + - "*.magres" + supported_file_formats: + - name: "*.magres" + supported: true + notes: "Magres format file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/magres/parser.py:MagresParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/magres/parser.py:MagresParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/magres/parser.py:MagresParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/magres/parser.py:MagresParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/magres/parser.py:MagresParser.parse" +special_features: +- "NMR chemical shielding and shifts" +- "EPR g-tensors and hyperfine couplings" +- "Electric field gradients" +- "J-coupling constants" +notes: +- "Specialized format for magnetic resonance properties" +- "Output from various ab initio codes (CASTEP, Quantum ESPRESSO, etc.)" diff --git a/electronicparsers/molcas/FEATURES.yml b/electronicparsers/molcas/FEATURES.yml new file mode 100644 index 00000000..f3b3c9e7 --- /dev/null +++ b/electronicparsers/molcas/FEATURES.yml @@ -0,0 +1,41 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "Molcas" + description: "Molcas/OpenMolcas - quantum chemistry package for multiconfigurational methods" + homepage: "http://molcas.org/" + mainfile_patterns: + - "*.out" + - "*.log" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/molcas/parser.py:MolcasParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/molcas/parser.py:MolcasParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/molcas/parser.py:MolcasParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/molcas/parser.py:MolcasParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/molcas/parser.py:MolcasParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/molcas/parser.py:MolcasParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/molcas/parser.py:MolcasParser.parse" +special_features: +- "Multiconfigurational methods (CASSCF, CASPT2, RASSCF)" +- "Excited state calculations" +- "Spin-orbit coupling" +- "Relativistic effects" +notes: +- "Specialized in multiconfigurational methods" +- "Strong focus on excited states and spectroscopy" diff --git a/electronicparsers/mopac/FEATURES.yml b/electronicparsers/mopac/FEATURES.yml new file mode 100644 index 00000000..3088c765 --- /dev/null +++ b/electronicparsers/mopac/FEATURES.yml @@ -0,0 +1,42 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "MOPAC" + description: "Molecular Orbital PACkage - semiempirical quantum chemistry methods" + homepage: "http://openmopac.net/" + mainfile_patterns: + - "*.out" + - "*.aux" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/mopac/parser.py:MopacParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/mopac/parser.py:MopacParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/mopac/parser.py:MopacParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/mopac/parser.py:MopacParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/mopac/parser.py:MopacParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/mopac/parser.py:MopacParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/mopac/parser.py:MopacParser.parse" + - capability: "geometry_optimization" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/mopac/parser.py:MopacParser.parse" +special_features: +- "Semiempirical methods (AM1, PM3, PM6, PM7)" +- "Fast calculations for large molecules" +- "Molecular properties and thermochemistry" +notes: +- "Semiempirical quantum chemistry" +- "Computationally efficient for large systems" diff --git a/electronicparsers/nwchem/FEATURES.yml b/electronicparsers/nwchem/FEATURES.yml new file mode 100644 index 00000000..285ddc9a --- /dev/null +++ b/electronicparsers/nwchem/FEATURES.yml @@ -0,0 +1,48 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "NWChem" + description: "Northwest Computational Chemistry Package - comprehensive quantum chemistry package" + homepage: "https://nwchemgit.github.io/" + mainfile_patterns: + - "*.out" + - "*.nwo" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/nwchem/parser.py:NWChemParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/nwchem/parser.py:NWChemParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/nwchem/parser.py:NWChemParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/nwchem/parser.py:NWChemParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/nwchem/parser.py:NWChemParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/nwchem/parser.py:NWChemParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/nwchem/parser.py:NWChemParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/nwchem/parser.py:NWChemParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/nwchem/parser.py:NWChemParser.parse" + - capability: "geometry_optimization" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/nwchem/parser.py:NWChemParser.parse" +special_features: +- "Wide range of QM methods (DFT, HF, MP2, CCSD, MCSCF)" +- "Plane-wave DFT module" +- "QM/MM capabilities" +- "Relativistic calculations" +- "Solvation models" +notes: +- "Comprehensive quantum chemistry package" +- "Both molecular and periodic DFT" diff --git a/electronicparsers/ocean/FEATURES.yml b/electronicparsers/ocean/FEATURES.yml new file mode 100644 index 00000000..3f776ea4 --- /dev/null +++ b/electronicparsers/ocean/FEATURES.yml @@ -0,0 +1,36 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "OCEAN" + description: "Obtaining Core Excitations from Ab initio Electronic structure and NRIXS - X-ray spectroscopy code" + homepage: "https://feff.phys.washington.edu/OCEAN/index.html" + mainfile_patterns: + - "*.h5" + - "*.hdf5" + supported_file_formats: + - name: "*.h5" + supported: true + notes: "HDF5 output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ocean/parser.py:OceanParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ocean/parser.py:OceanParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ocean/parser.py:OceanParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ocean/parser.py:OceanParser.parse" + workflow: + - capability: "xas" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/ocean/parser.py:OceanParser.parse" +special_features: +- "X-ray absorption spectroscopy (XAS)" +- "X-ray emission spectroscopy (XES)" +- "Core-level excitations" +- "Bethe-Salpeter equation (BSE)" +notes: +- "Specialized for X-ray spectroscopy" +- "HDF5-based output format" diff --git a/electronicparsers/octopus/FEATURES.yml b/electronicparsers/octopus/FEATURES.yml new file mode 100644 index 00000000..d6afadd6 --- /dev/null +++ b/electronicparsers/octopus/FEATURES.yml @@ -0,0 +1,58 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "Octopus" + description: "Real-space, real-time TDDFT code for quantum dynamics" + homepage: "https://octopus-code.org/" + mainfile_patterns: + - "*.out" + - "exec/messages" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + - capability: "time_run" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + - capability: "electronic.n_spin_channels" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + - capability: "scf" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + - capability: "energy.fermi" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" + - capability: "tddft" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/octopus/parser.py:OctopusParser.parse" +special_features: +- "Real-space grid representation" +- "Time-dependent DFT (TDDFT)" +- "Real-time electron dynamics" +- "Optical spectroscopy" +- "Strong-field physics" +notes: +- "Specialized for time-dependent phenomena" +- "Real-space grids for wavefunction representation" diff --git a/electronicparsers/onetep/FEATURES.yml b/electronicparsers/onetep/FEATURES.yml new file mode 100644 index 00000000..e6f8913d --- /dev/null +++ b/electronicparsers/onetep/FEATURES.yml @@ -0,0 +1,43 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "ONETEP" + description: "Order-N Electronic Total Energy Package - linear-scaling DFT" + homepage: "https://www.onetep.org/" + mainfile_patterns: + - "*.out" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/onetep/parser.py:OnetepParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/onetep/parser.py:OnetepParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/onetep/parser.py:OnetepParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/onetep/parser.py:OnetepParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/onetep/parser.py:OnetepParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/onetep/parser.py:OnetepParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/onetep/parser.py:OnetepParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/onetep/parser.py:OnetepParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/onetep/parser.py:OnetepParser.parse" +special_features: +- "Linear-scaling DFT (O(N) complexity)" +- "Non-orthogonal generalized Wannier functions (NGWFs)" +- "Large system calculations (thousands of atoms)" +notes: +- "Linear-scaling enables very large system calculations" +- "NGWF basis set optimization" diff --git a/electronicparsers/openmx/FEATURES.yml b/electronicparsers/openmx/FEATURES.yml new file mode 100644 index 00000000..fe8cf60e --- /dev/null +++ b/electronicparsers/openmx/FEATURES.yml @@ -0,0 +1,50 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "OpenMX" + description: "Open source package for Material eXplorer - DFT with localized basis functions" + homepage: "http://www.openmx-square.org/" + mainfile_patterns: + - "*.out" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" + - capability: "electronic.n_spin_channels" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" + - capability: "k_mesh" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/openmx/parser.py:OpenmxParser.parse" +special_features: +- "Localized pseudo-atomic orbitals" +- "O(N) methods for large systems" +- "Non-collinear magnetism" +- "Spin-orbit coupling" +notes: +- "Efficient for large-scale calculations" +- "Localized basis functions" diff --git a/electronicparsers/orca/FEATURES.yml b/electronicparsers/orca/FEATURES.yml new file mode 100644 index 00000000..77c3fa4b --- /dev/null +++ b/electronicparsers/orca/FEATURES.yml @@ -0,0 +1,86 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "ORCA" + description: "ORCA - quantum chemistry program for molecular systems with focus on spectroscopy" + homepage: "https://www.faccts.de/orca/" + mainfile_patterns: + - "*.out" + supported_file_formats: + - name: "*.out" + supported: true + notes: "*.out (primary output file)" + source: "electronicparsers/orca/parser.py:OutParser.init_parser" +runschema_capabilities: + run: + - capability: "program" + source: "electronicparsers/orca/parser.py:OutParser.parse" + method: + - capability: "electronic.method" + source: "electronicparsers/orca/parser.py:OutParser.parse_method" + - capability: "dft.xc_functional" + source: "electronicparsers/orca/parser.py:OutParser.parse_method" + - capability: "basis_set" + source: "electronicparsers/orca/parser.py:OutParser.parse_method" + - capability: "scf" + source: "electronicparsers/orca/parser.py:OutParser.parse_method" + system: + - capability: "atoms" + source: "electronicparsers/orca/parser.py:OutParser.parse_system" + - capability: "atoms.labels" + source: "electronicparsers/orca/parser.py:OutParser.parse_system" + - capability: "atoms.positions" + source: "electronicparsers/orca/parser.py:OutParser.parse_system" + calculation: + - capability: "energy.total" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + - capability: "energy.nuclear_repulsion" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + - capability: "energy.kinetic" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + - capability: "energy.potential" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + - capability: "energy.xc" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + - capability: "energy.exchange" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + - capability: "energy.correlation" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + - capability: "scf_iteration" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + - capability: "band_structure_electronic" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + - capability: "eigenvalues" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + - capability: "charges" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + - capability: "spectra" + source: "electronicparsers/orca/parser.py:OutParser.parse_configurations" + workflow: + - capability: "single_point" + source: "electronicparsers/orca/parser.py:OutParser.parse" + - capability: "geometry_optimization" + source: "electronicparsers/orca/parser.py:OutParser.parse" +special_features: +- Comprehensive DFT functionals: "LDA (VWN, PWLDA), GGA (BP86, PW91, PBE, BLYP, OLYP), meta-GGA (TPSS, M06L)'" +- Hybrid functionals: "B3LYP, PBE0, TPSSh, B3PW91, M06, M062X, O3LYP, X3LYP, PW6B95'" +- Double-hybrid functionals: "B2PLYP, mB2PLYP, PWPB95'" +- Range-separated functionals: "CAM-B3LYP, ωB97, ωB97X'" +- Dispersion corrections: "DFT-D2, DFT-D3, DFT-D4'" +- Post-HF methods: "MP2, MP3, CCSD, CCSD(T), local correlation methods'" +- Coupled-cluster methods: "DLPNO-CCSD(T) for large systems'" +- Multi-reference methods: "CASSCF, NEVPT2, MRCI'" +- SCF convergence tiers: "SloppySCF, LooseSCF, NormalSCF, StrongSCF, TightSCF, VeryTightSCF, ExtremeSCF'" +- "Gaussian-type basis sets with auxiliary basis sets for RI approximations" +- "Split-RI-J for efficient Coulomb potential evaluation" +- Spectroscopy focus: "UV/Vis, IR, Raman, NMR, EPR, Mössbauer'" +- "Time-dependent DFT for excited states" +- "Spin-orbit coupling calculations" +- "Solvent effects via COSMO, CPCM, SMD" +notes: +- "ORCA specializes in molecular spectroscopy and transition metal chemistry" +- "Strong support for correlated wavefunction methods and local correlation" +- "Parser handles DFT, HF, and post-HF calculations" +- "Extracts detailed SCF convergence data including density changes" +- "Basis set information includes both wavefunction and auxiliary basis sets" diff --git a/electronicparsers/psi4/FEATURES.yml b/electronicparsers/psi4/FEATURES.yml new file mode 100644 index 00000000..c2e87360 --- /dev/null +++ b/electronicparsers/psi4/FEATURES.yml @@ -0,0 +1,49 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "Psi4" + description: "Open-source quantum chemistry package for high-accuracy calculations" + homepage: "https://psicode.org/" + mainfile_patterns: + - "*.out" + - "*.dat" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/psi4/parser.py:Psi4Parser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/psi4/parser.py:Psi4Parser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/psi4/parser.py:Psi4Parser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/psi4/parser.py:Psi4Parser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/psi4/parser.py:Psi4Parser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/psi4/parser.py:Psi4Parser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/psi4/parser.py:Psi4Parser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/psi4/parser.py:Psi4Parser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/psi4/parser.py:Psi4Parser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/psi4/parser.py:Psi4Parser.parse" + - capability: "geometry_optimization" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/psi4/parser.py:Psi4Parser.parse" +special_features: +- "Wide range of ab initio methods (HF, DFT, MP2, CCSD, SAPT)" +- "Symmetry-adapted perturbation theory (SAPT)" +- "Density fitting and Cholesky decomposition" +- "Python-based interface" +notes: +- "Modern Python-based quantum chemistry package" +- "Extensive method library" diff --git a/electronicparsers/qball/FEATURES.yml b/electronicparsers/qball/FEATURES.yml new file mode 100644 index 00000000..dc1ede4f --- /dev/null +++ b/electronicparsers/qball/FEATURES.yml @@ -0,0 +1,43 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "Qball" + description: "Plane-wave DFT code for first-principles molecular dynamics" + homepage: "https://github.com/LLNL/qball" + mainfile_patterns: + - "*.out" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qball/parser.py:QBallParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qball/parser.py:QBallParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qball/parser.py:QBallParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qball/parser.py:QBallParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qball/parser.py:QBallParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qball/parser.py:QBallParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qball/parser.py:QBallParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qball/parser.py:QBallParser.parse" + - capability: "molecular_dynamics" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qball/parser.py:QBallParser.parse" +special_features: +- "Plane-wave basis set" +- "First-principles molecular dynamics" +- "Optimized for HPC systems" +notes: +- "Based on Qbox, developed at Lawrence Livermore National Laboratory" +- "Plane-wave DFT with pseudopotentials" diff --git a/electronicparsers/qbox/FEATURES.yml b/electronicparsers/qbox/FEATURES.yml new file mode 100644 index 00000000..f83c822a --- /dev/null +++ b/electronicparsers/qbox/FEATURES.yml @@ -0,0 +1,51 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "Qbox" + description: "First-principles molecular dynamics code using plane-wave basis" + homepage: "http://qboxcode.org/" + mainfile_patterns: + - "*.xml" + - "*.out" + supported_file_formats: + - name: "*.xml" + supported: true + notes: "XML output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qbox/parser.py:QboxParser.parse" + - name: "*.out" + supported: true + notes: "Text output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qbox/parser.py:QboxParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qbox/parser.py:QboxParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qbox/parser.py:QboxParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qbox/parser.py:QboxParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qbox/parser.py:QboxParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qbox/parser.py:QboxParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qbox/parser.py:QboxParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qbox/parser.py:QboxParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qbox/parser.py:QboxParser.parse" + - capability: "molecular_dynamics" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/qbox/parser.py:QboxParser.parse" +special_features: +- "Plane-wave DFT" +- "First-principles molecular dynamics" +- "XML-based output format" +- "Massively parallel scalability" +notes: +- "Optimized for large-scale parallel calculations" +- "XML format for structured output" diff --git a/electronicparsers/quantumespresso/FEATURES.yml b/electronicparsers/quantumespresso/FEATURES.yml new file mode 100644 index 00000000..4211797d --- /dev/null +++ b/electronicparsers/quantumespresso/FEATURES.yml @@ -0,0 +1,162 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "Quantum ESPRESSO" + description: "Quantum ESPRESSO - integrated suite of open-source codes for electronic structure and materials modeling" + homepage: "https://www.quantum-espresso.org/" + mainfile_patterns: + - "**/pw.*.out" + - "**/pwscf.out" + - "**/cp.*.out" + - "**/ph.*.out" + supported_file_formats: + - name: "pw.x output" + supported: true + notes: "pw.x output (DFT calculations)" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.init_parser" + - name: "cp.x output" + supported: true + notes: "cp.x output (Car-Parrinello MD)" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.init_parser" + - name: "ph.x output" + supported: true + notes: "ph.x output (phonon calculations)" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.init_parser" + - name: "pp.x output" + supported: true + notes: "pp.x output (post-processing)" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.init_parser" + - name: "XML data files" + supported: true + notes: "XML data files (data-file-schema.xml)" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.init_parser" +runschema_capabilities: + run: + - capability: "program" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse" + - capability: "time_run" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse" + method: + - capability: "electronic.method" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + - capability: "electronic.n_spin_channels" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + - capability: "electronic.smearing" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + - capability: "electronic.relativity_method" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + - capability: "dft.xc_functional" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + - capability: "basis_set" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + - capability: "basis_set.type" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + - capability: "basis_set.cutoff" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + - capability: "k_mesh" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + - capability: "scf" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + - capability: "pseudopotential" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + - capability: "pseudopotential.type" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_method" + system: + - capability: "atoms" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_system" + - capability: "atoms.labels" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_system" + - capability: "atoms.positions" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_system" + - capability: "atoms.lattice_vectors" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_system" + - capability: "atoms.periodic" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_system" + - capability: "atoms.velocities" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_system" + calculation: + - capability: "energy.total" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "energy.free" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "energy.kinetic" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "energy.xc" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "energy.electrostatic" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "energy.ewald" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "energy.zero_point" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "energy.fermi" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "energy.highest_occupied" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "energy.lowest_unoccupied" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "forces.total" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "stress.total" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "scf_iteration" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "band_structure_electronic" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "band_structure_electronic.energies" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "band_structure_electronic.kpoints" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "band_structure_electronic.occupations" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "dos_electronic" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "dos_electronic.total" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "dos_electronic.atom_projected" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "dos_electronic.orbital_projected" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "band_gap" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "thermodynamics.pressure" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "thermodynamics.temperature" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + - capability: "vibrational_frequencies" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse_configurations" + workflow: + - capability: "single_point" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse" + - capability: "geometry_optimization" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse" + - capability: "molecular_dynamics" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse" + - capability: "phonon" + source: "electronicparsers/quantumespresso/parser.py:QuantumEspressoRunParser.parse" +special_features: +- "Density Functional Perturbation Theory (DFPT) for phonons and response properties" +- "Non-collinear magnetism and spin-orbit coupling" +- "Car-Parrinello molecular dynamics (cp.x)" +- "Born-Oppenheimer molecular dynamics in pw.x" +- "Berry phase calculations for polarization" +- "Variable-cell relaxation (vc-relax) for lattice optimization" +- "Multiple optimization algorithms (BFGS, damped dynamics, FIRE)" +- "Extensive pseudopotential library (NC, USPP, PAW formats)" +- "Parallel execution with domain decomposition and k-point parallelization" +- "Integrated suite with multiple codes (pw.x, ph.x, pp.x, projwfc.x, etc.)" +- "Automatic workflow linking between pw.x and ph.x calculations" +- "Electric field calculations (sawtooth, homogeneous)" +- "Hubbard U corrections (DFT+U) for correlated systems" +- "Constrained DFT calculations" +notes: +- QE is a suite: "pw.x (plane waves), cp.x (Car-Parrinello), ph.x (phonons), etc.'" +- "pw.x is the most commonly used program for DFT calculations" +- "Parser identifies program type from 'Program PWSCF.*starts' or similar patterns" +- "XML data files (data-file-schema.xml) provide structured output but text parsing is primary" +- calculation parameter in input: "'scf'', ''relax'', ''vc-relax'', ''md'', ''vc-md''" +- "Phonon calculations produce separate output files with dynamical matrices" +- "Post-processing codes (dos.x, projwfc.x) generate additional data files" +- Units: "Rydberg atomic units in input/output, converted to eV in parser'" +- "Very active development with regular releases and extensive user community" diff --git a/electronicparsers/siesta/FEATURES.yml b/electronicparsers/siesta/FEATURES.yml new file mode 100644 index 00000000..bd29ef43 --- /dev/null +++ b/electronicparsers/siesta/FEATURES.yml @@ -0,0 +1,54 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "SIESTA" + description: "Spanish Initiative for Electronic Simulations with Thousands of Atoms - DFT with numerical atomic orbitals" + homepage: "https://siesta-project.org/" + mainfile_patterns: + - "*.out" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + - capability: "electronic.n_spin_channels" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + - capability: "k_mesh" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + - capability: "energy.fermi" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" + - capability: "geometry_optimization" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/siesta/parser.py:SiestaParser.parse" +special_features: +- "Numerical atomic orbital (NAO) basis sets" +- "O(N) methods for large systems" +- "DFT+U for correlated systems" +- "Non-collinear magnetism and spin-orbit coupling" +notes: +- "Efficient for large-scale calculations with NAO basis" +- "Linear-scaling methods available" diff --git a/electronicparsers/soliddmft/FEATURES.yml b/electronicparsers/soliddmft/FEATURES.yml new file mode 100644 index 00000000..aa4ce47a --- /dev/null +++ b/electronicparsers/soliddmft/FEATURES.yml @@ -0,0 +1,40 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "solid_dmft" + description: "Ab initio DMFT package for strongly correlated materials integrated with DFT codes" + homepage: "https://triqs.github.io/solid_dmft/" + mainfile_patterns: + - "*.h5" + - "*.hdf5" + supported_file_formats: + - name: "*.h5" + supported: true + notes: "HDF5 output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/soliddmft/parser.py:SolidDMFTParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/soliddmft/parser.py:SolidDMFTParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/soliddmft/parser.py:SolidDMFTParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/soliddmft/parser.py:SolidDMFTParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/soliddmft/parser.py:SolidDMFTParser.parse" + workflow: + - capability: "dmft" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/soliddmft/parser.py:SolidDMFTParser.parse" +special_features: +- "DFT+DMFT approach for strongly correlated materials" +- "Integration with DFT codes (VASP, Quantum ESPRESSO, etc.)" +- "TRIQS library for many-body calculations" +- "Treatment of Hubbard-like correlations" +notes: +- "Combines DFT with Dynamical Mean Field Theory" +- "HDF5-based output format" +- "Built on TRIQS library" diff --git a/electronicparsers/tbstudio/FEATURES.yml b/electronicparsers/tbstudio/FEATURES.yml new file mode 100644 index 00000000..17aca74e --- /dev/null +++ b/electronicparsers/tbstudio/FEATURES.yml @@ -0,0 +1,40 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "TBStudio" + description: "Tight Binding Studio - graphical tool for tight-binding calculations" + homepage: "http://www.tbstudio.org/" + mainfile_patterns: + - "*.tbm" + supported_file_formats: + - name: "*.tbm" + supported: true + notes: "JSON-based tight-binding model file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/tbstudio/parser.py:TBStudioParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/tbstudio/parser.py:TBStudioParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/tbstudio/parser.py:TBStudioParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/tbstudio/parser.py:TBStudioParser.parse" + calculation: + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/tbstudio/parser.py:TBStudioParser.parse" + - capability: "band_structure_electronic" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/tbstudio/parser.py:TBStudioParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/tbstudio/parser.py:TBStudioParser.parse" +special_features: +- "Tight-binding model Hamiltonians" +- "Band structure calculations" +- "JSON-based model format" +- "Graphical model building" +notes: +- "Tight-binding method (not DFT)" +- "Suitable for efficient electronic structure with empirical models" diff --git a/electronicparsers/turbomole/FEATURES.yml b/electronicparsers/turbomole/FEATURES.yml new file mode 100644 index 00000000..81bda0a5 --- /dev/null +++ b/electronicparsers/turbomole/FEATURES.yml @@ -0,0 +1,49 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "TURBOMOLE" + description: "Fast and efficient quantum chemistry package for molecules" + homepage: "https://www.turbomole.org/" + mainfile_patterns: + - "*.out" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse" + - capability: "dft.xc_functional" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse" + - capability: "basis_set" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse" + - capability: "forces.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse" + workflow: + - capability: "single_point" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse" + - capability: "geometry_optimization" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/turbomole/parser.py:TurbomoleParser.parse" +special_features: +- "Efficient DFT and wavefunction methods" +- "Resolution of identity (RI) approximations" +- "Time-dependent DFT (TDDFT)" +- "Excited state calculations" +- "Modular program structure" +notes: +- "Commercial package with high computational efficiency" +- "Modular design with separate executables for different tasks" diff --git a/electronicparsers/vasp/FEATURES.yml b/electronicparsers/vasp/FEATURES.yml new file mode 100644 index 00000000..c5f036ea --- /dev/null +++ b/electronicparsers/vasp/FEATURES.yml @@ -0,0 +1,158 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" + +parser: + name: "VASP" + description: "Vienna Ab initio Simulation Package - plane-wave DFT code" + homepage: "https://www.vasp.at/" + mainfile_patterns: + - "**/vasprun.xml" + - "**/vasprun.xml.gz" + - "**/vasprun.xml.bz2" + - "**/OUTCAR" + supported_file_formats: + - name: "vasprun.xml" + supported: true + notes: "Primary XML output format" + source: "electronicparsers/vasp/parser.py:VASPParser.init_parser" + - name: "OUTCAR" + supported: true + notes: "Fallback text output format" + source: "electronicparsers/vasp/parser.py:VASPParser.init_parser" + - name: "POTCAR" + supported: true + notes: "Pseudopotential information" + source: "electronicparsers/vasp/parser.py:RunContentParser.get_pseudopotential" + - name: "INCAR" + supported: true + notes: "Input parameters" + source: "electronicparsers/vasp/parser.py:RunContentParser.get_incar" + +runschema_capabilities: + run: + - capability: program + source: "electronicparsers/vasp/parser.py:VASPParser.parse" + - capability: time_run + source: "electronicparsers/vasp/parser.py:VASPParser.parse" + + method: + - capability: electronic.method + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: electronic.n_spin_channels + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: electronic.smearing + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: electronic.relativity_method + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: electronic.van_der_waals_method + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: dft.xc_functional + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: basis_set + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: k_mesh + source: "electronicparsers/vasp/parser.py:VASPParser.parse_kpoints" + - capability: scf + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: pseudopotential + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: hubbard_kanamori_model + source: "electronicparsers/vasp/parser.py:VASPParser.parse_method" + - capability: gw + source: "electronicparsers/vasp/parser.py:VASPParser.parse_gw" + - capability: core_hole + source: "electronicparsers/vasp/parser.py:VASPParser.parse_core_hole" + + system: + - capability: atoms + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: atoms.labels + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: atoms.positions + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: atoms.lattice_vectors + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: atoms.periodic + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + + calculation: + - capability: energy.total + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: energy.free + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: energy.kinetic + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: energy.xc + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: energy.electrostatic + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: energy.ewald + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: energy.zero_point + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: energy.fermi + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: energy.highest_occupied + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: energy.lowest_unoccupied + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: forces.total + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: stress.total + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: scf_iteration + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: band_structure_electronic + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: band_structure_electronic.energies + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: band_structure_electronic.kpoints + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: band_structure_electronic.occupations + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: dos_electronic + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: dos_electronic.total + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: dos_electronic.atom_projected + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: dos_electronic.orbital_projected + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: band_gap + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: thermodynamics.pressure + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + - capability: thermodynamics.temperature + source: "electronicparsers/vasp/parser.py:VASPParser.parse_configurations" + + workflow: + - capability: single_point + source: "electronicparsers/vasp/parser.py:VASPParser.parse_workflow" + - capability: geometry_optimization + source: "electronicparsers/vasp/parser.py:VASPParser.parse_workflow" + - capability: molecular_dynamics + source: "electronicparsers/vasp/parser.py:VASPParser.parse_workflow" + +special_features: + - "Hybrid functionals (HSE06, PBE0, B3LYP) with exact exchange" + - "GW calculations for beyond-DFT band structures (ALGO=GW0, scGW)" + - "DFT+U for strongly correlated systems (Hubbard U corrections)" + - "Core-hole spectroscopy for X-ray absorption spectra" + - "Spin-orbit coupling for heavy elements" + - "van der Waals corrections (DFT-D2, DFT-D3, vdW-DF, TS)" + - "Non-collinear magnetism and spin spirals" + - "Meta-GGA functionals (SCAN, r2SCAN)" + - "Time-dependent DFT (for optical properties)" + - "Special handling of malformed time entries in vasprun.xml" + - "Automatic POTCAR analysis for pseudopotential identification" + - "Support for compressed vasprun.xml files (.gz, .bz2)" + +notes: + - "vasprun.xml is the preferred mainfile (structured XML format)" + - "OUTCAR used as fallback when vasprun.xml unavailable or malformed" + - "Parser handles both single calculations and multi-step workflows (relaxation + static)" + - "INCAR parameters are mapped to method metadata" + - "POTCAR files are analyzed to extract pseudopotential details" + - "Parser tested with 23 unit tests covering various scenarios" + - "Special robustness for handling time entry parsing errors (test_malformed_time_entries)" diff --git a/electronicparsers/w2dynamics/FEATURES.yml b/electronicparsers/w2dynamics/FEATURES.yml new file mode 100644 index 00000000..b30f6be9 --- /dev/null +++ b/electronicparsers/w2dynamics/FEATURES.yml @@ -0,0 +1,40 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "w2dynamics" + description: "Continuous-time quantum Monte Carlo solver for DMFT calculations" + homepage: "https://github.com/w2dynamics/w2dynamics" + mainfile_patterns: + - "*.h5" + - "*.hdf5" + supported_file_formats: + - name: "*.h5" + supported: true + notes: "HDF5 output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/w2dynamics/parser.py:W2DynamicsParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/w2dynamics/parser.py:W2DynamicsParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/w2dynamics/parser.py:W2DynamicsParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/w2dynamics/parser.py:W2DynamicsParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/w2dynamics/parser.py:W2DynamicsParser.parse" + workflow: + - capability: "dmft" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/w2dynamics/parser.py:W2DynamicsParser.parse" +special_features: +- "Continuous-time quantum Monte Carlo (CT-QMC) impurity solver" +- "Dynamical Mean Field Theory (DMFT) calculations" +- "Treatment of strongly correlated electron systems" +- "HDF5-based structured output" +notes: +- "Specialized DMFT impurity solver" +- "Uses quantum Monte Carlo methods" +- "HDF5 format for output data" diff --git a/electronicparsers/wannier90/FEATURES.yml b/electronicparsers/wannier90/FEATURES.yml new file mode 100644 index 00000000..37585ae6 --- /dev/null +++ b/electronicparsers/wannier90/FEATURES.yml @@ -0,0 +1,80 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "Wannier90" + description: "Wannier90 - maximally-localized Wannier functions and tight-binding model construction" + homepage: "http://www.wannier.org/" + mainfile_patterns: + - "*.wout" + supported_file_formats: + - name: "*.wout" + supported: true + notes: "*.wout (primary output file)" + source: "electronicparsers/wannier90/parser.py:WOutParser.init_parser" + - name: "*.win" + supported: true + notes: "*.win (input file)" + source: "electronicparsers/wannier90/parser.py:WOutParser.init_parser" + - name: "*band.dat" + supported: true + notes: "*band.dat (band structure data)" + source: "electronicparsers/wannier90/parser.py:WOutParser.init_parser" + - name: "*dos.dat" + supported: true + notes: "*dos.dat (DOS data)" + source: "electronicparsers/wannier90/parser.py:WOutParser.init_parser" + - name: "*_hr.dat" + supported: true + notes: "*_hr.dat (hopping matrices)" + source: "electronicparsers/wannier90/parser.py:WOutParser.init_parser" +runschema_capabilities: + run: + - capability: "program" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse" + method: + - capability: "k_mesh" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse_method" + - capability: "tb.wannier" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse_method" + - capability: "atom_parameters" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse_method" + system: + - capability: "atoms" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse_system" + - capability: "atoms.labels" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse_system" + - capability: "atoms.positions" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse_system" + - capability: "atoms.lattice_vectors" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse_system" + - capability: "atoms.lattice_vectors_reciprocal" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse_system" + - capability: "atoms.periodic" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse_system" + calculation: + - capability: "band_structure_electronic" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse" + - capability: "dos_electronic" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse" + - capability: "hopping_matrix" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse" + workflow: + - capability: "single_point" + source: "electronicparsers/wannier90/parser.py:WOutParser.parse" +special_features: +- "Maximally-localized Wannier function (MLWF) construction" +- "Tight-binding Hamiltonian generation from DFT" +- "Real-space hopping matrix extraction (*_hr.dat)" +- "Band structure interpolation from Wannier functions" +- "DOS calculation from Wannier interpolation" +- "Disentanglement of energy windows (inner/outer windows)" +- "Support for multiple projection orbital types (s, p, d, f, sp, sp2, sp3, sp3d, sp3d2)" +- Compatible with multiple DFT codes: "Quantum ESPRESSO, ABINIT, VASP, SIESTA, Wien2k, FLEUR, OpenMX, GPAW'" +- "Orbital projection mapping (angular momentum to orbital names)" +notes: +- "Wannier90 is a post-processing tool for generating Wannier functions from DFT calculations" +- "The parser extracts the Wannierization results and interpolated electronic structure" +- "Hopping matrices are extracted when write_hr is enabled in the input" +- "Band structure and DOS are calculated via Wannier interpolation, not direct DFT" +- "System structure is taken from the DFT calculation output embedded in .wout" diff --git a/electronicparsers/wien2k/FEATURES.yml b/electronicparsers/wien2k/FEATURES.yml new file mode 100644 index 00000000..f3c7aeb8 --- /dev/null +++ b/electronicparsers/wien2k/FEATURES.yml @@ -0,0 +1,138 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "WIEN2k" + description: "WIEN2k - all-electron full-potential (linearized) augmented plane-wave + local orbitals (FP-LAPW+lo) DFT code" + homepage: "http://www.wien2k.at/" + mainfile_patterns: + - "*.scf" + supported_file_formats: + - name: "*.scf" + supported: true + notes: "*.scf (primary output file)" + source: "electronicparsers/wien2k/parser.py:In0Parser.init_parser" + - name: "*.struct" + supported: true + notes: "*.struct (structure file)" + source: "electronicparsers/wien2k/parser.py:In0Parser.init_parser" + - name: "*.in0" + supported: true + notes: "*.in0 (density synthesis parameters)" + source: "electronicparsers/wien2k/parser.py:In0Parser.init_parser" + - name: "*.in1" + supported: true + notes: "*.in1 (LAPW basis set parameters)" + source: "electronicparsers/wien2k/parser.py:In0Parser.init_parser" + - name: "*.in2" + supported: true + notes: "*.in2 (SCF parameters)" + source: "electronicparsers/wien2k/parser.py:In0Parser.init_parser" + - name: "*.inc" + supported: true + notes: "*.inc (additional case-specific parameters)" + source: "electronicparsers/wien2k/parser.py:In0Parser.init_parser" + - name: "*.klist" + supported: true + notes: "*.klist (k-point list)" + source: "electronicparsers/wien2k/parser.py:In0Parser.init_parser" + - name: "*.energy*" + supported: true + notes: "*.energy* (eigenvalues)" + source: "electronicparsers/wien2k/parser.py:In0Parser.init_parser" + - name: "*.dos*" + supported: true + notes: "*.dos* (density of states)" + source: "electronicparsers/wien2k/parser.py:In0Parser.init_parser" +runschema_capabilities: + run: + - capability: "program" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "time_run" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + method: + - capability: "electronic.method" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_method" + - capability: "electronic.n_spin_channels" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_method" + - capability: "dft.xc_functional" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_method" + - capability: "basis_set" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_method" + - capability: "k_mesh" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_method" + - capability: "scf" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_method" + - capability: "core_hole" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_method" + - capability: "atom_parameters" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_method" + system: + - capability: "atoms" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_system" + - capability: "atoms.labels" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_system" + - capability: "atoms.positions" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_system" + - capability: "atoms.lattice_vectors" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_system" + - capability: "atoms.periodic" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse_system" + calculation: + - capability: "energy.total" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "energy.kinetic" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "energy.xc" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "energy.electrostatic" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "energy.ewald" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "energy.nuclear_repulsion" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "energy.fermi" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "forces.total" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "scf_iteration" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "band_structure_electronic" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "dos_electronic" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "dos_electronic.total" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + - capability: "dos_electronic.atom_projected" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" + workflow: + - capability: "single_point" + source: "electronicparsers/wien2k/parser.py:In0Parser.parse" +special_features: +- "All-electron full-potential method (no pseudopotentials)" +- "Linearized augmented plane wave + local orbitals (LAPW+lo) basis set" +- "APW (augmented plane wave) basis with spherical harmonics inside muffin-tin spheres" +- "Local orbitals for improved treatment of semicore and high-lying states" +- LDA: "VWN, Perdew-Wang 92'" +- GGA: "PBE, WC, PBEsol, PW91, BLYP, HTBS'" +- Meta-GGA: "TPSS, TB09 (mBJ - modified Becke-Johnson for accurate band gaps), SCAN, r2SCAN, revTPSS'" +- Hybrid functionals: "B3LYP, B3PW91'" +- "Accurate band gaps via mBJ potential (MGGA_X_TB09)" +- "Spin-orbit coupling for heavy elements" +- "Spin-polarized calculations (SPINPOLARIZED/non-spinpolarized)" +- "Core-hole spectroscopy for X-ray absorption/emission spectra" +- "Equivalent atom grouping for efficiency" +- "RKmax parameter controls basis set size (rkmax * min(RMT))" +- "lmax, lvnsmax control angular momentum expansion" +- "Multiple k-point files (energy_1, energy_2, ...) for large calculations" +- "Projected DOS on atomic species" +notes: +- "WIEN2k is known for high accuracy due to all-electron full-potential approach" +- "No pseudopotential approximation - treats core and valence electrons explicitly" +- "Parser handles multiple file formats (.scf, .struct, .in0, .in1, .in2, .inc, .energy*, .dos*)" +- "XC functional identified from .in0 file (numeric codes or string labels)" +- "Basis set parameters (RKmax, lmax) extracted from .in1 file" +- "K-points and eigenvalues read from .klist and .energy* files" +- "DOS extracted from .dos1, .dos2, ... files (total and projected)" +- "Handles both spin-polarized and non-spin-polarized calculations" +- "Particularly suited for strongly correlated systems and accurate band gap predictions with mBJ" diff --git a/electronicparsers/yambo/FEATURES.yml b/electronicparsers/yambo/FEATURES.yml new file mode 100644 index 00000000..8ad90043 --- /dev/null +++ b/electronicparsers/yambo/FEATURES.yml @@ -0,0 +1,45 @@ +metadata: + last_updated: "2025-12-12" + updated_by: "GitHub Copilot" +parser: + name: "Yambo" + description: "Many-body calculations using GW and Bethe-Salpeter equation approaches" + homepage: "http://www.yambo-code.org/" + mainfile_patterns: + - "*.out" + - "o-*" + supported_file_formats: + - name: "*.out" + supported: true + notes: "Primary output file" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/yambo/parser.py:YamboParser.parse" +runschema_capabilities: + run: + - capability: "program" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/yambo/parser.py:YamboParser.parse" + method: + - capability: "electronic.method" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/yambo/parser.py:YamboParser.parse" + system: + - capability: "atoms" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/yambo/parser.py:YamboParser.parse" + calculation: + - capability: "energy.total" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/yambo/parser.py:YamboParser.parse" + - capability: "eigenvalues" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/yambo/parser.py:YamboParser.parse" + workflow: + - capability: "gw" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/yambo/parser.py:YamboParser.parse" + - capability: "bse" + source: "packages/nomad-parser-plugins-electronic/electronicparsers/yambo/parser.py:YamboParser.parse" +special_features: +- "GW approximation for quasiparticle energies" +- "Bethe-Salpeter equation (BSE) for excitations" +- "Optical absorption and EELS spectra" +- "Time-dependent screening" +- "Interfaces with DFT codes (Quantum ESPRESSO, Abinit, etc.)" +notes: +- "Specialized for many-body perturbation theory" +- "Post-processing tool for DFT outputs" +- "Focus on excited-state properties and spectroscopy"