Skip to main content

phasesmith_engine/
lib.rs

1//! Native composition boundary for crystallography and powder profiles.
2//!
3//! Structural pattern fusion is added in implementation unit 15. Re-exports
4//! keep `PyO3` dependent on this facade rather than placing orchestration in the
5//! binding crate.
6
7pub use phasesmith_core as profile;
8pub use phasesmith_crystallography as crystallography;
9
10mod prepared_structural_phase;
11mod structural_multiphase;
12pub mod structural_pattern;
13mod structural_spectrum;
14
15pub use prepared_structural_phase::{
16    PreparedStructuralPatternInputView, PreparedStructuralPhase, StructuralPhaseDefinition,
17};
18pub use structural_multiphase::{
19    PreparedStructuralModel, PreparedStructuralModelInputView, PreparedStructuralMultiphase,
20    StructuralCalculationRequest, StructuralCalculationResult, StructuralModelInput,
21    StructuralMultiphaseError, StructuralMultiphaseResult,
22};
23pub use structural_spectrum::{
24    PreparedStructuralSpectrum, PreparedStructuralSpectrumInputView, StructuralSpectrumError,
25};
26
27pub use structural_pattern::{
28    BuiltInScatteringModel, MonochromaticPositionCorrection, MonochromaticReflectionGeometry,
29    StructuralPatternDenseResult, StructuralPatternError, StructuralPatternInputView,
30    StructuralPatternJvpResult, StructuralPatternResult, StructuralPatternVjpResult,
31    calculate_monochromatic_reflection_geometry, calculate_structural_pattern,
32    calculate_structural_pattern_dense, calculate_structural_pattern_dense_with_context,
33    calculate_structural_pattern_jvp, calculate_structural_pattern_jvp_with_context,
34    calculate_structural_pattern_vjp, calculate_structural_pattern_vjp_with_context,
35    calculate_structural_pattern_with_context,
36};