The proposal draft, not decided
The app's feature set, and what goes in version 1, version 2 and later. Built from the FullProf inventory and the GSAS-II gap list. Each feature names its sources: an inventory entry, a gap or a requirement of the brief. Written for Josu to decide (log L019); a decision entry in the log will say what is adopted. The design questions Q1–Q6 are on the Design page.
A draft for Josu to decide, not a decision. Version 1 aims at the refinement a FullProf user does today on constant-wavelength data (laboratory X-rays, synchrotron, reactor neutrons): from the pattern to a published CIF, in one phase or several, with constraints and restraints. It runs inside the Mac app the brief asks for: live plot, interactive background, space groups, control-file builder and editor (R07–R14). Version 2 adds what makes the program complete for facility work: time of flight, joint and sequential refinement, rigid bodies, anisotropic microstructure. Later holds the rest of the FullProf inventory and the L012 list (magnetic, superspace, stacking faults, indexing, structure solution, 2D images, PDF). Where GSAS-II does something better than FullProf (L014), the draft takes the GSAS-II way, and says so.
39 features in version 1, 11 features in version 2, 9 features in later.
- Version 1 is done when the command line and the app reproduce a set of reference refinements from
manuals/fullprof/to within their esd's: the Y2O3 laboratory X-ray tutorial, the MgAl2O4 spinel, the Co-doped YBCO neutron tutorial and the quantitative-analysis tutorial. Each one becomes a named test, as difes reproduces FOCUS. - Every feature has a test and a command-line path in the core before it has a menu in the app (CLAUDE.md).
Data and instruments
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P01 Constant-wavelength patterns |
Laboratory X-rays with one wavelength or a Kα1/Kα2 doublet (ratio refinable), synchrotron X-rays, reactor neutrons; data with \(\sigma\), variable step kept. | Version 1 | FullProf: Laboratory X-rays, one or two wavelengths FullProf: Synchrotron X-rays FullProf: Constant-wavelength neutrons FullProf: x, y, \(\sigma\) files with variable step R03 |
| P02 Data formats |
xy/xye, FullProf free and instrument formats, GSAS fxye; Panalytical .xrdml and Bruker .brml/.raw read directly, so laboratory users need no conversion. | Version 1 | FullProf: Free-format and instrument data files GSAS-II gap: Binary vendor and HDF5 powder formats |
| P03 Excluded regions set on the plot |
Ranges removed from the fit, drawn and dragged on the plot as well as typed. | Version 1 | FullProf: Excluded regions GSAS-II gap: Limits and excluded regions set on the plot |
| P04 Pattern simulation |
A pattern calculated from the model without data, with optional Poisson noise; also the basis of the core's tests. | Version 1 | FullProf: Pattern calculation (simulation) |
| P05 Time-of-flight neutrons |
TOF patterns with d from Zero, Dtt1, Dtt2; back-to-back exponentials ⊗ pseudo-Voigt; keyword resolution file per bank; multi-bank GSAS/ISIS files; TOF absorption. decided Version 2 (L020): version 1 is constant wavelength only. |
Version 2 | FullProf: Time-of-flight neutrons FullProf: TOF back-to-back exponentials ⊗ pseudo-Voigt FullProf: TOF resolution file (Res=5, 6) FullProf: Multi-bank TOF files (GSAS, ISIS) FullProf: TOF absorption |
| P06 Joint multi-pattern refinement |
Several patterns in one refinement (X-rays with neutrons, several banks), a weight per pattern, which phase contributes to which pattern, patterns switched on or off. decided Version 2 (L020): it needs the multi-pattern machinery of version 2; the version 1 data model allows several patterns from the start. |
Version 2 | FullProf: Multi-pattern refinement FullProf: Joint X-ray and neutron refinement FullProf: Which phase contributes to which pattern FullProf: Patterns switched on or off |
| P07 Maximum-likelihood weights, point reduction, minimum d per pattern |
The less common data options of FullProf. | Later | FullProf: Weighting schemes FullProf: Point reduction for fast runs FullProf: Minimum d-spacing per pattern |
| P08 Energy-dispersive and pink-beam data |
Energy as the scattering variable; pink-beam profiles. | Later | FullProf: Energy-dispersive X-rays GSAS-II gap: Pink-beam profile |
The crystal structure
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P09 Space groups, complete |
All 230 groups in all settings from their symbols, or from user operators; operators, symmetry elements, Wyckoff positions and site symmetry available to the user (R12). | Version 1 | FullProf: Space group from its symbol FullProf: User-given symmetry operators R12 |
| P10 Cell, atoms, occupancies, displacements |
Lattice parameters; positions, occupancies, Biso and overall B; anisotropic β_ij with the site-symmetry restrictions applied automatically. | Version 1 | FullProf: Lattice parameters FullProf: Atom positions FullProf: Site occupancies FullProf: Isotropic displacement parameters FullProf: Overall displacement parameter FullProf: Anisotropic displacement parameters |
| P11 Scattering factors |
X-ray form factors and neutron scattering lengths from tables, user values, anomalous f′ and f″ per pattern. | Version 1 | FullProf: Scattering lengths and form factors FullProf: Anomalous dispersion |
| P12 Distances, angles, bond-valence sums |
Listed after each refinement and available to restraints. | Version 1 | FullProf: Bond distances, angles and bond-valence sums |
| P13 Symmetry-mode parametrisation |
A distorted structure refined through the amplitudes of symmetry-adapted modes of a parent structure. | Version 1 | FullProf: Symmetry-mode parametrisation |
| P14 Special structure options |
Molecular form factors, fixed partial structure factors, operator subsets per atom, reflections read instead of generated. | Later | FullProf: Special form factors for molecules FullProf: Fixed partial structure factor FullProf: Subset of operators per atom FullProf: Reflections read instead of generated |
Peak shapes and the instrument
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P15 Pseudo-Voigt and Thompson–Cox–Hastings with axial divergence |
pV and TCH pV with the Finger–Cox–Jephcoat asymmetry; Caglioti widths; a profile per phase. | Version 1 | FullProf: Pseudo-Voigt FullProf: Thompson–Cox–Hastings pseudo-Voigt with axial divergence FullProf: Angular dependence of the width (CW) FullProf: Peak-shape choice per phase |
| P16 Instrumental resolution file |
The instrument's widths described once, from a standard, so that sample size and strain are refined apart from the instrument. | Version 1 | FullProf: Instrumental resolution file (CW) FullProf: Instrumental resolution from pseudo-Voigt parameters (Res=-1) |
| P17 Empirical asymmetry |
The four-parameter asymmetry correction below a set angle. | Version 1 | FullProf: Empirical peak asymmetry |
| P18 Peak positions |
Zero, sample displacement and transparency (also per phase), wavelength refinement. | Version 1 | FullProf: Zero shift FullProf: Sample displacement and transparency FullProf: Phase-dependent shifts FullProf: Wavelength refinement |
| P19 Other profile functions |
Gaussian, Lorentzian, Pearson VII, split and tripled pseudo-Voigt, numerical profiles, tabulated resolution. | Later | FullProf: Pearson VII FullProf: Split pseudo-Voigt FullProf: Tripled pseudo-Voigt FullProf: Numerical peak shape FullProf: Tabulated resolution with axial divergence (Res=8) |
| P20 Instrument from fundamental parameters |
The resolution file computed from the diffractometer geometry instead of refined on a standard. | Later | GSAS-II gap: Instrument profile from fundamental parameters |
Background
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P21 Background functions |
Chebyshev series, refinable interpolated points (linear or spline), polynomial. | Version 1 | FullProf: Chebyshev background FullProf: Interpolated background points FullProf: Cubic-spline background FullProf: Polynomial background |
| P22 Background on the plot, by hand and automatic |
Points added, moved and deleted with the mouse; automatic points by asymmetric least squares; any function fitted to the points as a starting background (R11). | Version 1 | FullProf: Interactive background points FullProf: Automatic background points (FullProfAPP) GSAS-II gap: Background function fitted to fixed points, with auto-background R11 |
| P23 Further background terms |
Debye-like terms for amorphous scattering, background from a file or stored profiles, background peaks, Fourier-filtered background. | Version 2 | FullProf: Debye-like terms FullProf: Background from a file FullProf: Background profiles from files (linear combination) FullProf: Fourier-filtered background GSAS-II gap: Background peaks |
Size and strain
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P24 Isotropic size and strain |
Size and strain from the sample widths over the resolution file, with apparent size and strain reported per reflection. | Version 1 | FullProf: Isotropic size and strain FullProf: Microstructure file (.mic) |
| P25 Anisotropic size and strain |
Strain by the quartic form (Stephens) or spherical harmonics; size by ellipsoid or spherical harmonics; platelets and needles; plots of the refined models. | Version 2 | FullProf: Anisotropic strain, quartic form FullProf: Anisotropic strain, spherical harmonics FullProf: Anisotropic size, quadratic form FullProf: Anisotropic size, spherical harmonics FullProf: Platelets and needles GSAS-II gap: Plots of the refined size, strain and orientation models |
| P26 Selective broadening and defect shifts |
Rule-based broadening and shifts for reflection classes, per-reflection widths. | Later | FullProf: Selective size broadening FullProf: Defect and stress peak shifts FullProf: Per-reflection width and shift |
Intensity corrections
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P27 Lorentz–polarisation by geometry |
Bragg–Brentano, Debye–Scherrer, transmission, synchrotron; monochromator polarisation. | Version 1 | FullProf: Lorentz–polarisation by geometry FullProf: Monochromator polarisation FullProf: Synchrotron polarisation |
| P28 Preferred orientation along one axis |
March–Dollase and exponential functions about a direction. | Version 1 | FullProf: Preferred orientation, March–Dollase FullProf: Preferred orientation, exponential |
| P29 Absorption and microabsorption |
Cylinder (μR, Lobanov–Alte da Veiga) and flat-plate absorption; Bragg–Brentano microabsorption (surface roughness). | Version 1 | FullProf: Cylinder absorption FullProf: Lobanov–Alte da Veiga absorption for cylinders FullProf: Flat-plate absorption FullProf: Bragg–Brentano microabsorption |
| P30 Texture beyond one axis |
Multi-axial March–Dollase; spherical-harmonic preferred orientation as in GSAS-II, which FullProf lacks. | Version 2 | FullProf: Multi-axial March–Dollase (Nor=2) GSAS-II gap: Spherical-harmonic preferred orientation |
| P31 Further corrections |
Extinction for CW powders (a GSAS-II feature), layered samples, anvil cells, beam overflow, user correction tables. | Later | GSAS-II gap: Extinction for constant-wavelength powder data FullProf: Layered samples in Bragg–Brentano (Ilo=5) FullProf: March–Dollase–Wright orientation for anvil cells (Nor=3) FullProf: Beam overflow at low angle FullProf: User intensity corrections |
Several phases and quantitative analysis
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P32 Several phases per pattern |
Any number of phases, each with its scale, cell, profile and structure. | Version 1 | FullProf: Several phases per pattern |
| P33 Quantitative phase analysis |
Weight fractions with esd's from the scale factors, Brindley microabsorption, amorphous content with an internal standard. | Version 1 | FullProf: Quantitative phase analysis FullProf: Brindley microabsorption FullProf: Amorphous content with an internal standard |
| P34 Phase search against open databases |
Candidate phases fetched from the COD and tested by full-profile refinement. | Later | FullProf: Full-profile phase search (FullProfAPP) FullProf: CIF download from the COD (FullProfAPP) |
Le Bail and Pawley
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P35 Le Bail fit |
Cell, space group and profile without a structure; extracted intensities written for structure solution. | Version 1 | FullProf: Le Bail fit (profile matching, constant scale) FullProf: Extracted intensities file |
| P36 Pawley fit |
Intensities refined as parameters, as in GSAS-II; FullProf has Le Bail only. | Version 2 | GSAS-II gap: Pawley refinement |
Parameters, constraints, restraints
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P37 Named parameters, no numeric codewords |
Every refinable quantity has a readable name (phase, pattern, atom, quantity) and is refined by name, as FullProf's VARY/FIX keywords and GSAS-II's parameter names do; numeric codes are not exposed. | Version 1 | FullProf: Keyword refinement (VARY/FIX) FullProf: Refinement codes GSAS-II gap: Linear constraint equations and New Var parameters |
| P38 Constraints |
Equivalences with multipliers, constraint equations and new variables defined as sums of parameters; symmetry constraints generated automatically. | Version 1 | FullProf: Strict linear constraints by shared codes FullProf: Keyword constraints (EQUAL, PEQU, SAME_BISO) GSAS-II gap: Linear constraint equations and New Var parameters |
| P39 Limits on parameters |
Lower and upper bounds, applied during the fit. | Version 1 | FullProf: Hard limits on parameters |
| P40 Restraints |
Distance, angle and linear restraints in version 1; plane, chiral and general (expression) restraints and Mogul import later. | Version 1 | FullProf: Distance restraints FullProf: Angle restraints FullProf: Linear restraints GSAS-II gap: General restraints as Python expressions GSAS-II gap: Plane and chiral-volume restraints |
| P41 Rigid bodies and TLS |
Groups in Cartesian, spherical or Z-matrix coordinates placed by position and orientation, satellite groups, TLS. decided Version 2 (L020); distance, angle and linear restraints stay in version 1. |
Version 2 | FullProf: Rigid bodies FullProf: Satellite groups FullProf: TLS |
The least-squares engine
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P42 Least squares with analytic derivatives |
Damped least squares (Levenberg–Marquardt with SVD against correlations, as GSAS-II; FullProf uses Gauss–Newton with relaxation factors), divergence control, convergence on shift/esd. decided Levenberg–Marquardt with SVD against correlations (L020), the GSAS-II way, more robust than Gauss–Newton with relaxation factors when parameters correlate. |
Version 1 | FullProf: Least-squares minimiser FullProf: Cycles and convergence FullProf: Relaxation factors FullProf: Local divergence control GSAS-II gap: Levenberg–Marquardt least squares with SVD |
| P43 Agreement factors and statistics |
Rp, Rwp, Rexp, \(\chi^2\), background-corrected R, R_Bragg and R_F per phase, Durbin–Watson, the Bérar factor. | Version 1 | FullProf: Agreement factors FullProf: Model-selection statistics FullProf: Bérar factor for correlated residuals |
| P44 Covariance and uncertainties |
Correlation matrix shown and searchable; the esd of any derived quantity or user expression from the full covariance. | Version 1 | FullProf: Correlation matrix FullProf: Standard deviations GSAS-II gap: Any expression with its s.u. from the full covariance GSAS-II gap: Interactive correlation and shift displays |
| P45 Refinement diagnostics |
Parameter impact (which unrefined parameter would lower \(\chi^2\) most), normal probability plot, refinement analysis. | Version 2 | GSAS-II gap: Parameter impact GSAS-II gap: Normal probability plot FullProf: Refinement analysis |
The app and the workflow
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P46 One project document |
Data, model, constraints, results and refinement history in one document per window, with undo and redo of every model change (R01), as GSAS-II's project and unlike FullProf's .pcr plus side files. | Version 1 | GSAS-II gap: One project file with a data tree R01 |
| P47 Readable control file and FullProf import |
A text control file a person can read and diff, written and read by the core; existing .pcr files imported (Q3). decided Q3 (L020): a new readable text format of our own, with a .pcr importer so that FullProf users bring their work. |
Version 1 | FullProf: The .pcr control file R13 R14 |
| P48 Control-file builder |
Dialogs and tables that write the control file, keeping dependent counts consistent (R13). | Version 1 | FullProf: EdPCR FullProf: Manual refinement window (FullProfAPP) R13 |
| P49 Dedicated editor |
Syntax colouring, completion of keywords, phases and atoms, inline errors from the core's parser, outline, jump from output to parameter (R14, Q4). | Version 1 | R14 |
| P50 Live plot each cycle |
Observed, calculated, difference and reflection markers redrawn after every cycle, with R-factors per cycle (R08, Q5). | Version 1 | FullProf: Live display during refinement R08 |
| P51 Data and result graphics |
Zoom, axes in 2\(\theta\), d or Q, linear/√/log intensity, per-phase contributions, (obs−calc)/\(\sigma\) and cumulative \(\chi^2\), hkl on the markers, structure view; peak search and single-peak fitting (R09, R10). | Version 1 | FullProf: WinPLOTR Rietveld plot FullProf: Interactive peak search and fitting GSAS-II gap: Fit-diagnostic plot modes R09 R10 |
| P52 Accept or reject, and a history |
After a refinement the user keeps or discards the result; every refinement is logged with its R-factors and can be returned to. | Version 1 | GSAS-II gap: Accept or reject a refinement GSAS-II gap: Project notebook with logged parameters |
| P53 Command line, then scripting |
Every feature on the command line from the start (CLAUDE.md); a Python scripting interface to the core in version 2. decided Q1 (L021): the core is Rust; the Python interface is bindings to it (PyO3), in version 2. |
Version 1 | FullProf: Command-line run GSAS-II gap: Python scripting API |
| P54 Sequential and parametric refinement |
A series of patterns refined in turn, then refined parameters plotted with esd's and fitted to equations of temperature or pressure. | Version 2 | FullProf: Sequential refinement FullProf: Sequential multi-pattern refinement GSAS-II gap: Pseudo-variables and parametric fits of sequential results GSAS-II gap: Histogram wildcards in sequential constraints |
| P55 Guided refinement |
A refinement built as named steps in the documented order (scale; zero, background, cell; …), run in one go. | Version 2 | FullProf: Automatic refinement workflow (FullProfAPP) FullProf: Refinement strategy guidance |
| P56 Batch processing |
Many patterns refined with the same model as a grid, a job scheduler. | Later | FullProf: Batch and multi-pattern grid (FullProfAPP) |
Output
| Feature | What it does | Draft tier | From |
|---|---|---|---|
| P57 CIF and the standard outputs |
Full CIF of structure and profile ready for deposition; listing and summary; reflection lists; calculated profiles per phase; distances and angles. | Version 1 | FullProf: CIF, CFL, FST and VESTA files FullProf: Main listing (.out) FullProf: Summary (.sum) FullProf: Reflection lists (.hkl) FullProf: Per-phase profiles (.sub) FullProf: Distances and bond valences (.dis) |
| P58 Publication plots |
The Rietveld plot exported as PDF and SVG, editable. | Version 1 | GSAS-II gap: Publication plots |
| P59 Series outputs and interchange files |
Multi-block CIF and CSV of a series; Fourier and structure files for other programs. | Version 2 | GSAS-II gap: Sequential results as multi-block CIF and CSV FullProf: Fourier files (.fou) FullProf: Structure files for drawing programs |
Kept for later (L012)
Kept for later, as set in L012: magnetic structures, modulated and superspace structures, stacking faults, indexing, structure solution, 2D image integration, PDF and total scattering. FullProf has each (one line each on the FullProf page); none is in versions 1 or 2. The data model of version 1 should not close the door to magnetic phases (moments on atoms, magnetic space groups), which FullProf users expect next.
Decided by Josu (L020, L021)
- TOF (P05): version 2. Version 1 is constant wavelength only.
- Joint X-ray + neutron (P06): version 2, with a data model that allows several patterns from the start.
- Rigid bodies (P41): version 2. Distance, angle and linear restraints are in version 1.
- The minimiser (P42): Levenberg–Marquardt with SVD against correlations, as GSAS-II.
- The control file (P47, Q3): a new readable text format of our own, with a .pcr importer.
- The reference refinements that define 'version 1 is done': the four tutorials named above (Y2O3, MgAl2O4, Co-doped YBCO, quantitative phase analysis).
- Q1, the language of the core (L021): Rust, with Python as the scripting interface through bindings in version 2 (P48).