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
AbstractMatterModelinterface.
✅ 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:
-
IdealElectronGasModelor 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.