Skip to main content

phasesmith_workflows/
lib.rs

1//! Application-neutral native refinement and project workflows.
2//!
3//! This crate is the shared host boundary for Python adapters and future
4//! native application consumers. It contains no `PyO3`, Tauri, GUI, or
5//! file-format types.
6
7mod backgrounds;
8mod constraints;
9mod lattice;
10mod lebail;
11mod parameters;
12mod quantitative;
13mod residuals;
14mod rietveld;
15mod rietveld_general_objective;
16mod rietveld_general_parameters;
17mod rietveld_general_solver;
18mod rietveld_joint;
19mod rietveld_joint_solver;
20mod rietveld_objective;
21mod rietveld_parameters;
22mod rietveld_project;
23mod rietveld_recipe;
24mod rietveld_solver;
25mod runtime;
26mod sample_physics;
27
28pub use backgrounds::{
29    AmorphousBackground, AmorphousPeak, BackgroundBasis, BackgroundError, BackgroundModel,
30    ChebyshevBackground, CompositeBackground, DifferentiableBackground, PointBackground,
31    PolynomialBackground,
32};
33pub use constraints::{
34    AffineConstraint, Constraint, ConstraintDerivativeMatrix, ConstraintError, ConstraintTransform,
35    FixedConstraint, LinearConstraint, LinearTerm,
36};
37pub use lattice::{
38    CwLatticeGeometry, GeneratedLatticeDomain, LatticeBounds, LatticeError,
39    LatticeParameterization, LatticeReflectionDomain, cw_lattice_geometry,
40};
41pub use lebail::{
42    CoincidentReflectionGroup, CovarianceMatrix, IntensityExtractionResult, LeBailCalculation,
43    LeBailCheckpoint, LeBailError, LeBailInput, LeBailIterationRecord, LeBailOptions, LeBailPhase,
44    LeBailResult, ParameterChange, PhasePatternComponent, ReflectionIntensity,
45    build_lebail_parameter_set, build_lebail_parameter_set_with_lattice, calculate_lebail_pattern,
46    extract_lebail_intensities, initialize_lebail_intensities, iterate_lebail_once,
47    lebail_instrument_parameter_key, lebail_lattice_parameter_key, lebail_phase_scale_key,
48    lebail_reflection_position_key, refine_lebail, refine_lebail_with_runtime,
49};
50pub use parameters::{ParameterBounds, ParameterError, ParameterKey, ParameterSet, ParameterSpec};
51pub use quantitative::{
52    PhaseWeightFraction, QuantitativeError, QuantitativePhase, quantitative_phase_analysis,
53};
54pub use residuals::{ResidualError, ResidualEvaluation, ResidualOptions, evaluate_residuals};
55pub use rietveld::{
56    RietveldCalculation, RietveldCalculationOptions, RietveldError, RietveldInput, RietveldPhase,
57    RietveldPhaseCalculation, RietveldTopologyChange, calculate_rietveld_pattern,
58};
59pub use rietveld_general_objective::{
60    DEFAULT_MAX_LINEARIZATION_ELEMENTS, PreparedGeneralFreeLinearization,
61    PreparedGeneralRietveldObjective, RietveldGeneralObjectiveError,
62};
63pub use rietveld_general_parameters::{
64    RietveldGeneralParameterError, RietveldInstrumentParameter, RietveldParameterLayout,
65    RietveldParameterSelection,
66};
67pub use rietveld_general_solver::{
68    RietveldCovarianceMatrix, RietveldCovarianceOptions, RietveldGeneralCheckpoint,
69    RietveldGeneralRefinementError, RietveldGeneralRefinementResult, RietveldParameterCorrelation,
70    refine_general_rietveld, refine_general_rietveld_with_runtime,
71};
72pub use rietveld_joint::{
73    JointRietveldError, JointRietveldGradient, JointRietveldHistogram, JointRietveldLayout,
74    JointRietveldProduct, PreparedJointRietveldObjective,
75};
76pub use rietveld_joint_solver::{
77    JointRietveldCheckpoint, JointRietveldIterationRecord, JointRietveldMetrics,
78    JointRietveldRefinementError, JointRietveldRefinementOptions, JointRietveldRefinementResult,
79    JointRietveldTopologyChange, refine_joint_rietveld, refine_joint_rietveld_with_runtime,
80};
81pub use rietveld_objective::{
82    PreparedRietveldLinearization, PreparedRietveldObjective, RietveldObjectiveError,
83};
84pub use rietveld_parameters::{
85    RietveldParameterError, RietveldStructuralLayout, RietveldStructuralSelection,
86    SiteCoordinateModel,
87};
88pub use rietveld_project::{RietveldAnalysis, RietveldProjectError, RietveldProjectState};
89pub use rietveld_recipe::{
90    RietveldRecipe, RietveldRecipeError, RietveldRecipeMode, RietveldRecipeSinks, RietveldStage,
91    RietveldStageResult, RietveldWorkflowResult, intelligent_rietveld_recipe, run_rietveld_recipe,
92    run_rietveld_recipe_with_sinks,
93};
94pub use rietveld_solver::{
95    RietveldCheckpoint, RietveldIterationRecord, RietveldRefinementError,
96    RietveldRefinementOptions, RietveldRefinementResult, refine_rietveld,
97    refine_rietveld_with_runtime,
98};
99pub use runtime::{
100    CancellationError, CancellationToken, CheckpointSink, DiagnosticValue, MonotonicClock,
101    RefinementEvent, RefinementEventKind, RefinementEventSink, RefinementLimits, RefinementRuntime,
102    RefinementStop, RuntimeClock, RuntimeError, TerminationReason,
103};
104pub use sample_physics::{
105    EvaluatedSamplePhysics, RietveldSamplePhysicsModel, SamplePhysicsError, SamplePhysicsParameter,
106};