Version 181 (modified by pkienzle, 7 years ago) (diff) |
---|

Add a model here when you are working on it. Mark it as converted when it is tested and pushed.

The err columns are the result of running multi_compare.sh, which generates random parameters for comparison against sasview. double should be at most 5e-14 relative error, single should be 5e-5.

./multi_compare.sh MODEL 200 1d200 mono double ./multi_compare.sh MODEL 200 1d200 mono single ./multi_compare.sh MODEL 200 2d32 mono double ./multi_compare.sh MODEL 200 2d32 mono single

Some models still have issues when run using single precision (lamellarPC for example).

We are not dealing with magnetism at this point as it requires some work on the wrapper functionality. Thus the *Magnetic* column below is for reference as to which models need attention. The *SESANS* column should be used to indicate if the model is a priority (1 highest, 4 lowest). The Multiply column indicates whether the model can be multiplied by a structure factor. This is currently hardcoded into src/sas/perspectives/fitting/models.py

SasView name | sasmodels name | P(Q) | S(Q) | Multiply | Multiplicity | Magnetic | SESANS | Assigned | Converted | UTest | double err | single err | double 2D | single 2D |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|

Core2ndMomentModel | adsorbed_layer | Y | . | . | . | . | 3 | SMK | Y | - | good | good | - | - |

BarBellModel | barbell | Y | . | . | . | . | 3 | AJJ | Y | - | good | good | FAIL | FAIL |

BCCrystalModel | bcc | Y | . | . | . | . | 3 | AJJ | Y | - | good | FAIL | 9e-14 | 2e-2 |

BEPolyelectrolyte | be_polyelectrolyte | Y | . | . | . | . | 3 | PR | Y | Y | good | good | - | - |

BinaryHSModel | binary_hard_sphere | Y | N | N | N | N | 1 | PDB | Y | Y | OK | FAIL | - | - |

BroadPeakModel | broad_peak | Y | . | . | . | . | 4 | PDB | Y | - | good | good | - | - |

CappedCylinderModel | capped_cylinder | Y | . | . | . | . | 3 | HP | Y | - | good | good | 2e-11 | 3e-3 |

CoreMultiShellModel | core_multi_shell | Y | . | Y | Y | Y | 3 | . | - | - | - | - | - | |

CoreShellBicelleModel | core_shell_bicelle | Y | . | Y | . | . | 2 | PR | Y | Y | good | good | 1e-12 | 1e-4 |

CoreShellCylinderModel | core_shell_cylinder | Y | . | Y | . | . | 3 | HP | Y | - | good | good | 9e-14 | 4e-4 |

CoreShellEllipsoidModel | core_shell_ellipsoid | Y | . | Y | . | . | 3 | PR | Y | Y | good | 1e-4 | good | 1e-3 |

CoreShellEllipsoidXTModel | core_shell_ellipsoid_xt | Y | . | Y | . | . | 3 | PR | Y | Y | good | 1e-4 | good | 1e-3 |

CoreShellModel | core_shell_sphere | Y | . | Y | . | Y | 2 | MD | Y | Y | good | good | - | - |

CorrLength | correlation_length | Y | . | . | . | . | 3 | JRK | Y | Y | good | good | - | - |

CSParallelepipedModel | core_shell_parallelepiped | Y | . | Y | . | . | 3 | MAG | Y | Y | good | good | 5e-13 | 8e-4 |

CylinderModel | cylinder | Y | . | Y | . | Y | 1 | HP | Y | - | good | good | 2e-13 | 1e-4 |

DABModel | dab | Y | . | . | . | . | 1 | DM | Y | - | good | good | - | - |

EllipsoidModel | ellipsoid | Y | . | Y | . | . | 1 | HP | Y | - | good* | good | 3e-14 | 1e-4 |

EllipticalCylinderModel | elliptical_cylinder | Y | . | Y | . | . | 3 | MD | Y | Y | good | good | - | - |

FCCrystalModel | fcc | Y | . | . | . | . | 3 | AJJ | Y | - | good | FAIL | FAIL | FAIL |

FlexibleCylinderModel | flexible_cylinder | Y | . | . | . | . | 2 | PR | Y | Y | good | FAIL | - | - |

FlexCylEllipXModel | flexible_cylinder_ex | Y | . | . | . | . | 3 | PR | Y | Y | good | FAIL | - | - |

FractalModel | fractal | Y | . | . | . | . | 1 | PDB | Y | Y | good* | good* | - | - |

FractalCoreShell | fractal_core_shell | Y | . | . | . | . | 3 | PR | Y | Y | good | good | - | - |

FuzzySphereModel | fuzzy_sphere | Y | . | Y | . | . | 2 | TRN | Y | Y | good* | good | - | - |

PeakGaussModel | gaussian_peak | Y | . | . | . | . | 4 | AJJ | Y | - | good | 1e-3 | - | - |

GaussLorentzGel | gauss_lorentz_gel | Y | . | . | . | . | 2 | PR | Y | Y | good | good | - | - |

GelFitModel | gel_fit | Y | . | . | . | . | 1 | PR | Y | Y | good | good | - | - |

Guinier | guinier | Y | . | . | . | . | 1 | JRK | Y | Y | good | good | - | - |

GuinierPorod | guinier_porod | Y | . | . | . | . | 2 | MD | Y | Y | good | good | - | - |

HardsphereStructure | hardsphere | . | Y | . | . | . | 1 | RKH | Y | Y | good | FAIL | - | - |

HayterMSAStructure | hayter_msa | . | Y | . | . | . | 1 | RKH | Y | Y | OK | FAIL | - | - |

HollowCylinderModel | hollow_cylinder | Y | . | Y | . | . | 2 | JRK | Y | Y | good | good | 4e-13 | 2e-3 |

RectangularHollowPrismModel | hollow_rectangular_prism | Y | . | Y | . | . | 3 | MAG | Y | Y | good | good | - | - |

RectangularHollowPrismInfThinWallsModel | hollow_rectangular_prism_infinitely_thin_walls | Y | . | . | . | . | 3 | MAG | Y | Y | good | good | - | - |

LamellarModel | lamellar | Y | . | . | . | . | 2 | PAK | Y | Y | good | good | - | - |

LamellarPSModel | lamellarCaille | Y | . | . | . | . | 3 | RKH | Y | Y | good | 5e-2 | - | - |

LamellarPSHGModel | lamellarCailleHG | Y | . | . | . | . | 3 | RKH | Y | Y | 3e-12 | 5e-3 | - | - |

LamellarFFHGModel | lamellarFFHG | Y | . | . | . | . | 3 | RKH | Y | Y | good | good | - | - |

LamellarPCrystallModel | lamellarPC | Y | . | . | . | . | 3 | RKH | Y | Y | good | FAIL | - | - |

LineModel | line | Y | . | . | . | . | 4 | WP | Y | Y | good | good | - | - |

LinearPearlsModel | linear_pearls | Y | . | . | . | . | 3 | PR | Y | N | good | fail | - | - |

Lorentz | lorentz | Y | . | . | . | . | 1 | JRK | Y | Y | good | good | - | - |

MassFractalModel | mass_fractal | Y | . | . | . | . | 1 | PR | Y | Y | good | 5e-5 | - | - |

MassSurfaceFractal | mass_surface_fractal | Y | . | . | . | . | 1 | PR | Y | Y | good | good | - | - |

MicelleSphCore | micelle_sphere_core | Y | . | Y | . | . | PR | Y | - | 1e-09 | FAIL | - | - | |

sum_p1_p2 | mixture | Y | . | . | . | . | 3 | PAK | Y | - | - | - | - | - |

Debye | mono_gauss_coil | Y | . | . | . | . | 1 | SMK | Y | Y | good | good | - | - |

MultiShellModel | multilayer_vesicle | Y | . | Y | Y | . | 3 | PR | Y | Y | 2e-09 | 1e-3 | - | - |

OnionExpShellModel | onion | Y | . | Y | Y | . | 3 | PAK | Y | - | - | - | - | - |

ParallelepipedModel | parallelepiped | Y | . | Y | . | Y | 2 | MAG | Y | Y | good | good | 5e-13 | 2e-4 |

PeakLorentzModel | peak_lorentz | Y | . | . | . | . | 4 | AJJ | Y | Y | good | good | - | - |

PearlNecklaceModel | pearl_necklace | Y | . | . | . | . | 3 | JRK | Y | Y | 6e-14 | FAIL | - | - |

Poly_GaussCoil | poly_gauss_coil | Y | . | . | . | . | 2 | SMK | Y | Y | FAIL | FAIL | - | - |

PolyExclVolume | polymer_excl_volume | Y | . | . | . | . | 3 | PR | Y | Y | good | good | - | - |

PorodModel | porod | Y | . | . | . | . | 3 | MD | Y | Y | good | good | - | - |

PringleModel | pringle | Y | . | . | . | . | 3 | WP | Y | Y | FAIL | good | - | - |

!AbsolutePower_Law | power_law | Y | . | . | . | . | 3 | SMK | Y | Y | good | good | - | - |

MultiplicationModel | product | . | . | . | . | . | PAK | Y | - | - | - | - | - | |

RaspBerryModel | raspberry | Y | . | . | . | . | 2 | PDB | Y | Y | good | good | - | - |

RectangularPrismModel | rectangular_prism | Y | . | Y | . | . | 2 | MAG | Y | Y | good | good | - | - |

RPA10Model | rpa | Y | . | . | Y | . | 3 | PAK | . | - | - | - | - | - |

SCCrystalModel | sc_crystal | Y | . | . | . | . | 3 | PR | Y | Y | good | FAIL | good | 1e-3 |

SphereModel | sphere | Y | . | Y | . | Y | 1 | HP | Y | - | good* | good | - | - |

SphericalSLDModel | spherical_sld | Y | . | Y | Y | . | 3 | WP | . | - | - | - | - | - |

SquareWellStructure | squarewell | . | Y | . | . | . | 1 | RKH | Y | Y | good | OK | - | - |

StackedDisksModel | stacked_disk | Y | . | Y | . | . | 2 | PR | Y | Y | good | 1e-5 | good | 1e-5 |

StarPolymer | star_polymer | Y | . | . | . | . | 2 | PR | Y | Y | good | fail | - | - |

StickyHSStructure | stickyhardsphere | . | Y | . | . | . | 1 | PAK | Y | Y | good | FAIL | - | - |

SurfaceFractalModel | surface_fractal | Y | . | . | . | . | 1 | PR | Y | Y | good | 5e-5 | - | - |

TeubnerStrey | teubner_strey | Y | . | . | . | . | 1 | PAK | Y | - | good* | good | - | - |

TriaxialEllipsoidModel | triaxial_ellipsoid | Y | . | Y | . | . | 3 | HP | Y | - | good* | good | good | good |

TwoLorentzian | two_lorentzian | Y | . | . | . | . | 4 | PR | Y | Y | good | good | - | - |

TwoPowerLaw | two_power_law | Y | . | . | . | . | 4 | WP | Y | Y | good | good | - | - |

UnifiedPowerRg | unified_power_Rg | Y | . | . | Y | . | 4 | PAK | . | - | good | N/A | - | - |

VesicleModel | vesicle | Y | . | Y | . | . | 2 | PDB | Y | Y | good* | good | - | - |

ReflectivityModel | Y | . | . | Y | . | 4 | . | - | - | - | - | - | ||

ReflectivityIIModel | Y | . | . | Y | . | 4 | . | - | - | - | - | - | ||

sum_Ap1_1_Ap2 | Y | . | . | . | . | 3 | . | - | - | - | - | - | ||

polynomial5 | Y | . | . | . | . | 3 | . | - | - | - | - | - | ||

sph_bessel_jn | Y | . | . | . | . | 3 | . | - | - | - | - | - | ||

testmodel | Y | . | . | . | . | 3 | . | - | - | - | - | - | ||

testmodel_2 | Y | . | . | . | . | 3 | . | - | - | - | - | - |

^{*} using taylor expansion near 0 for fq = 3 (sin(qr)/qr - cos(qr))/qr^{2}; using quad precision as a cross check, this is more accurate than computing the direct expression for qr < 0.1 in double precision, and so the values will differ from those in sasview. It is much more accurate in single precision. This affects many models, including sphere and ellipsoid models. The cylinder models are using J1(qr)/qr, which has its own numerical expansion and does not suffer from this problem. Should probably settle on one or the other and move it into the library. So even though the double precision values for sphere, ellipsoid and triaxial ellipsoid differ by more than 5e-14, they are still marked good. Similarly, the Teubner-Strey model checks out against the quad precision version and so is marked good.

OK. some models such as binary hard sphere and raspberry are inherently "unstable" in certain regions of parameter space. They require double precision but the difference between old SasView and sasmodels is still higher than nominally allowed. However hard to say which is more correct at this point.

List of standard parameters has moved to the instructions page