Skip to content

Implement Compound Matter Model Combining Ideal Electron Gas and Data-Driven Bound-State Contributions

🧩 Objective

Implement a new CompoundMatterModel that merges:

  • The free-free response using the existing ideal electron gas implementation (Lindhard-based), and
  • The bound-free, free-bound, and elastic contributions using a data-driven model, such as from tabulated or MCSS-generated dynamic structure factors.

This composite model should provide a physically consistent and extensible description of real materials (atoms or plasmas with partially bound electrons).

🎯 Goals

  • Combine different physical processes into a single unified matter model.
  • Keep the model modular: each contribution is separable and interchangeable.
  • Allow both analytic and tabulated models to coexist.
  • Ensure compatibility with AbstractMatterModel interface.

Tasks

1. Define CompoundMatterModel Type

Create a composite model type:

struct CompoundMatterModel <: AbstractMatterModel
    free_model::IdealElectronGas
    bound_model::AbstractBoundStateModel  # e.g., MCSSBoundResponse
end

2. Extend Interface Functions

Override standard interface functions for the compound model:

  • electron_density(::CompoundMatterModel)
  • temperature(::CompoundMatterModel)
  • dynamic_structure_function(model::CompoundMatterModel,om_q::Tuple)

3. Implement Response Composition Logic

In dynamic_structure_function, compute total response as:

S_{\text{total}}(q, \omega) = S_{\text{free-free}}(q, \omega) + S_{\text{bound-free}}(q, \omega) + S_{\text{free-bound}}(q, \omega) + S_{\text{elastic}}(q)\delta(\omega)

Where:

  • S_{\text{free-free}}: from the ideal electron gas model
  • S_{\text{bound-*}}: from tabulated or fitted data in the bound model (e.g., MCSS)

Use additive approximation consistent with linear response theory.

🔗 Dependencies

  • Assumes presence of:

    • IdealElectronGasModel or equivalent

    • A prototype or standard interface for AbstractBoundStateModel, with e.g.:

      • _dsf_bound_free(q, ω)
      • _dsf_elastic(q, ω)
  • The data-driven model may load data from file or generate from fitted tables.

🧪 Validation Strategy

  • Verify that in the absence of bound contributions, the compound model reduces to the ideal electron gas.
  • Cross-check with full tabulated models (e.g., from MCSS or codes like FEFF) if available.
  • Compare total dynamic structure factor S(q, \omega) against experimental data or benchmark codes.

🌱 Future Extensions

  • Add temperature-dependent or density-dependent interpolation of bound-state data.
  • Support more complex combinations: e.g., multiple free populations or bound levels.
Edited by Uwe Hernandez Acosta